Why a cold start is needed
The base model essentially never commits. Across 2,880 multi-turn rollouts it
made 3 submit calls — it proposes prolifically (~5.6 candidates/rollout)
and evaluates sparingly, then runs out of turns. Strict multi-turn SUN is
therefore 0% by construction: a commitment failure, not a chemistry failure.
Teaching the agent to close an episode is precisely what this stage installs.
Training
Table | |
|---|
| base | Qwen/Qwen3.5-4B |
| data | 1,123 episodes, assistant-only loss |
| steps | 423 (3 epochs), global batch 8 |
| seq len | 16,384 |
| optimizer | AdamW, lr 2e-5, constant |
| precision | bf16 |
| parallelism | FSDP + context parallel (cp=2, ulysses) |
| trainer | prime-rl |
Trained on 4×A100-40GB. Final loss ~0.36.
Context parallelism uses ulysses, not ring: Qwen3.5 is a hybrid with linear
attention (DeltaNet) layers, and ring attention is a softmax-attention algorithm
that does not apply to them.
Important: thinking channel
This model is trained with reasoning in the native thinking channel
(reasoning_content → <think>), preserved across tool calls. Do not
evaluate it with enable_thinking=false — that disables exactly the behavior
this run trains.
Serving
Qwen3.5 is a VL-capable model class, so vLLM requires an image-processor config
even for text-only serving. preprocessor_config.json and
video_preprocessor_config.json are included; without them vLLM fails on load.