"Acceptance runbook — Mens HF fine-tune convergence"

Acceptance runbook — Mens HF fine-tune convergence

Preconditions

  • GPU-capable build: vox-cli with gpu (vox-populi mens-train, includes Candle qlora-rs).
  • Corpus: train.jsonl from vox mens corpus pairs … or vox mens corpus mix … (optional record_format: tool_trace for tool/command supervision rows).

Command matrix (smoke)

#CommandPass criteria
1acargo test -p vox-populi --features mens-train execution_plannerPlanner + Candle proxy inventory gates
1bcargo test -p vox-populi --features mens-train hf_keymapHF key naming / Qwen middle keys
1ccargo test -p vox-populi --features mens-train training_textChatML / text policy
1dcargo test -p vox-populi --features mens-train preflight_strict_rejects_missing_o_projStrict --qlora-require-full-proxy-stack path fails closed on missing middle keys
2cargo test -p vox-populi --features mens-train burn_full_graph_smokeForward shape smoke OK
3cargo test -p vox-populi --features mens-train lora_vox_transformer_checkpoint_roundtripBurn Checkpoint bin save/load preserves logits
4cargo test -p vox-populi --features mens-train merged_vox_transformer_matches_lora_full_forwardLoraVoxTransformer::merge forward matches LoRA forward
5cargo test -p vox-populi --features mens-train --test candle_burn_f32_matmul_parityCandle CPU vs Burn NdArray f32 matmul aligned
6cargo test -p vox-populi --features mens-train --test candle_burn_f32_linear_lm_logits_parityCandle vs Burn f32 biased linear (LM-head-shaped logits)
7cargo test -p vox-populi --features mens-train --test candle_burn_cross_entropy_parityCandle vs Burn CE scalar on same logits
8cargo test -p vox-populi --features mens-train --test candle_burn_nf4_dequant_lm_reference_parityTier B: NF4 round-trip then shared f32 LM-linear parity
9cargo test -p vox-tensor --features gpu --lib linear_warmup_sequence_matchesLR warmup matches Burn linear scheduler
10cargo test -p vox-cli merge_merge guards + merge-qlora roundtrip + Burn *.bin rejection on merge-qlora
11vox mens train --backend lora --data-dir … --output-dir …Completes, training_manifest.json has execution_kernel = burn_lora
12vox mens train --backend qlora --tokenizer hf --model <hf> …Completes, populi_adapter_manifest_v3.json written
13vox ci mens-gate --profile m1m4 (or cargo run -p vox-cli -- ci mens-gate --profile m1m4 in CI)M1–M4 subset + corpus tool_trace mix tests pass

Sign-off

  • Burn: GPT-2-shaped HF tokenizer path trains without planner error.
  • Candle: NF4 path unchanged functionally; telemetry includes candle_compat_mode: true.
  • Merge: merge-qlora accepts v2 or v3 adapter meta.