ADITI PS-18 β programme state
Working state of the OSINT fine-tuning programme on Google's Gemma 4 12B QAT checkpoint: adapters, corpora, gate reports, training code and the session log. No secrets here.
Start with STATE_2026-08-21.md β current state, open blockers and the resume plan.
Then SESSION_LOG.md and RESTORE.md for the programme up to 17 Aug 2026.
Adapters
LoRA r=64 on q,k,v,o,gate,up,down Γ 48 layers unless noted. Optimizer states are not
uploaded (2.1 GB each, not needed to reuse an adapter).
| adapter | schema | ner F1 | sent | claim | halluc | faith | gen % | note |
|---|---|---|---|---|---|---|---|---|
v8full_bf16_r64 |
0.950 | 0.764 | 0.855 | 0.894 | 0.364 | 0.834 | 54.5 | only run holding schema and faithfulness |
v9_r64 |
0.960 | 0.563 | 0.230 | 0.862 | 0.302 | 0.159 | 53.5 | halluc bucket over-corrected to 29% |
v10_r64 |
0.195 | 0.740 | 0.830 | 0.893 | 0.546 | 0.000 | 63.5 | faithfulness collapses here |
v11_r64 |
0.855 | 0.747 | 0.820 | 0.886 | 0.369 | 0.245 | 61.0 | schema_lock bucket raised to 9.5% |
v12_firm / v12_gentle |
0.505 / 0.470 | 0.769 / 0.773 | 0.890 / 0.870 | 0.903 / 0.905 | 0.523 / 0.479 | 0.027 / 0.000 | 48.5 / 40.5 | repair corpus, warm-start v10 |
v13_a |
0.820 | 0.755 | 0.885 | 0.897 | 0.476 | 0.000 | 18.5 | lr 5e-5, MCQ collapse |
v13_b |
0.905 | 0.756 | 0.875 | 0.881 | 0.500 | 0.053 | 64.0 | best composite of 22 runs; lr 9e-5 |
qat_r64_WRONGGRID_amax7.0 |
β | β | β | β | β | β | β | β οΈ see below β kept for the record only |
200 items/task, bare decoding, no constrained grammar. schema is the 11-key OSINT record;
faith is grounded-answer schema validity. Every run from v12 onward is warm-started from
v10_r64, which is how the faithfulness regression propagated into v13_b.
Two things worth knowing before you reuse any of this
1. W4A16 export erases the structured-generation capability. v13_b goes 0.905 β 0.505
on schema_lock after int4 export; v8full_bf16_r64 goes 0.950 β 0.000. The export is not at
fault β 328 packed modules matching Google's w4a16-ct exactly, zero module-set difference,
merging verified lossless. It is genuine int4 damage, worst on long nested objects.
2. qat_r64_WRONGGRID_amax7.0 was trained against the wrong grid β do not use it.
It fake-quantised with scale = amax/7.0. compressed_tensors uses amax/(bit_range/2), and
int4's range is [-8,7], so bit_range = 15 and the divisor is 7.5. Measured on real
layers, that mistake put the training grid 8.6% away from the deployment grid β larger than
the 6.7% quantisation error the adapter was being trained to absorb. With 7.5 the two grids
match bit-for-bit (rel-err 0.000000). The corrected qat_train.py is in code/.
Layout
STATE_2026-08-21.md current state, blockers, resume plan
adapters/ LoRA weights + per-run metrics.jsonl
corpus/ v10, v11, v13, repair, sentiment corpora (gzipped) + bucket reports
reports/ every gate report, one JSON per run
logs/ training and scoring logs, ship pipelines
code/ trainers, hybrid merge, W4A16 export, the contract + harness
Datasets are referenced by repo id + commit SHA, never redistributed β 207 sources, 169 pinned.
Reproduce with python refetch.py --manifest sources.json.
Model tree for Sandy-sys/aditi-ps18-state
Base model
google/gemma-4-12B