💡 The Idea

Good answers come from good thinking.

Qwen-R1-0.5B is a fine-tuned version of Qwen2.5-0.5B-Instruct trained to reason before it answers using explicit <thinking> tags.

Instead of jumping straight to the answer, this model generates its reasoning first — making it more transparent, more reliable, and easier to debug.


🧠 How It Works

Every response is structured as:

User: {question}
Assistant: <thinking>{reasoning}</thinking>
{answer}

The model learns to:

  1. Think – generate step-by-step reasoning
  2. Answer – provide the final response

📊 Training Details

Property Value
Base Model Qwen2.5-0.5B-Instruct
Dataset WhirlwindAI/Soft-CoT-1K
Examples 1,355
Method QLoRA (4-bit)
Epochs 3
Learning Rate 2e-4
LoRA Rank 16
LoRA Alpha 32

🚀 Quick Start

from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "WhirlwindAI/Qwen-R1-0.5B"

tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True)

prompt = "User: What is 2+2?\nAssistant: <thinking>"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=50, do_sample=True, temperature=0.7)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

📋 Sample Output

User: What is the capital of France?
Assistant: <thinking>Paris is the capital of France.</thinking>
Paris

📈 Performance

The model was evaluated on 10 out-of-distribution questions:

Category Performance
Format (thinking tags) ✅ Excellent
General Knowledge ✅ Good
Creative Reasoning ✅ Good
Math/Logic ⚠️ Needs improvement
Physics/Science ⚠️ Needs improvement

🔬 What It Learned

Strength Weakness
✅ Consistent <thinking> format ❌ Sometimes hallucinates facts
✅ Generates reasoning before answering ❌ Struggles with multi-step math
✅ Retains general knowledge ❌ Physics reasoning needs more data

🧪 Test It Yourself

questions = [
    "What is the capital of France?",
    "Explain entropy like I'm 5.",
    "Write a short poem about a robot.",
]

for q in questions:
    prompt = f"User: {q}\nAssistant: <thinking>"
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    outputs = model.generate(**inputs, max_new_tokens=80)
    print(tokenizer.decode(outputs[0], skip_special_tokens=True))

📜 Citation

@model{qwenr1_2026,
  title={Qwen-R1-0.5B},
  author={WhirlwindAI},
  year={2026},
  publisher={Hugging Face}
}

🌪️ WhirlwindAI

Efficient Models • Practical Research • Open AI


Downloads last month
-
Safetensors
Model size
0.5B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for WhirlwindAI/Qwen-R1-0.5B

Finetuned
(880)
this model

Dataset used to train WhirlwindAI/Qwen-R1-0.5B