v0.53.2 — Live trainers for Modality II

v0.52.0 shipped the schema, allowlists, and validators. v0.53.2 lights up the trainers.

Live trainers

task: distill

DistillTrainerWrapper — student model + frozen teacher + per-token KL divergence. Independent trust_remote_code flags per side.

yaml
task: distill
base: meta-llama/Llama-3.2-1B
training:
  teacher_model: meta-llama/Llama-3.2-3B-Instruct   # under training, not at root
  distill_divergence: forward_kl   # kl | forward_kl | reverse_kl | js
  distill_temperature: 2.0          # [0.05, 100]

(Changed in v0.76.0: before v0.76.0 a distillation run with gradient_accumulation_steps above 1 multiplied its gradient by that count (upstream's example: the same effective batch split four ways produced four times the gradient), which upstream says changed the effective learning rate (#720, #742); that is a row of the v0.76.0 re-run table. Two memory keys, distill_chunk_size and distill_checkpoint, are new: see Memory controls.)

task: classifier | reranker | cross_encoder

ClassifierTrainerWrapper covers single-label, multi-label, and cross-encoder heads.

yaml
task: classifier
training:
  num_labels: 5
  label_names: [toxic, severe, threat, obscene, identity_hate]

Reasoning effort dispatch

yaml
training:
  reasoning_effort: high   # low | medium | high — gpt-oss family

Injects the <|reasoning_effort|> prefix into chat turns.

Assistant-only loss + EOT unmask

train_on_eot: true unmasks the EOT / EOS boundary token so the model learns end-of-turn behaviour without leaking the rest of the prompt into the loss.

EBFT + GDPO live

EBFT (structured / strided) and GDPO (standard / length_normalized / margin) loss kernels both land as drop-in losses behind their respective task schemas.

(Superseded in v0.76.0: this is no longer true. training.ebft_variant, training.ebft_temperature and every value of training.gdpo_variant are refused at config load, (#1230, #1309): supported TRL versions do not expose the DPO loss hook GDPO needed, so it was accepted and ignored, and upstream's refusal for EBFT says it is not yet a distinct objective. Remove the keys. The current account is under EBFT + GDPO variants.)

Tests

  • 7,722 → 7,842 (+120)

See also

Soup is free and Apache-2.0. If it saved you a training run, starring the repo costs nothing and helps most. You can also fund the GPU time behind the work a 4 GB laptop cannot reach.