CoolFace
Modelpublic

AaryanK/Qwen_2.5_3B_GRPO_Reasoning_XIOSERV

sourceHugging Facecc-by-nc-2.0updated 29d agoView on Hugging Face
1likes1.1kdownloads
Model Card

Qwen2.5-3B Toggleable-Reasoning (GRPO)

A fine-tune of Qwen2.5-3B-Instruct with a runtime-toggleable reasoning mode: with a short system prompt the model thinks inside <reasoning> tags before answering inside <answer> tags; without it, the model answers directly like a normal instruct model. One checkpoint, two behaviours, switched at inference time.

Trained and released by Aaryan Kapoor as an independent research project. Released February 16, 2025.

DOI: 10.57967/hf/5366


Toggleable reasoning

System promptBehaviour
Included (below)Explicit <reasoning> … </reasoning> block, then <answer> … </answer>
OmittedStandard conversational response, no visible reasoning

System prompt that enables reasoning:

Respond in the following format:
<reasoning>
...
</reasoning>
<answer>
...
</answer>

The switch is purely prompt-driven — no extra tokens, adapters, or generation flags are required. The model was trained so that the reasoning format is triggered by this instruction and remains dormant otherwise, which keeps default responses short and lets applications opt into chain-of-thought only where it pays off.


Training

  • —Base model: Qwen/Qwen2.5-3B-Instruct
  • —Method: Group Relative Policy Optimization (GRPO) — the reinforcement-learning objective introduced in DeepSeekMath and used to train DeepSeek-R1. Group-relative advantages remove the need for a separate value model, which is what makes RL on reasoning practical at small scale.
  • —Rewards: rule-based rewards for answer correctness plus format rewards for well-formed <reasoning> / <answer> structure.
  • —Efficiency: parameter-efficient fine-tuning (QLoRA / PEFT) so the full run fits on a single consumer GPU.
  • —Goal: reproduce the "aha-moment" behaviour of R1-style training — the model learning to reflect on and revise its own intermediate steps — in a 3B model, while keeping the ability to answer plainly when reasoning is not requested.

Files

  • —Safetensors / PyTorch weights (transformers-compatible)
  • —GGUF quantizations for llama.cpp: F16, Q8_0, Q5_K_M

Usage

transformers

python
from transformers import AutoModelForCausalLM, AutoTokenizer

repo = "AaryanK/Qwen_2.5_3B_GRPO_Reasoning_XIOSERV"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype="auto", device_map="auto")

REASONING_PROMPT = (
    "Respond in the following format:\n<reasoning>\n...\n</reasoning>\n<answer>\n...\n</answer>"
)

messages = [
    {"role": "system", "content": REASONING_PROMPT},   # drop this line for direct answers
    {"role": "user", "content": "A bat and a ball cost $1.10 in total. The bat costs $1.00 more than the ball. How much does the ball cost?"},
]
inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=512)
print(tok.decode(out[0][inputs.shape[-1]:], skip_special_tokens=True))

llama.cpp

bash
llama-cli -m <model>_Q5_K_M.gguf \
  --system-prompt "Respond in the following format:
<reasoning>
...
</reasoning>
<answer>
...
</answer>" \
  -p "A bat and a ball cost \$1.10 in total. The bat costs \$1.00 more than the ball. How much does the ball cost?"

Omit --system-prompt for standard instruct-style answers.


Limitations

  • —3B parameters: reasoning helps most on short math, logic, and structured tasks; it does not turn the model into a frontier reasoner.
  • —Reasoning traces are not guaranteed to be faithful to the final answer.
  • —Inherits the base model's knowledge cutoff, biases, and safety behaviour.
  • —Released under CC BY-NC 2.0 (non-commercial).

Citation

bibtex
@misc{kapoor2025toggleable,
  author = {Kapoor, Aaryan},
  title  = {Qwen2.5-3B Toggleable-Reasoning (GRPO)},
  year   = {2025},
  month  = feb,
  doi    = {10.57967/hf/5366},
  url    = {https://huggingface.co/AaryanK/Qwen_2.5_3B_GRPO_Reasoning_XIOSERV},
  publisher = {Hugging Face}
}

Questions and feedback: open a discussion in the Community tab.