CoolFace
Modelpublic

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

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

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

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 step800 / 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 800)
Greedy Accuracy54.4%52.9%
pass@152.6%40.0%
pass@561.5%59.8%
pass@1064.3%65.1%

Usage

python
from transformers import AutoModelForCausalLM, AutoTokenizer

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

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}
}