CoolFace
Modelpublic

ayushnangia-sdft/qwen2.5-7b-instruct-sdft-tooluse-step-200

sourceHugging Faceapache-2.0updated 7mo agoView on Hugging Face
0likes19downloads
Model Card

Qwen2.5-7B-Instruct SDFT — Tool Use (Step 200)

This model is a Self-Distillation Fine-Tuned (SDFT) version of Qwen/Qwen2.5-7B-Instruct, trained on the ToolAlpaca tool-use dataset.

SDFT is an on-policy learning method from "Self-Distillation Enables Continual Learning" that acquires new skills while preserving prior capabilities, significantly reducing catastrophic forgetting compared to standard SFT.

Training Details

ParameterValue
Base modelQwen/Qwen2.5-7B-Instruct
MethodSDFT (On-Policy Self-Distillation)
DatasetToolAlpaca (4,046 training examples)
Training step200 / 1011
Learning rate2e-5 (cosine schedule, 10% warmup)
Batch size32 (gradient accumulation)
Epochs1
Precisionbf16
Max prompt length1024
Max completion length1024
EMA alpha0.01
Hardware1x NVIDIA L40S 48GB
Training time~42 hours (full run)

Evaluation Results

Tool-Use Accuracy (ToolAlpaca test set, 68 examples)

MetricBase ModelThis Model (Step 200)
Greedy Accuracy54.4%48.5%
pass@152.9%46.5%
pass@561.5%62.3%
pass@1063.7%66.5%

Usage

python
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("Ayushnangia/qwen2.5-7b-instruct-sdft-tooluse-step-200")
tokenizer = AutoTokenizer.from_pretrained("Ayushnangia/qwen2.5-7b-instruct-sdft-tooluse-step-200")

messages = [{"role": "user", "content": "Your tool-use prompt here"}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

All Checkpoints

Citation

bibtex
@article{shenfeld2025selfdistillation,
  title={Self-Distillation Enables Continual Learning},
  author={Shenfeld, Idan and others},
  journal={arXiv preprint arXiv:2601.19897},
  year={2025}
}