Views
No views yet
phonetic_table.tsv, Taiwan-standard readings).hints, id 0 = none, else char_id+1) trained with
0–30% of true chars revealed — feed a user's correction back and the whole
sentence re-scores around it (新注音-style interactive re-scoring). The same
channel carries document context: committed text before the cursor rides
| eval | this 11.6M | 32M ref | libchewing |
|---|---|---|---|
| homophone-hard (159) | 82% | 83% | 71% |
| 免選字 everyday (230, held-out) | 72% | — | — |
| toneless (159) | 79% | 81% | — |
⚠️ Eval-leakage correction (2026-07-12): the original 免選字 numbers (incl. "84%"/"86%") were measured on a set SAMPLED FROM THE TRAINING CORPUS (174/174 sampled lines verbatim in training) → memorization-inflated by ~12-18pts. On a held-out set (fresh c4, excluded against training) the shipped 11.6M scores 72% 免選字 (homophone-hard 82% / toneless 79% were already clean). This 11.6M is the shipped model (int8, 13MB).
Repo renamed fromslothlm-e-4m-zhuyin(legacy 3.8M) to reflect the 11.6M shipped model; the old slug redirects.
reproduce/ (corpus
builder, g2pW labeling pipeline, tokenizer/table builders, NAS driver, trainer,
gate, ONNX export), eval/ (both test sets + the 免選字 set builder), and
tokenizer/. Training data: 1.1M short TC sentences streamed from
erhwenkuo/c4-chinese-zhtw,
relabeled with g2pW (Interspeech 2022)
context-aware Taiwan readings. NAS: 18-config Hyperband, seed 1234, rungs
1.5/4/8 epochs. Living code: GitHub.slothe.pt — PyTorch checkpoint (training/fine-tuning)onnx/model.onnx (+.data) — fp32 exportonnx/model_quantized.onnx — 5.0MB per-channel int8, lossless vs fp32
(naive per-tensor int8 loses 12pts on toneless — don't use it)syl_vocab.json, phonetic_table.tsv — serving-side vocab + legality tabletokenizer/ — the char tokenizer (defines output ids)REPRODUCE.md, reproduce/, eval/ — full reproduction pipeline + evals