Instructions to use leon2k2k2k/qwen2.5-3b-countdown-grpo with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use leon2k2k2k/qwen2.5-3b-countdown-grpo with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="leon2k2k2k/qwen2.5-3b-countdown-grpo") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForMultimodalLM tokenizer = AutoTokenizer.from_pretrained("leon2k2k2k/qwen2.5-3b-countdown-grpo") model = AutoModelForMultimodalLM.from_pretrained("leon2k2k2k/qwen2.5-3b-countdown-grpo") 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]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use leon2k2k2k/qwen2.5-3b-countdown-grpo with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "leon2k2k2k/qwen2.5-3b-countdown-grpo" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "leon2k2k2k/qwen2.5-3b-countdown-grpo", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/leon2k2k2k/qwen2.5-3b-countdown-grpo
- SGLang
How to use leon2k2k2k/qwen2.5-3b-countdown-grpo with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "leon2k2k2k/qwen2.5-3b-countdown-grpo" \ --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": "leon2k2k2k/qwen2.5-3b-countdown-grpo", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
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 "leon2k2k2k/qwen2.5-3b-countdown-grpo" \ --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": "leon2k2k2k/qwen2.5-3b-countdown-grpo", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use leon2k2k2k/qwen2.5-3b-countdown-grpo with Docker Model Runner:
docker model run hf.co/leon2k2k2k/qwen2.5-3b-countdown-grpo
Qwen2.5-3B Countdown GRPO (iteration 300)
Qwen2.5-3B-Base trained with GRPO and a verifiable reward on the Countdown task for 300 iterations, directly from the base model with no SFT.
The headline: GRPO sharpens what the base could already do (add/sub coverage rises from 54% to 94% pass@10) but drives multiplication, a skill the base almost never produced, down to 0% (the base itself barely cleared the floor on these, about 7 correct samples in 1,500). RL reinforces existing behavior; it does not install a skill the model rarely generates on its own.
Full writeup: https://leon2k2k2k.github.io/blog/2026/grpo-sft-teaching-reasoning-through-arithmetic/ Companion: SFT-then-GRPO model | SFT dataset
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("leon2k2k2k/qwen2.5-3b-countdown-grpo")
tok = AutoTokenizer.from_pretrained("leon2k2k2k/qwen2.5-3b-countdown-grpo")
The model expects the Countdown prompt format: reason inside <think> </think>, give the final
equation inside <answer> </answer>.
Results
300 held-out problems (150 add/sub, 150 needs-mult), 10 samples per problem at temperature 0.7.
| cell | pass@1 | pass@10 |
|---|---|---|
| add/sub, 3 numbers | 80.2% | 98.9% |
| add/sub, 4 numbers | 44.1% | 85.7% |
| needs-mult, 3 numbers | 0.0% | 0.0% |
| needs-mult, 4 numbers | 0.0% | 0.0% |
Training
One H100. GRPO via nano-aha-moment,
following the DeepSeek-R1 recipe. G = 4, learning rate 1e-6,
KL 0.001, temperature 1.0, 1024-token budget, 300 iterations. Reward = 1.0 for a well-formed
<think>/<answer> response, plus 1.0 if the equation uses each number once and equals the target.
License and attribution
This is a fine-tune of Qwen2.5-3B by the Qwen team, and is released under the same Qwen Research License. The base model and its weights are their work; this repo only adds GRPO fine-tuning on Countdown.
- Downloads last month
- -
Model tree for leon2k2k2k/qwen2.5-3b-countdown-grpo
Base model
Qwen/Qwen2.5-3B