mobtranslate.com / docs › Kuku Yalanji source: kuku-v22-experiment.md

Kuku Yalanji v22 Step-Matched Replay and v21.2 Decoder-Transfer Report

Experiment date: 2026-07-14 UTC
Primary treatment: continue the sealed v21.2 step-2,770 state to exactly step 3,120
Primary result: FAIL; do not promote the v22.0 checkpoint
Secondary treatment: transfer the development-selected decoder to the exact published v21.2 weights
Secondary result: PASS; retain v21.2 weights and use the guarded decoder
Language direction: English (eng_Latn) -> Kuku Yalanji (gvn_Latn)
Validity: noncommercial research only; not speaker-certified; not authoritative translation

1. Decision

This run did not produce a better trained model. The step-3,120 v22.0 checkpoint failed its preregistered promotion gate because greedy decoding still produced 37 tagged-test rows in which an orthographic word or morpheme segment occurred at least ten times; the maximum was 25. In paired comparison with v21.2 step 4,155, v22.0 was also worse on both synthetic held-outs and the dictionary-usage control. The v22.0 checkpoint is retained as negative evidence and is not a downloadable model release.

The run did identify a better inference policy for the existing v21.2 model. A decoder selected using v22.0 development output only was frozen before transfer:

num_beams=1
no_repeat_ngram_size=4
repetition_penalty=1.10
length_penalty=1.0

Applied once to the exact published v21.2 model, this policy passed all 14 frozen transfer checks. On the tagged synthetic test, corpus chrF++ rose from 53.8374 to 55.7097 and repeated-segment rows fell from 37 to 2. The unchanged v21.2 weights remain the model of record. This is a decoding-policy improvement, not a new model.

2. Research question and preregistration

The primary question was whether v21.2 had been over-exposed to its balanced replay mixture. The falsifiable hypothesis was that stopping at step 3,120 would reduce degeneration while retaining synthetic, dictionary-usage, and Bible performance. Before any v22 output existed, the following were frozen:

The preregistration was frozen at 2026-07-14T02:15:40Z with SHA-256 46c5581e80511679b715d504980297868805e6d35bf46c3cb2fbb4f26846dad4.

The secondary decoder-transfer protocol was frozen at 2026-07-14T03:29:00Z, after the primary checkpoint gate had failed but before any transfer output existed. Its SHA-256 is 23cc078b0d2a3a8cf681684d3af3086841feed0a819b033b46154f2dc8872989.

3. Experimental controls

3.1 Invariants

Variable Frozen value
Upstream family facebook/nllb-200-distilled-1.3B
Project base exact frozen v12 merged checkpoint with gvn_Latn extension
Resume state sealed v21.2 checkpoint-2770
Training rows per epoch 22,164 balanced-replay rows
Development rows 1,609
Synthetic test rows 1,606 tagged plus the same 1,606 without task tags
External controls 84 dictionary usage; 325 Bible direct; 325 Bible reference-conditioned
Diagnostic only 43 elder-shared sentence pairs
Effective batch 16: batch 8, gradient accumulation 2
LoRA rank 64, alpha 128, dropout 0
Target modules q_proj,k_proj,v_proj,out_proj,fc1,fc2
Learning-rate schedule v21.2 schedule for a 4,155-step horizon; no warmup or weight decay
Stop condition exact global step 3,120
Test visible to trainer no; manifest records test_file: null

Key input identities include:

Artifact SHA-256
Frozen base weights 26bb5fc5ca75eca215081699e5d8a1dc64f69153431a4e78d6e87ebaee131a0f
Step-2,770 adapter 47758f5438124144a4f429065f855f34f23db1894b401e9b20ca2deb77cc67fc
Step-2,770 optimizer 3ae1573412dd896b6d7f1b137473abd52497100155798cfe1c607bb4fec854a1
Step-2,770 scheduler 692d06781bf1f6b232206b83afc7b736f59200480612622fdf366e967a52435f
Step-2,770 RNG state 0528adf37a822d037170ddfa2b42ea652e9ada10a543dfc7dc70b4e3d9002486
Train split 7cb97c1c1d1afd05d0b7ddd04f64180182bf9de261bf5473d07b28bdb43967f0
Development split b5f13e3a7c6348d5475a3d045a14d9cefa1b05b3c453cd087e27169098b71e35
Tagged test split 8ff7cc149dc77ab37c11cc9503ea9b581efd01b03b199b273961734307f9877c

