curator-teacher2-v2: the curation classifier (E030)
Browse files
curator-teacher2-v2/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
datasets:
|
| 4 |
+
- ks46/usernames
|
| 5 |
+
tags:
|
| 6 |
+
- username
|
| 7 |
+
- byte-level
|
| 8 |
+
- classifier
|
| 9 |
+
- curation
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
# curator-teacher2-v2
|
| 13 |
+
|
| 14 |
+
The curation classifier behind the `ks46/usernames` corpus: for a username it
|
| 15 |
+
predicts a signup-form quality score `q` (1–5, regression) and an offensiveness
|
| 16 |
+
level `o` (0–4, softmax). `prep` keeps or drops every name of the raw corpus on
|
| 17 |
+
these two numbers; the published corpus is what survived.
|
| 18 |
+
|
| 19 |
+
Files:
|
| 20 |
+
|
| 21 |
+
- `curator.pt`: the byte GPT `teacher2-16x1024` (16 layers × 1024, 205.9M
|
| 22 |
+
parameters) turned into an encoder with two small heads, fine-tuned end to
|
| 23 |
+
end for 3 epochs, batch 512, lr 1e-4, on 1,676,379 judge labels.
|
| 24 |
+
- `ngram.pt`: the same heads on a hashed byte n-gram bag, trained as the
|
| 25 |
+
baseline (10 epochs).
|
| 26 |
+
- `report.json`: the training setup and validation metrics below.
|
| 27 |
+
|
| 28 |
+
Labels are `training.judge --label` output from an LLM judge (deepseek-flash,
|
| 29 |
+
batch 20 with anchors): 998,963 names sampled by hash stride from the
|
| 30 |
+
uncurated corpus plus two targeted draws for offensiveness (word-list hits and
|
| 31 |
+
substrings), 1,863,434 rows in all; they are `labels/judge-*.parquet` in
|
| 32 |
+
`ks46/usernames`. The validation split is `xxh3_64(name) % 10 == 0`, 187,055
|
| 33 |
+
names.
|
| 34 |
+
|
| 35 |
+
| model | q MAE | q exact | q within 1 | Spearman | o acc | o≥2 P/R | o≥3 P/R |
|
| 36 |
+
|---|---|---|---|---|---|---|---|
|
| 37 |
+
| `curator.pt` | 0.355 | 0.726 | 0.996 | 0.820 | 0.911 | 0.84/0.84 | 0.75/0.76 |
|
| 38 |
+
| `ngram.pt` | 0.473 | 0.606 | 0.981 | 0.685 | 0.872 | 0.72/0.76 | 0.56/0.67 |
|
| 39 |
+
|
| 40 |
+
The judge's own self-agreement on relabelled names is at this level, so the
|
| 41 |
+
curator reproduces the judge rather than smoothing it. Scoring the whole
|
| 42 |
+
uncurated corpus (197.1M names) took 371 s on four RTX 5090s; the keep rule
|
| 43 |
+
(a ramp on `q` with `o` capped) kept 149,142,110 names, 75.7 %.
|
| 44 |
+
|
| 45 |
+
Usage, from the `name-dreamer` training package:
|
| 46 |
+
|
| 47 |
+
```
|
| 48 |
+
uv run python -m training.curate score --curator curator.pt --names names.parquet --out scores/
|
| 49 |
+
uv run python -m training.prep ... --curated scores/ --min-q 3.5 --max-o 1.0
|
| 50 |
+
```
|
| 51 |
+
|
| 52 |
+
Not a generator: sampling needs one of the sibling folders in this repo.
|
curator-teacher2-v2/curator.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:241ec7b35fb65da3623dc5ffc39c2e3a6f39c97d27a8a90085f54acce3bdaaf2
|
| 3 |
+
size 825681485
|
curator-teacher2-v2/ngram.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:05313861c914d140ef594b770e4858b30795a542bb395b33b9961a7c7d89a78b
|
| 3 |
+
size 67185015
|
curator-teacher2-v2/report.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"labels": "/root/data/name-dreamer/labels-all.csv",
|
| 3 |
+
"n_train": 1676379,
|
| 4 |
+
"n_val": 187055,
|
| 5 |
+
"epochs": 3,
|
| 6 |
+
"ngram_epochs": 10,
|
| 7 |
+
"batch": 512,
|
| 8 |
+
"ngram": {
|
| 9 |
+
"n": 187055,
|
| 10 |
+
"q_mae": 0.47344785928726196,
|
| 11 |
+
"q_exact": 0.6056186683061132,
|
| 12 |
+
"q_within1": 0.9805351367244928,
|
| 13 |
+
"q_spearman": 0.684556585799076,
|
| 14 |
+
"o_acc": 0.8720643660955334,
|
| 15 |
+
"o2_precision": 0.7186619350798455,
|
| 16 |
+
"o2_recall": 0.7624716239410886,
|
| 17 |
+
"o2_support": 18061,
|
| 18 |
+
"o3_precision": 0.5552031230938148,
|
| 19 |
+
"o3_recall": 0.6746219982211681,
|
| 20 |
+
"o3_support": 6746,
|
| 21 |
+
"epoch": 10
|
| 22 |
+
},
|
| 23 |
+
"gpt": {
|
| 24 |
+
"n": 187055,
|
| 25 |
+
"q_mae": 0.3546030819416046,
|
| 26 |
+
"q_exact": 0.7256528828419448,
|
| 27 |
+
"q_within1": 0.9962257090160648,
|
| 28 |
+
"q_spearman": 0.8201309928486379,
|
| 29 |
+
"o_acc": 0.9109566704979819,
|
| 30 |
+
"o2_precision": 0.8402582353914915,
|
| 31 |
+
"o2_recall": 0.8431426831293948,
|
| 32 |
+
"o2_support": 18061,
|
| 33 |
+
"o3_precision": 0.7457205559619605,
|
| 34 |
+
"o3_recall": 0.7555588496887045,
|
| 35 |
+
"o3_support": 6746,
|
| 36 |
+
"epoch": 3,
|
| 37 |
+
"ckpt": "/root/models/name-dreamer/teacher2-16x1024/ckpt.pt"
|
| 38 |
+
}
|
| 39 |
+
}
|