CoolFace
Modelpublic

STEVENZHANG904/Qwen3-0.6B-executor-sft

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

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

BranchEpochs trainedNotes
epoch22intermediate
epoch55intermediate
main10final

Training configuration

  • —Base model: Qwen/Qwen3-0.6B
  • —Dataset: Divij/qwen3-32b-mas-traces (config executor)
  • —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

python
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.