The complete 48-file input manifest is archived as inputs/SHA256SUMS.v22-inputs.

3.2 Reconstruction limitation

The continuation restored optimizer, scheduler, RNG, adapter, and trainer state from step 2,770. It therefore reconstructs the intended trajectory more closely than a fresh continuation from adapter weights alone. Bitwise identity to the original, unobserved step-3,120 trajectory cannot be established because the original v21.2 run did not save that checkpoint. This is one reconstructed seed, not an estimate of training variance.

4. RunPod execution

The run used one secure NVIDIA A40 48 GB pod at USD 0.44/hour with:

PyTorch       2.4.1+cu124
Transformers  4.48.3
PEFT          0.19.1
Datasets      4.8.5
Accelerate    1.14.0
SacreBLEU     2.6.0

Training resumed at step 2,770 and stopped at exactly 3,120. The final manifest records global_step: 3120, epoch 2.2526, no test file, train runtime 219.16 seconds, and development loss 1.0443. End-to-end primary execution, including merge and all evaluations, ran from 02:59:56Z to 03:38:48Z.

The primary resource trace contains 458 five-second samples:

Measure Mean Maximum
GPU utilization 32.45% 94%
VRAM used 6,640 MiB 22,453 MiB
GPU power 141.81 W 186.07 W
Python RSS 1,359 MiB 6,420 MiB

The transfer evaluation ran from 03:54:09Z to 04:03:34Z; maximum VRAM was 3,609 MiB. The pod existed from 02:43:06Z to 04:32:18Z, 6,552 seconds. Wall-clock cost at the advertised rate is approximately USD 0.8008; RunPod billing remains authoritative. The pod was deleted after pullback and checksum verification, and the saved post-deletion pod list is empty.

5. Primary v22.0 result

5.1 Step curve under the same greedy decoder

All values below use beams 1, no n-gram blocking, repetition penalty 1.0, and length penalty 1.0. Loops counts rows with any Unicode orthographic segment repeated at least ten times. The detector is a safety diagnostic; it does not classify ordinary Kuku Yalanji reduplication as inherently erroneous.

Set Step 2,770 chrF Step 3,120 chrF Step 4,155 chrF Exact 2,770 / 3,120 / 4,155 Loops 2,770 / 3,120 / 4,155
Synthetic dev 1,609 51.8015 52.8583 52.8471 389 / 390 / 396 50 / 31 / 39
Synthetic tagged 1,606 52.0265 53.1613 53.8374 415 / 417 / 426 46 / 37 / 37
Synthetic untagged 1,606 52.2497 53.3007 53.8142 413 / 419 / 429 45 / 33 / 36
Elder diagnostic 43 28.7866 28.9510 29.3558 0 / 0 / 0 0 / 0 / 0
Dictionary usage 84 47.3542 46.1959 47.1391 4 / 3 / 3 0 / 0 / 0
Bible direct 325 43.8913 43.8572 43.7751 0 / 0 / 0 0 / 1 / 2
Bible reference 325 43.9381 43.7605 43.9093 0 / 0 / 0 0 / 1 / 1

The trajectory does not support the preregistered over-training account. Step 3,120 did not reduce tagged-test loops below step 4,155, and the final step retained better synthetic-test agreement.

5.2 Paired v21.2 step 4,155 versus v22.0 step 3,120

