v0.2: +3k SFT steps with Thai social-sentiment set, recalibrated (public macro 61.9 -> 63.2, Wisesight 38.7 -> 51.5)
Browse files- README.md +42 -32
- model.safetensors +1 -1
README.md
CHANGED
|
@@ -91,22 +91,22 @@ on `scripts/06b_public_benchmarks.py` rebuilds of the same subsets.
|
|
| 91 |
|
| 92 |
| subset | type | n | **OpenThai 0.8B** | Nimble-9B | Jev 1.13.0 | our ECE |
|
| 93 |
|---|---|---|---|---|---|---|
|
| 94 |
-
| aegis2 | noul | 250 |
|
| 95 |
-
| boolq | noul | 300 |
|
| 96 |
-
| civil_comments | noul | 300 | **
|
| 97 |
-
| helpsteer2 | score | 250 | **
|
| 98 |
-
| massive-de-DE | choice | 350 |
|
| 99 |
-
| massive-en-US | choice | 350 |
|
| 100 |
-
| multinli | choice | 299 | **
|
| 101 |
-
| paws | noul | 250 |
|
| 102 |
-
| pubmedqa | choice | 250 |
|
| 103 |
-
| squad2 | noul | 299 | 50.2 | 80.6 | 82.9 | 0.
|
| 104 |
-
| summeval-consistency | score | 144 | **84.0** | 75.7 | 81.2 | 0.
|
| 105 |
-
| summeval-relevance | score | 240 |
|
| 106 |
-
| vitaminc-dev | choice | 599 |
|
| 107 |
-
| **macro average** | | | **
|
| 108 |
-
|
| 109 |
-
|
| 110 |
`choice`/`noul` report accuracy; `score` reports exact-level match. Bold = ahead of Bespoke-Nimble-9B.
|
| 111 |
Honest reading: the 0.8B model is ahead of the 9B on 4 of 13 subsets (NLI, summary consistency, helpfulness scoring,
|
| 112 |
toxicity) and clearly behind on reading-comprehension style yes/no tasks (squad2 is at chance, boolq, pubmedqa) and on
|
|
@@ -116,25 +116,28 @@ summary *relevance* scoring, which is the one subset where our score head is bad
|
|
| 116 |
|
| 117 |
| set | type | n | accuracy | macro-F1 / MAE | ECE | note |
|
| 118 |
|---|---|---|---|---|---|---|
|
| 119 |
-
| MASSIVE-th intent (60-way) | choice | 5007 | **
|
| 120 |
-
| Prachathai67k topics | choice | 3501 | **97.
|
| 121 |
-
| Prachathai67k topics | noul | 13119 | **94.
|
| 122 |
-
| XNLI-th | choice | 2490 | **76.
|
| 123 |
-
| XNLI-th (entailment yes/no) | noul | 2490 | **
|
| 124 |
-
| SIB-200 Thai topic (7-way) | choice | 204 | **
|
| 125 |
-
| Thai contrastive pairs (one-fact flips) | choice | 296 | **
|
| 126 |
-
| Thai contrastive pairs | score | 56 | **
|
| 127 |
-
| Thai contrastive pairs | noul | 248 | **82.
|
| 128 |
-
| Wongnai review stars (1–5) | score | 6203 | **63.
|
| 129 |
-
| Wisesight sentiment (4-class) | choice | 2671 |
|
| 130 |
-
| banking77 intent (77-way, English) | choice | 3076 |
|
| 131 |
-
| xLAM tool selection (English) | choice | 884 | **99.4** | F1 0.986 | 0.
|
| 132 |
|
| 133 |
Batch-1 latency, one question with 255 options, H100 shared with a training job: **44 ms** (public bench run),
|
| 134 |
48 ms (held-out run). A 3-question Thai ticket (166 tokens): ~40 ms on H100, 154 ms on a MacBook M3 Max (MPS).
|
| 135 |
|
| 136 |
### Calibration (Stage 3)
|
| 137 |
|
|
|
|
|
|
|
|
|
|
| 138 |
After SFT (12k steps) the backbone was frozen and the slot head plus one temperature per question type were trained for
|
| 139 |
400 steps on the SFT mixture with cross-entropy + Brier loss (`configs/calib.yaml`, `brier_weight: 1.0`,
|
| 140 |
`train_temperature: true`). Learned temperatures: choice 1.062, noul 1.047, score 1.008.
|
|
@@ -167,11 +170,18 @@ Thai sets and on NLI/topic tasks, and route low-confidence English yes/no decisi
|
|
| 167 |
* Text only. Up to 255 options per question in one stage (bucket into groups for more). 64k tokens per request.
|
| 168 |
* It is a small model: use the `confidence` field and route low-confidence cases to a bigger model or a human.
|
| 169 |
* Not a reasoning model: it will not do multi-step verification or arithmetic.
|
| 170 |
-
* v0.
|
| 171 |
-
|
| 172 |
-
|
| 173 |
* English calibration is weaker than Thai (median ECE 0.15 vs ≤ 0.05): the training mix is Thai-heavy by design.
|
| 174 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
## License & credits
|
| 176 |
|
| 177 |
Apache-2.0. Built by iApp Technology / OpenThai on Qwen3.5-0.8B-Base (Apache-2.0). Inspired by TypeSafe AI's
|
|
|
|
| 91 |
|
| 92 |
| subset | type | n | **OpenThai 0.8B** | Nimble-9B | Jev 1.13.0 | our ECE |
|
| 93 |
|---|---|---|---|---|---|---|
|
| 94 |
+
| aegis2 | noul | 250 | 61.6 | 81.2 | 80.4 | 0.217 |
|
| 95 |
+
| boolq | noul | 300 | 64.7 | 86.0 | 89.7 | 0.213 |
|
| 96 |
+
| civil_comments | noul | 300 | **79.0** | 70.3 | 81.0 | 0.114 |
|
| 97 |
+
| helpsteer2 | score | 250 | **41.6** | 39.0 | 34.1 | 0.400 |
|
| 98 |
+
| massive-de-DE | choice | 350 | 67.4 | 83.4 | 86.9 | 0.169 |
|
| 99 |
+
| massive-en-US | choice | 350 | 79.1 | 86.9 | 87.4 | 0.101 |
|
| 100 |
+
| multinli | choice | 299 | **87.3** | 85.3 | 82.9 | 0.016 |
|
| 101 |
+
| paws | noul | 250 | 68.0 | 82.8 | 89.2 | 0.172 |
|
| 102 |
+
| pubmedqa | choice | 250 | 56.4 | 75.6 | 77.2 | 0.188 |
|
| 103 |
+
| squad2 | noul | 299 | 50.2 | 80.6 | 82.9 | 0.473 |
|
| 104 |
+
| summeval-consistency | score | 144 | **84.0** | 75.7 | 81.2 | 0.083 |
|
| 105 |
+
| summeval-relevance | score | 240 | 14.2 | 49.2 | 35.0 | 0.810 |
|
| 106 |
+
| vitaminc-dev | choice | 599 | 68.6 | 76.6 | 80.1 | 0.124 |
|
| 107 |
+
| **macro average** | | | **63.2** | 74.8 | 76.0 | |
|
| 108 |
+
|
| 109 |
+
For scale: Bespoke reports raw Qwen3.5-0.8B at 45.4 on their *private* 324-item holdout (not this bench), Nimble-9B at 90.1, Jev at 93.2.
|
| 110 |
`choice`/`noul` report accuracy; `score` reports exact-level match. Bold = ahead of Bespoke-Nimble-9B.
|
| 111 |
Honest reading: the 0.8B model is ahead of the 9B on 4 of 13 subsets (NLI, summary consistency, helpfulness scoring,
|
| 112 |
toxicity) and clearly behind on reading-comprehension style yes/no tasks (squad2 is at chance, boolq, pubmedqa) and on
|
|
|
|
| 116 |
|
| 117 |
| set | type | n | accuracy | macro-F1 / MAE | ECE | note |
|
| 118 |
|---|---|---|---|---|---|---|
|
| 119 |
+
| MASSIVE-th intent (60-way) | choice | 5007 | **88.6** | F1 0.862 | 0.049 | eval split |
|
| 120 |
+
| Prachathai67k topics | choice | 3501 | **97.6** | F1 0.913 | 0.006 | eval split |
|
| 121 |
+
| Prachathai67k topics | noul | 13119 | **94.2** | | 0.008 | eval split |
|
| 122 |
+
| XNLI-th | choice | 2490 | **76.9** | F1 0.770 | 0.037 | eval split |
|
| 123 |
+
| XNLI-th (entailment yes/no) | noul | 2490 | **85.0** | | 0.040 | eval split |
|
| 124 |
+
| SIB-200 Thai topic (7-way) | choice | 204 | **74.0** | F1 0.708 | 0.098 | whole dataset held out (v0.1: 77.5) |
|
| 125 |
+
| Thai contrastive pairs (one-fact flips) | choice | 296 | **79.7** | F1 0.712 | 0.109 | synthetic, eval-only |
|
| 126 |
+
| Thai contrastive pairs | score | 56 | **76.8** | MAE 0.42 | 0.137 | synthetic, eval-only |
|
| 127 |
+
| Thai contrastive pairs | noul | 248 | **82.7** | | 0.094 | synthetic, eval-only |
|
| 128 |
+
| Wongnai review stars (1–5) | score | 6203 | **63.2** | MAE 0.44 | 0.062 | eval split |
|
| 129 |
+
| Wisesight sentiment (4-class) | choice | 2671 | 51.5 | F1 0.448 | 0.322 | whole dataset held out — v0.1 was 38.7; the v0.2 Thai sentiment set lifted it to 51.5 (still the weakest Thai set) |
|
| 130 |
+
| banking77 intent (77-way, English) | choice | 3076 | 37.8 | F1 0.341 | 0.177 | whole dataset held out — weak on fine-grained 77-way intents (v0.1: 32.7) |
|
| 131 |
+
| xLAM tool selection (English) | choice | 884 | **99.4** | F1 0.986 | 0.004 | eval slice |
|
| 132 |
|
| 133 |
Batch-1 latency, one question with 255 options, H100 shared with a training job: **44 ms** (public bench run),
|
| 134 |
48 ms (held-out run). A 3-question Thai ticket (166 tokens): ~40 ms on H100, 154 ms on a MacBook M3 Max (MPS).
|
| 135 |
|
| 136 |
### Calibration (Stage 3)
|
| 137 |
|
| 138 |
+
v0.2 learned temperatures: choice 1.055, noul 1.047, score 1.000 (the before/after table below was measured on v0.1;
|
| 139 |
+
the v0.2 procedure is identical).
|
| 140 |
+
|
| 141 |
After SFT (12k steps) the backbone was frozen and the slot head plus one temperature per question type were trained for
|
| 142 |
400 steps on the SFT mixture with cross-entropy + Brier loss (`configs/calib.yaml`, `brier_weight: 1.0`,
|
| 143 |
`train_temperature: true`). Learned temperatures: choice 1.062, noul 1.047, score 1.008.
|
|
|
|
| 170 |
* Text only. Up to 255 options per question in one stage (bucket into groups for more). 64k tokens per request.
|
| 171 |
* It is a small model: use the `confidence` field and route low-confidence cases to a bigger model or a human.
|
| 172 |
* Not a reasoning model: it will not do multi-step verification or arithmetic.
|
| 173 |
+
* v0.2 known weak spots (numbers above): extractive-QA style yes/no (squad2 at chance, boolq 65, pubmedqa
|
| 174 |
+
56), summary *relevance* scoring (14), fine-grained 77-way English intents (banking77
|
| 175 |
+
38) and Thai social sentiment (wisesight 51, up from 38.7). Targeted data for each is in progress for v0.3.
|
| 176 |
* English calibration is weaker than Thai (median ECE 0.15 vs ≤ 0.05): the training mix is Thai-heavy by design.
|
| 177 |
|
| 178 |
+
## Versions
|
| 179 |
+
|
| 180 |
+
| version | date | change | public macro | Wisesight |
|
| 181 |
+
|---|---|---|---|---|
|
| 182 |
+
| v0.2 | 2026-09-21 | +3,000 SFT steps from v0.1 with a 22k-record synthetic Thai social-sentiment set (4/3/5-class, yes/no, score schemes), re-calibrated | **63.2** | 51.5 |
|
| 183 |
+
| v0.1 | 2026-09-20 | initial release: Thai CPT 4.47B tokens, 12k-step SFT, calibration | 61.9 | 38.7 |
|
| 184 |
+
|
| 185 |
## License & credits
|
| 186 |
|
| 187 |
Apache-2.0. Built by iApp Technology / OpenThai on Qwen3.5-0.8B-Base (Apache-2.0). Inspired by TypeSafe AI's
|
model.safetensors
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
size 1505386774
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:459965a55d29b7fd4efc0dc671165c373c65c67720e32e617285bf02de9e2ad6
|
| 3 |
size 1505386774
|