Self-Distillation Enables Continual Learning
Paper • 2601.19897 • Published • 36
How to use moos124/qwen-2.5-1.5B-instruct-SDFT with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-generation", model="moos124/qwen-2.5-1.5B-instruct-SDFT")
messages = [
{"role": "user", "content": "Who are you?"},
]
pipe(messages) # Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("moos124/qwen-2.5-1.5B-instruct-SDFT")
model = AutoModelForCausalLM.from_pretrained("moos124/qwen-2.5-1.5B-instruct-SDFT")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=40)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))How to use moos124/qwen-2.5-1.5B-instruct-SDFT with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "moos124/qwen-2.5-1.5B-instruct-SDFT"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "moos124/qwen-2.5-1.5B-instruct-SDFT",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker model run hf.co/moos124/qwen-2.5-1.5B-instruct-SDFT
How to use moos124/qwen-2.5-1.5B-instruct-SDFT with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "moos124/qwen-2.5-1.5B-instruct-SDFT" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "moos124/qwen-2.5-1.5B-instruct-SDFT",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "moos124/qwen-2.5-1.5B-instruct-SDFT" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "moos124/qwen-2.5-1.5B-instruct-SDFT",
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}'How to use moos124/qwen-2.5-1.5B-instruct-SDFT with Docker Model Runner:
docker model run hf.co/moos124/qwen-2.5-1.5B-instruct-SDFT
This model is a fine-tuned version of Qwen/Qwen2.5-1.5B-Instruct. It has been trained using TRL.
from transformers import pipeline
question = "If you had a time machine, but could only go to the past or the future once and never return, which would you choose and why?"
generator = pipeline("text-generation", model="moos124/qwen-2.5-1.5B-instruct-SDFT", device="cuda")
output = generator([{"role": "user", "content": question}], max_new_tokens=128, return_full_text=False)[0]
print(output["generated_text"])
This model was trained with SDFT, a method introduced in Self-Training with On-Policy Self-Distillation for Language Model Alignment.
Cite SDFT as:
@article{hubotter2026selftraining,
title = {{Self-Training with On-Policy Self-Distillation for Language Model Alignment}},
author = {Jonas H\"ubotter and Frederike L\"ubeck and Lejs Behric and Anton Baumann and Marco Bagatella and Daniel Marta and Ido Hakimi and Idan Shenfeld and Thomas Kleine Buening and Carlos Guestrin and Andreas Krause},
year = 2026,
eprint = {arXiv:2601.19897}
}
Cite TRL as:
@software{vonwerra2020trl,
title = {{TRL: Transformers Reinforcement Learning}},
author = {von Werra, Leandro and Belkada, Younes and Tunstall, Lewis and Beeching, Edward and Thrush, Tristan and Lambert, Nathan and Huang, Shengyi and Rasul, Kashif and Gallouédec, Quentin},
license = {Apache-2.0},
url = {https://github.com/huggingface/trl},
year = {2020}
}