Every module, package, and command in the Lanna-3L benchmark carries an authentic Northern Thai name — drawn from traditional craft, ceremony, and community life of the ancient Lanna Kingdom.
orchestrated by ฟ้อน · $ lanna-fon run --pipeline paper1_full.yaml
The lanna-fon command is the pipeline orchestrator — it reads a YAML pipeline file and runs every layer in sequence, passing manifest IDs between stages. Think of it as the village headman (ป่อหลวง) calling the performance: each tool plays its part in order, and the benchmark runs from raw sheet to final report in one graceful, uninterrupted dance. Below is a realistic terminal session showing the full Paper 1 pipeline.
| Thai | Romanisation | Layer | File | Meaning · Role |
|---|---|---|---|---|
| กาแล | Kalae | C | kalae_error.py | Guardian gable finial — error analysis & outlier filtering |
| กัวะ | Kua | B | kua_inference/ | Rice cooling tray — inference runner (API + vLLM) |
| แก้ว | Kaew | C | kaew_aggregator.py | Crystal — Triple-ChrF aggregator (max · avg · diff) |
| ขันโตก | Khan Tok | B | khantok_registry.py | Serving bowl — 9-model registry |
| ข้าวตอก | Khao Tok | khaotok_seed.py | Sacred popped rice — deterministic seed manager | |
| ข่วง | Khuang | A pkg | lanna_khuang/ | Open courtyard — data foundation layer package |
| คัวไฟ | Kua Fai | B pkg | lanna_kuafai/ | Traditional kitchen — adaptation layer package |
| จ่อฟ้า | Jor Fa | C pkg | lanna_jorfa/ | Sky finial — evaluation layer package |
| ตอก | Tok | A | tok_splitter.py | Bamboo strips — stratified train/dev/test partitioner |
| ตุง | Tung | A | tung_definer.py | Ritual flag — LannaFacets field definitions |
| แตะ | Tae | C | tae_slicer.py | Woven bamboo panel — LannaFacets slice analyzer |
| ไตรภูมิ | Trai Phum | C | traiphum_multiref.py | Three realms — Lanna MultiRef scorer (3 hyp × 3 ref) |
| น้ำต้น | Nam Ton | A | namton_builder.py | Water carafe — JSONL builder from master sheet |
| ใบลาน | Bai Lan | C | bailan_form.py | Palm-leaf manuscript — human eval form generator |
| ปี้ | Pee | pee_manifest.py | Tag / mark — run manifest (config + hashes + SHA) | |
| ป่อง | Pong | C | pong_gap.py | Gap / interval — Dialect Gap Score G |
| ป่อหลวง | Po Luang | poluang_orchestrate.py | Village headman — pipeline coordinator | |
| ปู่จ๋าน | Pu Jan | pujan_io.py | Lay minister — JSONL I/O bridge & hashing | |
| ฟ้อน | Fon | lanna-fon | Traditional dance — graceful pipeline orchestration | |
| รัก | Rak | A | rak_annotator.py | Lacquer — annotation codebook applicator |
| สาตุ | Satu | C | satu_robustness.py | Affirmation (amen × 3) — 3P prompt robustness harness |
| หูก | Huuk | A | huuk_validator.py | Loom — schema validator (Loom-as-gate) |
| ไหข้าว | Hai Khao | B | haikhao_templater.py | Rice steamer — prompt templater |
| อั้งโล่ | Ang Lo | B | anglo_finetuner.py | Charcoal brazier — LoRA fine-tuner (slow, steady heat) |
| อูบ | Oob | oob_meta/ | Ceremonial lacquerware container — shared utilities package | |
| ฮอมปอย | Hom Poi | C | hompoi_agreement.py | Communal merit-making — Krippendorff's α |
| ฮีต | Heet | heet_schema.py | Customary law — Pydantic data schemas (the right way) |