|
| 1 | +# 01 — r8 teacher: run-009-yallamorph (YallaMorph/CamelMorph aux stream) |
| 2 | + |
| 3 | +Status: SPECIFIED (2026-10-01) — not launched |
| 4 | +Literature basis: YallaMorph (arXiv 2609.10153, EMNLP 2026) — 663,804 |
| 5 | +controlled morphological-generation instances over 4,795 lemmas, |
| 6 | +constructed from CamelMorph MSA via CAMeL Tools. The GitHub repo ships |
| 7 | +**samples only**; the full benchmark is not downloadable as a corpus. |
| 8 | +Since the underlying resource (CamelMorph MSA + CAMeL Tools) is public, |
| 9 | +we regenerate the paradigm pairs ourselves — a deterministic |
| 10 | +dictionary/morphology resource, NOT LLM-generated labels (guardrail |
| 11 | +compliant, see [[no-llm-teacher-distillation]]). |
| 12 | + |
| 13 | +## Thesis |
| 14 | + |
| 15 | +Every frontier move on the Arabic teacher came from data-side levers |
| 16 | +(r5 2.6775 → r6-morph-aux 2.5793 → r7-news 2.2864). Morph coverage was |
| 17 | +the r6 lever; YallaMorph/CamelMorph gives systematic, |
| 18 | +feature-complete morphological coverage (incl. cliticized forms — |
| 19 | +exactly the iʿrāb/clitic band where the residual concentrates) on top |
| 20 | +of r7's news mix. |
| 21 | + |
| 22 | +Naming: the `run-008` slot was consumed by the IPA-ablation |
| 23 | +(train_arabic_r8.py → run-008-ipa). This teacher is |
| 24 | +**run-009-yallamorph**; prose alias "r8-generation teacher". |
| 25 | + |
| 26 | +## Design |
| 27 | + |
| 28 | +Recipe = r7 verbatim (train_arabic_r7.py) + one new aux stream: |
| 29 | + |
| 30 | +- Stream A (plain): r7's mix unchanged — cached r5-units (anchor) + |
| 31 | + news×3 + WikiNews-2014-gold×4. |
| 32 | +- Stream M (aux, NEW): `MORPH: ` ASCII prefix (byte-distinct from |
| 33 | + Arabic, mirrors the proven `TAG: ` mechanism), input = |
| 34 | + `MORPH: <features-as-ascii> | <undiacritized form>`, target = |
| 35 | + `<fully diacritized form>`. Features rendered as ASCII |
| 36 | + key:value tokens (pos, aspect, state, case, ...). Multi-form |
| 37 | + instances: one line per valid form. IMPOSSIBLE configs: excluded |
| 38 | + (no target). |
| 39 | +- Aux upsampled to ~25% of the mix (r6-proven dose). |
| 40 | +- Init: run-007-news/best. Batch 2/accum 15, A100-80GB, bf16, 1 epoch, |
| 41 | + save every 300 steps, volume commit on save (r5/r6/r7-proven). |
| 42 | +- Inference contract unchanged: no prefix at inference = plain |
| 43 | + diacritization. |
| 44 | + |
| 45 | +## Steps |
| 46 | + |
| 47 | +1. [ ] Clone CAMeL-Lab/YallaMorph; extract xlsx samples as the |
| 48 | + validation set for our generated forms. |
| 49 | +2. [ ] Data build: camel-tools + camel_data MSA; generate paradigm |
| 50 | + pairs; validate forms against YallaMorph samples (match rate |
| 51 | + reported); dedupe; cap 300k aux lines; volume put to |
| 52 | + /datasets/yallamorph-aux/lines.txt. |
| 53 | +3. [ ] TDD the line builder (pure function: feature dict → line pair). |
| 54 | +4. [ ] train_arabic_r9_yallamorph.py (r7 copy + stream M + gates). |
| 55 | +5. [ ] Launch `modal run --detach` (retry-loop supervisor per |
| 56 | + [[modal-always-detach]]). |
| 57 | +6. [ ] ID gate: windowed zero-skip SadeedDiac-25 full 1,200-para DER |
| 58 | + ≤ 2.389 (r7 2.2864 + 0.1 tolerance). |
| 59 | +7. [ ] OOD gate: eval_wikinews_multiref improves over 17.3794/11.8273. |
| 60 | +8. [ ] Canonical replacement only if ID improves outright; else record |
| 61 | + as ablation. Student distillation from r9 only after canonical |
| 62 | + call. |
| 63 | + |
| 64 | +## Gates / risks |
| 65 | + |
| 66 | +- Aux format interference with the plain stream: mitigated by the |
| 67 | + ASCII prefix mechanism (r6 evidence: deterministic at inference). |
| 68 | +- CamelMorph license: record the underlying resource license in the |
| 69 | + aux data dir README before any redistribution (training-internal use |
| 70 | + only for now). |
| 71 | +- Kill criterion: if ID gate fails after a clean run, close the lever |
| 72 | + and keep r7 canonical (news mix remains the last mover). |
| 73 | + |
| 74 | +## Result |
| 75 | + |
| 76 | +(to be written only from measured numbers) |
0 commit comments