Qwen2.5-7B Math & Writing Assistant (LoRA)

  • Developed by: x0root
  • License: apache-2.0
  • Base Model: unsloth/Qwen2.5-7B-Instruct-bnb-4bit

Model Overview

This model is a custom finetune of the Qwen2.5-7B-Instruct model, specifically optimized for step-by-step mathematical reasoning and high-quality conversational writing. By training on a custom curriculum of math and writing datasets, the model learns to break down complex word problems logically and format its thoughts clearly.

Because it was finetuned using the native ChatML template and response-only masking, it retains all the general knowledge and intelligence of the base Qwen 2.5 model while adopting these new logical pathways.

Training Data

The model was finetuned on a combined dataset using:

  • GSM8K: High-quality grade-school math word problems to teach step-by-step deduction and arithmetic reasoning.
  • UltraChat 200k (Subset): High-quality conversational instructions to improve writing structure, formatting, and human-like dialogue.

Technical Specifications

  • Finetuning Framework: Unsloth and Hugging Face TRL
  • Technique: QLoRA (4-bit Quantization)
  • LoRA Rank (r): 16
  • LoRA Alpha: 16
  • Target Modules: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj
  • Stabilization: Rank-Stabilized LoRA (rsLoRA) enabled

Prompt Format

This model strictly uses the ChatML format. If you are using standard Hugging Face inference, ensure your tokenizer applies the chat template:

<|im_start|>system
You are a helpful assistant.<|im_end|>
<|im_start|>user
I have 3 apples. I buy 5 more, then give 2 to my friend. How many do I have left?<|im_end|>
<|im_start|>assistant

Usage Example (Python)

You can run this model efficiently using the Unsloth library:

from unsloth import FastLanguageModel
from unsloth.chat_templates import get_chat_template

# Load the model and tokenizer
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "x0root/qwen-math-writer-lora",
    max_seq_length = 2048,
    load_in_4bit = True,
)
tokenizer = get_chat_template(tokenizer, chat_template="chatml")
FastLanguageModel.for_inference(model)

# Format the prompt
messages =[
    {"role": "user", "content": "I have 3 apples. I buy 5 more, then give 2 to my friend. How many apples do I have left? Explain your reasoning step-by-step."},
]

inputs = tokenizer.apply_chat_template(
    messages, tokenize=True, add_generation_prompt=True, return_tensors="pt"
).to("cuda")

# Generate the response
outputs = model.generate(input_ids=inputs, max_new_tokens=512, use_cache=True)
response = tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True)
print(response)

Acknowledgments

This qwen2 model was trained 2x faster with Unsloth

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for x0root/qwen-math-writer-lora

Base model

Qwen/Qwen2.5-7B
Adapter
(50)
this model