The comparison revalidated model hashes, identical ordered IDs, inputs, references, and greedy decode controls. It used 50,000 paired nonparametric row bootstraps. The interval estimand is mean per-sentence chrF++ difference, step 3,120 minus step 4,155; corpus chrF++ differences are reported separately because corpus chrF++ is nonlinear.

Set Corpus chrF delta Mean sentence delta Paired 95% interval
Synthetic dev +0.011 -0.317 [-0.570, -0.069]
Synthetic tagged -0.676 -0.491 [-0.738, -0.245]
Synthetic untagged -0.513 -0.577 [-0.838, -0.322]
Elder diagnostic -0.405 -0.367 [-1.097, +0.318]
Dictionary usage -0.943 -0.916 [-1.956, -0.055]
Bible direct +0.082 +0.068 [-0.258, +0.389]
Bible reference -0.149 -0.131 [-0.487, +0.219]

These intervals are descriptive across multiple endpoints and are not multiplicity-adjusted. They nevertheless give no basis for promoting step 3,120 over step 4,155.

5.3 Development-only decoder selection

The decoder lock was written at 03:16:28Z, before any v22 test/control inference.

Decoder Dev chrF Loop rows Severe shape failures Maximum segment count Eligible
Greedy 52.8583 31 11 102 no
No-repeat 4 54.1936 3 0 12 yes
Repetition penalty 1.10 54.3771 1 0 24 yes
No-repeat 4 + penalty 1.10 54.3553 0 0 7 selected

The selected decoder was within 0.0218 chrF of the best development score and won the preregistered lexicographic safety ordering.

5.4 v22.0 selected-decoder diagnostics

Set chrF BLEU Exact Empty Loop rows
Synthetic dev 54.3553 25.4777 387 0 0
Synthetic tagged 54.8860 25.6674 415 0 2
Synthetic untagged 54.9264 25.6619 416 0 1
Elder diagnostic 29.2684 6.4477 0 0 0
Dictionary usage 46.9605 10.9084 1 0 0
Bible direct 43.9838 12.2656 0 0 0
Bible reference 43.9427 12.0993 0 0 0

The decoder controls degeneration, but it cannot rescue the failed training-exposure hypothesis. The primary checkpoint gate therefore remains FAIL.

6. Secondary decoder-transfer result

6.1 Exact-model enforcement and one failed attempt

The first transfer attempt reconstructed a merged model from the frozen base and v21.2 adapter. The harness hashed the result before evaluation and rejected it: the reconstructed float32 weights were 4,315,520,560 bytes with SHA-256 a38709e98e7103e2f8f7bf1ec8927569f7f3d7d0bec69d997b43d3a0607af440, not the published v21.2 merged-model identity 7f9d0fe325e9e4568e45f13179adb336b93bbd53e83ddab2826e999eba3c76f7. No score from that reconstruction was generated or used.

The exact published merged model was then uploaded, all 11 transfer inputs passed their remote checksums, and the evaluation proceeded. This failure is retained because it demonstrates why adapter/base lineage is not a substitute for exact serialized-model identity when claiming a same-model decoder intervention.

6.2 v21.2 greedy versus guarded decoding

Set Greedy chrF Guarded chrF Corpus delta Exact greedy / guarded Loop rows greedy / guarded
Synthetic dev 52.8471 55.1631 +2.3160 396 / 394 39 / 1
Synthetic tagged 53.8374 55.7097 +1.8723 426 / 426 37 / 2
Synthetic untagged 53.8142 55.7278 +1.9137 429 / 422 36 / 2
Elder diagnostic 29.3558 29.3565 +0.0007 0 / 0 0 / 0
Dictionary usage 47.1391 47.9648 +0.8256 3 / 1 0 / 0
Bible direct 43.7751 43.7197 -0.0554 0 / 0 2 / 0
Bible reference 43.9093 43.8353 -0.0741 0 / 0 1 / 0

The exact-match decreases on development, untagged synthetic, and dictionary usage are reported rather than hidden. The frozen decision rule did not optimize exact match; it required noninferior corpus chrF++, zero empties, and strong loop suppression.

