Views
No views yet
gemma4-31b-rovochat-full-sft-w1-260729,
which used a shaped objective on identical data with an identical recipe. Released together so the
contribution of the loss shaping can be measured rather than assumed.⚠️ Neither this model nor its paired arm has been evaluated
These are raw training outputs. No benchmark, quality gate, or safety evaluation has been run on either. Training loss converged cleanly — that is not evidence of quality. In this model family, full-parameter fine-tuning is known to degrade open-ended text quality while tool metrics improve. Treat text quality as unverified and plausibly regressed versus the base model.
| W0 (this model) | W1 (treatment) | |
|---|---|---|
| CE weight | 1.0 | 1.0 |
| first-decision term | 0.0 | 4.0 |
| terminal-contract term | 0.0 | 4.0 |
| KL anchor | 0.0 | 0.0 (forced off under full-FT — not a difference) |
| CE normalization | token_mean (per supervised token) | per_turn (per turn) |
| final loss | 0.9159 | 1.0160 |
| loss minimum | 0.6667 @ step 199 | 0.6900 @ step 199 |
| wall-clock | 44 h 25 m 51 s | 44 h 25 m 41 s |
token_mean averages over supervised
tokens; per_turn averages over turns. They are different scales, so W0's lower number is an
artifact of normalization, not evidence of quality. Only a downstream evaluation can compare them.| method | full-parameter FT (all non-vision params), DeepSpeed ZeRO-3, no offload, bf16 |
| trainable | 30.697 B / 31.273 B (98.16 %) — vision tower frozen |
| hardware | 16 × H200 141 GB, 2 nodes, RoCE/RDMA |
| epochs | 1 — 457 optimizer steps, global batch 16 (micro-batch 1 × 16 ranks, no accumulation) |
| optimizer | AdamW, LR 2e-6 cosine, warmup 3 %, weight decay 0.1, grad-clip 1.0 |
| sequence | up to 44 k tokens, assistant-turn-masked loss |
| attention | SDPA (memory-efficient) — no FlashAttention |
| seed | 17 |
| objective | loss = CE exactly — verified: total − ce is 0.000e+00 on all 457 logged steps |
1from transformers import AutoModelForCausalLM, AutoProcessor
2m = AutoModelForCausalLM.from_pretrained(
3 "tzchen07/gemma4-31b-rovochat-full-sft-w0-260801",
4 torch_dtype="bfloat16", device_map="auto", attn_implementation="sdpa")
5p = AutoProcessor.from_pretrained("tzchen07/gemma4-31b-rovochat-full-sft-w0-260801")lm_head is absent by design (tied embeddings).
processor_config.json is included: Trainer.save_model() does not write it, and the processor cannot
be built without it.…-checkpoint-457
holds the complete end-of-training state: the same 2 safetensors shards, 16 ZeRO-3 fp32 optimizer
shards, 16 RNG states, and trainer_state.json.