Training and provenance
- Base:
Qwen/Qwen3.5-9B, revision c202236235762e1c871ad0ccb60c8ee5ba337b9a.
- Trajectories:
violetxi/harvey-note-conditioned-rollouts, revision
ed40a816c2efb7611c5a74ec454af24dea98777a, original-20k cohort.
- Notes:
violetxi/wm-rl-notes-v4, revision 6e62edba847d8013a5e7aefb1e7fd19974fa5381.
- Per-epoch labels before causal shift: 20,999,726 notes + 8,999,187 trajectory.
After shift: 29,997,214 labels/epoch, 59,994,428 across two epochs.
- Packing: 3,672 whole-example rows × 16,384, seed 731.
- Learning rate 5e-6, cosine schedule, 3% warmup, training seed 0.
- Objective: SFT NLL + 0.1 × KL(base || student) over the full vocabulary.
Replay uses 2,048 training sessions, up to 128 sampled assistant prediction
positions per session, and eight draws per optimizer update. KL normalization
is the mean of trajectory means. Replay positions are additional to the 30M labels.
- Online training and evaluation metrics.
Validation diagnostics
Held-out NLL and fixed 256-session replay KL were measured at steps 0, 459 and 918.
The full histories are in evaluation_summary.json.
Table with columns: Final diagnostic, Value| Final diagnostic | Value |
|---|
| Combined held-out NLL | 0.444968558 |
| Notes NLL | 0.691537419 |
| Trajectory NLL | 0.199430770 |
| Replay KL | 0.010334484 |
These are training-time diagnostics, not Harvey task-accuracy scores. Task-accuracy
evaluation and a fresh GPU inference test of this export have not been performed.
Load
from transformers import AutoModelForImageTextToText, AutoTokenizer
model_id = "violetxi/qwen35-9b-harvey-v4-notes-conditioned-30m-kl-0p1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id, dtype="bfloat16", device_map="auto", use_safetensors=True
)
vllm serve violetxi/qwen35-9b-harvey-v4-notes-conditioned-30m-kl-0p1 --dtype bfloat16 --max-model-len 65536
The export contains the complete composite model, tokenizer, chat template and
processors. All 427 trained text tensors were mapped into the pinned base layout
and cast from the FSDP FP32 save to the base BF16 serving dtype. The remaining
348 base tensors retain their original values and dtypes. Every exported tensor
was compared with its intended source; all values are finite, and the expected
Transformers model tensor shapes were checked. Vision and auxiliary components
were not fine-tuned or evaluated for multimodal quality. The original training
checkpoint is model-only; optimizer/scheduler/replay resume state is not included.
File digests and format validation are in publication_manifest.json.