6.3 Paired decoder audit

The audit verified the exact model and protocol hashes, identical ordered evaluation rows, and the two frozen decoding signatures. It used 50,000 paired row bootstraps. The estimand is guarded minus greedy on identical weights.

Set Mean sentence chrF delta Paired 95% interval
Synthetic dev +0.290 [+0.057, +0.524]
Synthetic tagged +0.325 [+0.097, +0.560]
Synthetic untagged +0.106 [-0.128, +0.345]
Elder diagnostic +0.022 [-0.761, +0.825]
Dictionary usage +0.410 [-1.129, +1.923]
Bible direct +0.040 [-0.416, +0.510]
Bible reference -0.077 [-0.440, +0.290]

All seven sets had zero empty outputs. Tagged and untagged loop counts were each 2, below the frozen maximum of 5; all corpus chrF++ floors passed. The transfer gate is therefore PASS.

7. Linguistic interpretation and limits

Automatic overlap metrics are necessary regression instruments, not linguistic validation. In particular:

Before any broader claim, fluent Kuku Yalanji speakers should conduct blind paired review of greedy and guarded outputs, with explicit annotation of adequacy, grammaticality, morphology, dialect/register, unacceptable semantic changes, and cases where the n-gram guard damages valid reduplication.

8. Post-hoc version probe: dictionary words and elder sentences

After the promotion decisions above were frozen, a separate preregistered diagnostic ran the reconstructed step-2,770 model, the v22.0 step-3,120 model, and the current step-4,155 v21.2 weights under the same guarded decoder. It evaluated 297 unique isolated English dictionary glosses and the same 43 elder sentence pairs. All 1,020 model-row outputs were nonempty.

Model checkpoint Dictionary accepted exact Dictionary mean chrF++ Elder corpus chrF++ Elder exact
Step 2,770 42/297 (14.14%) 28.06 29.18 0/43
Step 3,120 43/297 (14.48%) 28.83 29.26 0/43
Step 4,155 guarded 48/297 (16.16%) 30.38 29.43 0/43

The step-4,155 versus step-3,120 paired dictionary difference was +1.68 exact-match percentage points with a 10,000-sample 95% interval of [+0.34, +3.37]. The corresponding mean sentence chrF++ difference was +1.55 [+0.37, +2.95]. Continued exposure therefore improved canonical headword retrieval on this nonblind coverage probe. The result does not overturn the v22 promotion failure because it tests a different, narrower outcome.

The current model retrieved 46/192 (23.96%) accepted forms seen as full training tokens and only 2/105 (1.90%) unseen forms. On elder sentences, step 4,155 minus step 3,120 was +0.23 mean sentence chrF++, with interval [-0.42, +0.99]; all elder checkpoints remained 0/43 exact. Thus the probe supports lookup-first lexical routing and supplies no evidence of improved natural elder register.

This dictionary was involved in earlier corpus development, and the elder set was observed in earlier evaluation, so neither component is a blind generalization test. Exact dictionary match measures canonical-form retrieval, not free-sentence adequacy. The complete public package exposes the protocol, combined inputs, row-level predictions, inference logs, paired analysis, and checksums.

8.1 Independent A40 reproduction

The 340-row probe was subsequently packaged as a sealed one-command RunPod job and rerun twice on an NVIDIA A40 under exact runtime, deterministic float32, no-sampling, and no-TF32 controls. The final GPU run matched all three frozen local CPU prediction files on 1,020/1,020 rows, and the two A40 executions matched each other on 1,020/1,020 rows. Remote and post-download output checksums both passed. The replicated run therefore confirms the reported point estimates and intervals without changing the promotion decision.

The RunPod evaluation and fast feedback loop manual records the exact kit, runtime, resource use, cost, transfer optimization, failed dependency assumptions, rejected first result seal, corrected rerun, public artifacts, and future post-training workflow.

