STEVENZHANG904/Qwen3-0.6B-executor-sft
09
STEVENZHANG904/Qwen3-0.6B-executor-sft
SFT-finetuned Qwen/Qwen3-0.6B on the executor subset of Divij/qwen3-32b-mas-traces, which contains traces of Qwen3-32B acting as a executor agent in a multi-agent system. This model is the distilled student that learns to play the same role as Qwen3-32B in that pipeline.
Branches
Training configuration
- Base model:
Qwen/Qwen3-0.6B - Dataset:
Divij/qwen3-32b-mas-traces(configexecutor) - Loss: assistant-only (system + user tokens masked)
- Optimizer: AdamW (β=(0.9, 0.95), wd=0.01, eps=1e-8)
- Learning rate: 1e-5, constant with 3% warmup
- Sequence length: 8192 (sequence packing on)
- Precision: bf16
- Hardware: 8× H100 80GB, DDP
- Liger-Kernel: on (chunked CE + fused RMSNorm)
Inference
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
repo = "STEVENZHANG904/Qwen3-0.6B-executor-sft"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, dtype=torch.bfloat16, device_map="cuda")
# Executor role expects a task-spec prompt — see the dataset card for the exact format.
messages = [
{"role": "system", "content": "You are a helpful, creative, and smart assistant."},
{"role": "user", "content": "<your executor task spec here>"},
]
inputs = tok.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to("cuda")
out = model.generate(
inputs, max_new_tokens=4096,
do_sample=True, temperature=0.6, top_p=0.95, # Qwen3 thinking-mode defaults
)
print(tok.decode(out[0][inputs.shape[-1]:], skip_special_tokens=True))The model emits <think>...</think> reasoning blocks (inherited from Qwen3-32B traces). Use sampling, not greedy decoding — small distilled models can loop in <think> under greedy.
