Training
- Base revision:
1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0.
- Teacher:
claude-opus-5; one preselected replicate, taking the first valid outcome after service-error retries.
- Training: 156 MAB tasks across 23 mechanisms; 2,241 assistant turns and 407,975 supervised tokens.
- MAB validation: 35 tasks, 499 assistant turns, 88,736 supervised tokens. Identical environment configurations are grouped across seed and prompt variants before splitting.
- Training examples use complete, protocol-valid, non-Hack training-side trajectories with positive reward. Selection is not based on the best score across repeated runs.
- Only the current assistant's visible text and tool calls contribute to loss. Earlier messages and tool feedback remain context. Provider-internal thinking is not used as a training target.
- Maximum training context: 16,384 tokens. Whole overlength examples were excluded (324 training turns and 68 validation turns), preserving complete context in retained examples.
- Full text-parameter SFT, frozen vision tower, BF16, 8 A100 80 GB GPUs, DeepSpeed ZeRO-3 and CPU optimizer offload.
- Two epochs / 282 steps; learning rate 2e-6, cosine schedule, 15 warmup steps, effective batch size 16, weight decay 0.01, seed 20261029.
Detailed settings and package versions are in training_recipe.json and deepspeed-zero3.json.
Checkpoints and evaluation
Table with columns: Revision, Epoch, Steps, MAB validation loss| Revision | Epoch | Steps | MAB validation loss |
|---|
epoch-1 | 1 | 141 | 0.2227127254 |
main | 2 | 282 | 0.2212697268 |
The loss is the mean of per-turn assistant-token mean cross-entropies, not a benchmark accuracy. The 275 external validation tasks and 275 final-test tasks are excluded from training; final-test results are excluded from checkpoint selection. Full MAB evaluation will distinguish training tasks from tasks not used for training. Evaluation results will be documented when complete.
Load the weights
The export retains the Qwen3_5ForConditionalGeneration architecture used by the Qwen3.8 base model. It includes full weights, tokenizer, chat template, and processor configuration. No adapter merge is needed.
import torchfrom transformers import AutoTokenizer, Qwen3_5ForConditionalGeneration repo_id = "ZACK0225/Qwen3.8-27B-MAB-Opus5-SFT"revision = "main"tokenizer = AutoTokenizer.from_pretrained(repo_id, revision=revision)model = Qwen3_5ForConditionalGeneration.from_pretrained( repo_id, revision=revision, dtype=torch.bfloat16, device_map="auto")messages = [{"role": "user", "content": "Explain exploration and exploitation in a bandit task."}]inputs = tokenizer.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(model.device)with torch.inference_mode(): output = model.generate(inputs, max_new_tokens=256)print(tokenizer.decode(output[0, inputs.shape[1]:], skip_special_tokens=True))
Training used Transformers 5.20.2. Local serving was exercised with vLLM 0.20.2. The complete BF16 weights occupy approximately 54.7 GB; inference additionally requires memory for runtime state and the KV cache. Multimodal capability is inherited from the base model; this SFT used text trajectories and did not evaluate vision transfer.
License and integrity
The upstream Apache-2.0 license is included as LICENSE; modifications are documented in NOTICE. File hashes are listed in SHA256SUMS.