9. Reproducibility and archive

Canonical local archive:

/mnt/donto-data/donto-resources/research/translation-training/
kuku-yalanji-runpod-2026-06-30/runpod/
v22.0-step-matched-replay-20260714T023516Z/

The archive contains preregistrations, exact input and code snapshots, manifests, full prediction rows, both model checkpoints, adapter and merged weights, TensorBoard events, resource traces, stdout/stderr, gate reports, paired audits, pod metadata, cost/deletion records, and the empty post-deletion pod list.

Archive identity SHA-256
Remote 182-file output manifest 4a561128774f5b554788febac8ce160aea2b2a43ed96b83f8ad8aa9e7a16a5ab
Local 182-file verification log 52ef91e6880726d12ba2533437054bc31d4b0190d1de925fa78e6470debb3533
v22.0 adapter 9371066a5e7eaa70f6b24e199dd76118ca871136ae5a6285bc590542c8287fc0
v22.0 merged weights 8ce31236b051195fbbd01df8d7149ce729249a30959592e9762b2dabf404c2aa
Step-2,770 reconstructed merged weights 1f2a31593a350f373f2c4345f1bd4f16a29ece18b53fa552ba1828acff7c84f7
Primary promotion gate 231a456871e7003207cb841867c93de8744bd909edaace11f032fcf32d1592a1
Transfer gate 66661a0e9bee71f81467ce41bf04c696fce82cf966acb6033b0e8bcf41f5bb23
v21.2 vs v22.0 paired audit a110545c0749b87418a7c6a188cb115901bbe5c47f421918b05a80310d736da4
v21.2 decoder-transfer paired audit 54a302b884963b8b1f30515a8529bb5a9220cc7e06d8e5958cd4ac737623afa7

All 182 remote-manifest files verified locally; failures: 0. The comparison scripts do not rerun inference. They score the sealed prediction archives, validate ordered row identity and decode controls, and preserve representative row-level differences for audit.

The promoted serving policy has a separate immutable public release directory. Its Atlas archive contains the exact frozen v12 base, exact v21.2 adapter, tokenizer, guarded decoder manifest, and smoke-test instructions. The merged archive is a hard link to the historical v21.2 archive, proving that the serving-policy release did not silently replace the model bytes.

Public release artifact Bytes SHA-256
Guarded Atlas LoRA bundle 2,530,623,924 012335cfb393ca386c7817bd3850dd52f1a751e0e1a58e80e9e5bc9bae9c89d5
Guarded merged bundle 2,200,740,249 920e179d8b4fe45ce75bdd1e9cc2784be51ff8d55d1a190cd45e19cf01a5f490
Hosting manifest 3,487 e40fd2586a3d4eabfdf6052bd65e4f3a92532b1141ea446bc81feb03a7a01c95
Release checksum file 1,302 81e992b0e07ca37d99422ddcf65449fca88bf831a18d4ab1cfec08b1d37c15a1
Local release verification 434 f629b12812405f8f7c04e9dfa978a6a745bba9afae86e779e3c4e38abdda8f6b

Full archive traversal found 21 Atlas entries. All 14 targets in the public release checksum file reverified with zero failures. The public model API exposes the guarded serving release, the rejected v22 experiment, and the historical greedy weights release as separate records.

10. Operational consequence

The model and adapter hashes do not change. The original v21.2-claude-balanced-replay-v2-candidate release remains byte-for-byte available as the historical greedy baseline. The new serving release, v21.2-claude-balanced-replay-guarded-20260714, identifies the unchanged weights plus the validated decoder policy. Hosts should pin that literal serving release rather than relying on latest. The v22.0 model is registered as a failed-promotion research run with documentation but no public model download.

Exact dictionary entries, community-approved examples, and source recordings remain lookup-first. Generated output must remain visibly labelled as a research draft. The next scientifically justified model run should add genuinely independent natural-language supervision and replicated seeds rather than merely selecting another point on this same single training trajectory.