Qwen3.6's chat template renders <think>{reasoning}</think> for any assistant turn that is final,
so trace-free replay data would emit an empty<think></think> — the documented failure mode
that trains a model to stop reasoning. The mixture builder appends a throwaway user turn to push
the assistant off the end, hitting the template's no-think branch, then strips it. Verified on the
written artifact: zero empty think blocks, think blocks in exactly the 580 difficult-advice rows.
Training
bf16 LoRA (not QLoRA — bitsandbytes does not reliably cover this model's hybrid
linear-attention/SSM layers), 1×H100 80GB, 1h37m.
Table
r / alpha / dropout
32 / 64 / 0.05
target modules
regex scoped to model.language_model.* (q/k/v/o/gate/up/down proj)
adapted modules
256 — all 64 MLPs, plus self-attn on the 16 full-attention layers
epochs / steps
1 / 124
batch × grad-accum
1 × 16
lr / schedule
1e-4, cosine, 3% warmup, annealed to 0
max seq len / packing
2048 / off
Packing is off because TRL only guarantees packed-sequence isolation under Flash Attention
variants; under sdpa it warns of cross-contamination between samples. The vision tower
(model.visual) is untouched.
Loss: 2.69 → ~1.00 by step 20, then flat (0.91–1.08). Final token accuracy 0.708,
grad_norm 0.31, 1,444,984 tokens consumed.
Status
Not yet evaluated on ODCV-Bench. When it is, the comparison will be against the same matched
FP8 base arm (37.2%) used for the 20/80 result, on the same 78 scenario cells with the same two
judges.
Usage
python
from peft import PeftModelfrom transformers import AutoModelForImageTextToTextmodel = AutoModelForImageTextToText.from_pretrained("Qwen/Qwen3.6-27B", dtype="bfloat16")model = PeftModel.from_pretrained(model, "LASR-Callum/2026-07-29-qwen36-difficult-advice-tulu-lora-40-60")model = model.merge_and_unload() # vLLM LoRA support for this hybrid arch is unproven
Use AutoModelForImageTextToText, not AutoModelForCausalLM — this is a vision-language
checkpoint. Merging drops the base model's 15 mtp.* tensors, so speculative decoding needs them
grafted back from the base checkpoint.
from peft import PeftModelfrom transformers import AutoModelForImageTextToTextmodel = AutoModelForImageTextToText.from_pretrained("Qwen/Qwen3.6-27B", dtype="bfloat16")model = PeftModel.from_pretrained(model, "LASR-Callum/2026-07-29-qwen36-difficult-advice-tulu-lora-40-60")model = model.merge_and_unload() # vLLM LoRA support for this hybrid arch is unproven