qwen3_30b_a3b_to_4b_onpolicy_10k_src20k-30k_freeze_random

A 4B math-distilled model. Student fine-tuned from RockToken/qwen3_30b_a3b_to_4b_onpolicy_5k_src20k-25k_freeze_random via on-policy reverse-KL distillation against a Qwen3-30B-A3B teacher, using the token_freeze_kd algorithm to mask a 98-token "freeze list" out of the KD loss.

This is the control arm ("random" token set) of an A/B experiment on the effect of selectively freezing certain tokens during on-policy KD.

Training

Student (init) RockToken/qwen3_30b_a3b_to_4b_onpolicy_5k_src20k-25k_freeze_random
Teacher Qwen/Qwen3-30B-A3B-Instruct-2507
Data OpenThoughts3 math prompts — 10k cumulative (5k src20k-25k → continued 5k src25k-30k)
Source file openthoughts_prompt_math_5k_src25k-30k.jsonl (continuation)
KD algorithm token_freeze_kd (see KDFlow)
KD loss reverse-KL, kd_temperature=1.0, kd_ratio=1.0
Freeze list 98 token IDs from random.json (control set)
Freeze weight 0.0 (loss on these tokens is fully zeroed)
Backend FSDP2, bf16, gradient checkpointing
Topology 4× H100 (1 node), teacher TP=4, rollout TP=2
Optimizer AdamW, lr=2e-6 (5% warmup, cosine→1e-8), max_norm=1.0
Batch train_batch_size=4, micro=1, n_samples_per_prompt=4
Steps 1 epoch, 2500 steps
Rollout response cap 1024 tokens, temperature=1.0, top_p=1.0
Chat template applied; enable_thinking=False (Instruct-2507 is non-thinking)

A/B siblings

Use

from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("RockToken/qwen3_30b_a3b_to_4b_onpolicy_10k_src20k-30k_freeze_random")
model = AutoModelForCausalLM.from_pretrained("RockToken/qwen3_30b_a3b_to_4b_onpolicy_10k_src20k-30k_freeze_random", torch_dtype="bfloat16")
Downloads last month
15
Safetensors
Model size
4B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for RockToken/qwen3_30b_a3b_to_4b_onpolicy_10k_src20k-30k_freeze_random