|
|
--- |
|
|
base_model: unsloth/phi-4-unsloth-bnb-4bit |
|
|
tags: |
|
|
- text-generation |
|
|
- transformers |
|
|
- unsloth |
|
|
- llama |
|
|
- trl |
|
|
license: apache-2.0 |
|
|
language: |
|
|
- en |
|
|
--- |
|
|
|
|
|
# 🧮 Phi-4 Math Reasoning Model (LoRA Finetuned) |
|
|
|
|
|
## 📌 Model Overview |
|
|
This model is a **LoRA fine-tuned version** of [unsloth/phi-4-unsloth-bnb-4bit](https://huggingface.co/unsloth/phi-4-unsloth-bnb-4bit). |
|
|
It has been fine-tuned specifically for **math reasoning tasks**, capable of solving step-by-step arithmetic, algebra, and logic problems. |
|
|
|
|
|
The base model is **Phi-4**, a 14B-parameter LLaMA variant optimized with [Unsloth](https://github.com/unslothai/unsloth) for **2x faster training** using Hugging Face’s [TRL](https://huggingface.co/docs/trl) library. |
|
|
This version uses **bnb-4bit quantization**, making it memory efficient and suitable for single-GPU setups such as **Tesla T4 (16GB)** or consumer GPUs. |
|
|
|
|
|
--- |
|
|
|
|
|
## ⚡ Key Features |
|
|
- 🧠 Fine-tuned for **math reasoning and step-by-step solutions** |
|
|
- ⚡ Efficient: 4-bit quantized, runs on **a single GPU** or even CPU (slower) |
|
|
- 🚀 Trained with **Unsloth + TRL** for fast and memory-efficient fine-tuning |
|
|
- 📚 Based on **Phi-4 (14B LLaMA model)** |
|
|
|
|
|
--- |
|
|
|
|
|
## 📥 Installation |
|
|
Ensure you have the latest versions of the required libraries: |
|
|
```bash |
|
|
pip install unsloth transformers accelerate bitsandbytes |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
🖥️ Usage (Colab / Local GPU) |
|
|
|
|
|
```bash |
|
|
import torch |
|
|
from unsloth import FastLanguageModel |
|
|
from transformers import TextStreamer |
|
|
|
|
|
# Load the LoRA fine-tuned model |
|
|
model_name = "RobinMillford/phi-4-math-reasoning-lora" |
|
|
model, tokenizer = FastLanguageModel.from_pretrained( |
|
|
model_name=model_name, |
|
|
max_seq_length=2048, |
|
|
dtype=torch.float16, # fp16 recommended for GPU |
|
|
load_in_4bit=True, # load in 4-bit quantized mode |
|
|
device_map="auto" # automatically place layers on GPU/CPU |
|
|
) |
|
|
|
|
|
# Prepare for inference |
|
|
FastLanguageModel.for_inference(model) |
|
|
|
|
|
# Example: Generate a step-by-step solution |
|
|
streamer = TextStreamer(tokenizer) |
|
|
inputs = tokenizer( |
|
|
"Solve step by step: Q: What is 24 * 17 ? A:", |
|
|
return_tensors="pt" |
|
|
).to("cuda") |
|
|
|
|
|
_ = model.generate(**inputs, streamer=streamer, max_new_tokens=500) |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
📊 Example Output |
|
|
|
|
|
Prompt: |
|
|
|
|
|
Solve step by step: Q: What is 45 + 67 ? |
|
|
|
|
|
|
|
|
|
|
|
Response: |
|
|
|
|
|
Step 1: Add the ones digits: 5 + 7 = 12. Write down 2 and carry over 1. |
|
|
Step 2: Add the tens digits plus carry: 4 + 6 + 1 = 11. |
|
|
Step 3: Combine the results: 112. |
|
|
Answer: 112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
⚠️ Disclaimer |
|
|
|
|
|
|
|
|
This model is intended for research and educational purposes only. |
|
|
|
|
|
It may not be fully accurate for complex math reasoning tasks. Always verify critical calculations independently. |
|
|
|
|
|
|
|
|
|
|
|
## ❤️ Made With |
|
|
- [Unsloth](https://github.com/unslothai/unsloth) |
|
|
- [Transformers](https://huggingface.co/docs/transformers) |
|
|
- [TRL](https://huggingface.co/docs/trl) |
|
|
- [Kaggle Notebook](https://www.kaggle.com/code/yaminh/finetuning-a-llm-for-math-reasoning-sbs) |
|
|
|
|
|
--- |