CoolFace
Modelpublic

RockToken/qwen3_30b_a3b_to_4b_onpolicy_10k_src20k-30k_freeze_random

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
0likes8downloads
Model Card

qwen330ba3bto4bonpolicy10ksrc20k-30kfreeze_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`
DataOpenThoughts3 math prompts — 10k cumulative (5k src20k-25k → continued 5k src25k-30k)
Source fileopenthoughts_prompt_math_5k_src25k-30k.jsonl (continuation)
KD algorithmtoken_freeze_kd (see KDFlow)
KD lossreverse-KL, kdtemperature=1.0, kdratio=1.0
Freeze list98 token IDs from random.json (control set)
Freeze weight0.0 (loss on these tokens is fully zeroed)
BackendFSDP2, bf16, gradient checkpointing
Topology4× H100 (1 node), teacher TP=4, rollout TP=2
OptimizerAdamW, lr=2e-6 (5% warmup, cosine→1e-8), max_norm=1.0
Batchtrainbatchsize=4, micro=1, nsamplesper_prompt=4
Steps1 epoch, 2500 steps
Rolloutresponse cap 1024 tokens, temperature=1.0, top_p=1.0
Chat templateapplied; enable_thinking=False (Instruct-2507 is non-thinking)

A/B siblings

Use

python
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")