306 lines
8.0 KiB
Markdown
306 lines
8.0 KiB
Markdown
---
|
||
language:
|
||
- en
|
||
license: apache-2.0
|
||
tags:
|
||
- gguf
|
||
- qwen3
|
||
- unsloth
|
||
- math
|
||
- mathematical-reasoning
|
||
- chain-of-thought
|
||
- cot
|
||
- gsm8k
|
||
- openmath
|
||
- instruction-tuning
|
||
- quantization
|
||
base_model: HAD653/qwen3-1.7b-magistral-math
|
||
datasets:
|
||
- HAD653/GSM8K-OpenMath-MathReason-13k
|
||
pipeline_tag: text-generation
|
||
|
||
model-index:
|
||
- name: Qwen3-1.7B-Magistral-Math-GGUF
|
||
results: []
|
||
quantized_from:
|
||
- HAD653/qwen3-1.7b-magistral-math
|
||
---
|
||
|
||
# Qwen3-1.7B Magistral Math (GGUF)
|
||
|
||
[](https://www.apache.org/licenses/LICENSE-2.0)
|
||

|
||

|
||

|
||

|
||
|
||
---
|
||
|
||
## TL;DR
|
||
|
||
This is a **math-focused fine-tune** of [`unsloth/Qwen3-1.7B-Base`](https://huggingface.co/unsloth/Qwen3-1.7B-Base),
|
||
exported to **GGUF** (F16 / Q8_0 / Q4_K_M) with **Unsloth**.
|
||
|
||
- **Goal:** small 1.7B model specialized for **grade-school & early high-school math reasoning**.
|
||
- **Data:** [`HAD653/GSM8K-OpenMath-MathReason-13k`](https://huggingface.co/datasets/HAD653/GSM8K-OpenMath-Magistral-13k) – 13.9k math word problems with structured chain-of-thought.
|
||
- **Format:** answers always follow the same pattern:
|
||
|
||
```text
|
||
Problem:
|
||
...
|
||
|
||
Reasoning:
|
||
...
|
||
|
||
Answer:
|
||
<final numeric answer>
|
||
````
|
||
|
||
* **Best use:** GSM8K-style problems, OpenMath-style word problems, step-by-step reasoning with a **single numeric final answer**.
|
||
|
||
---
|
||
|
||
## Model Description
|
||
|
||
* **Base model:** [`unsloth/Qwen3-1.7B-Base`](https://huggingface.co/unsloth/Qwen3-1.7B-Base) (Apache-2.0)
|
||
* **Architecture:** Qwen3 dense causal LM, ~1.7B params, 28 layers, GQA attention, **32k context**.
|
||
* **Type:** decoder-only LLM, text generation.
|
||
* **This repo:** inference-only **GGUF weights** for llama.cpp / LM Studio / Ollama / text-generation-webui.
|
||
|
||
### Available files
|
||
|
||
From the **Files** tab:
|
||
|
||
* `Qwen3-1.7B-Magistral-Math-F16.gguf` – highest quality, requires the most VRAM.
|
||
* `Qwen3-1.7B-Magistral-Math-Q8_0.gguf` – 8-bit quantization.
|
||
* `Qwen3-1.7B-Magistral-Math-Q4_K_M.gguf` – 4-bit K-quant, best for smaller GPUs.
|
||
|
||
> These files contain **fine-tuned math weights**, exported via `model.save_pretrained_gguf` after full BF16 training.
|
||
|
||
---
|
||
|
||
## Training Data
|
||
|
||
This model is fine-tuned on:
|
||
|
||
* **Dataset:** [`HAD653/GSM8K-OpenMath-MathReason-13k`](https://huggingface.co/datasets/HAD653/GSM8K-OpenMath-MathReason-13k)
|
||
* **Size:** 13,857 examples.
|
||
* **Fields:**
|
||
|
||
* `question`: natural language math word problem.
|
||
* `cot`: structured solution with three blocks:
|
||
|
||
* `Problem:`
|
||
* `Reasoning:`
|
||
* `Answer:`
|
||
* `final_answer`: canonical numeric answer (string).
|
||
|
||
The dataset focuses on **easy–medium difficulty**:
|
||
basic arithmetic, fractions, percentages, rate problems, simple algebra, and simple combinatorics – the kind of tasks a **1–3B model can genuinely master**.
|
||
|
||
---
|
||
|
||
## Training Setup (Summary)
|
||
|
||
Fine-tuning was done with **Unsloth + TRL** on a single **RTX 4090**, using **full BF16 fine-tuning** (no LoRA).
|
||
|
||
Main hyperparameters:
|
||
|
||
* **Base:** `unsloth/Qwen3-1.7B-Base`
|
||
* **Sequence length:** 2048
|
||
* **Batching:** `per_device_train_batch_size = 2`, `gradient_accumulation_steps = 8`
|
||
* **Effective batch size:** ≈ 16 sequences
|
||
* **Epochs:** 2
|
||
* **Optimizer / schedule:**
|
||
|
||
* `learning_rate = 7e-5`
|
||
* linear scheduler, `warmup_ratio = 0.05`
|
||
* `weight_decay = 0.01`
|
||
* **Precision & memory:**
|
||
|
||
* `dtype = bfloat16`
|
||
* `gradient_checkpointing = True`
|
||
|
||
### Supervision format
|
||
|
||
The training text for each sample is:
|
||
|
||
```text
|
||
### Instruction:
|
||
{question}
|
||
|
||
### Response:
|
||
{cot}</s>
|
||
```
|
||
|
||
where `</s>` is the tokenizer EOS token.
|
||
Adding `eos_token` at the end of each sample teaches the model **when to stop**, which greatly reduces “Answer: 36 / Answer: 36 / …” loops during inference.
|
||
|
||
---
|
||
|
||
## Prompting & Templates
|
||
|
||
### Recommended system prompt (optional but useful)
|
||
|
||
```text
|
||
You are a math reasoning assistant.
|
||
|
||
For every question, answer in exactly this format:
|
||
|
||
Problem:
|
||
<restate the problem in your own words>
|
||
|
||
Reasoning:
|
||
<step-by-step reasoning showing all intermediate steps>
|
||
|
||
Answer:
|
||
<final numeric answer only, on its own line>
|
||
|
||
Do not add any extra commentary before or after the answer.
|
||
Do not repeat the answer multiple times.
|
||
Stop after writing the final answer.
|
||
```
|
||
|
||
### Inference template (matches training)
|
||
|
||
Single-turn format:
|
||
|
||
```text
|
||
### Instruction:
|
||
{question}
|
||
|
||
### Response:
|
||
```
|
||
|
||
The model will then generate:
|
||
|
||
```text
|
||
Problem:
|
||
...
|
||
|
||
Reasoning:
|
||
...
|
||
|
||
Answer:
|
||
<number>
|
||
```
|
||
|
||
### Stop strings
|
||
|
||
On top of the EOS token, you can add **stop strings** in your UI:
|
||
|
||
* `### Instruction:`
|
||
* `### Response:`
|
||
|
||
Many frontends (LM Studio, text-generation-webui, KoboldCpp, etc.) let you configure these so the model stops cleanly when it tries to start the next turn.
|
||
|
||
---
|
||
|
||
## Quantization & Hardware Tips
|
||
|
||
The three variants in this repo roughly behave as follows (ballpark):
|
||
|
||
* **`Q4_K_M` (~1.1 GB)** – best for:
|
||
|
||
* 4–6 GB GPUs or pure CPU inference.
|
||
* Fast experimentation / local tools / “math assistant on a laptop”.
|
||
* **`Q8_0` (~1.8 GB)** – good compromise:
|
||
|
||
* 8–12 GB GPUs.
|
||
* Often slightly more stable than Q4 on harder problems.
|
||
* **`F16` (~3.5 GB)** – highest fidelity:
|
||
|
||
* 12+ GB GPUs (4090, 4080, 4070 12GB, A4000 etc.).
|
||
* Recommended if VRAM allows and you care about maximum accuracy.
|
||
|
||
As a rule of thumb, choose a file that is **1–2 GB smaller than your available VRAM**.
|
||
|
||
---
|
||
|
||
## Usage Examples
|
||
|
||
### llama.cpp
|
||
|
||
Once you have built `llama.cpp`, you can run the model like this (replace with your path):
|
||
|
||
```bash
|
||
./llama-cli \
|
||
-m Qwen3-1.7B-Magistral-Math-Q4_K_M.gguf \
|
||
-p "### Instruction:
|
||
Albert buys 2 large pizzas and 2 small pizzas. A large pizza has 16 slices and a small pizza has 8 slices. If he eats it all, how many pieces does he eat that day?
|
||
|
||
### Response:
|
||
" \
|
||
-n 256 \
|
||
--temp 0.1 \
|
||
--top-p 0.9 \
|
||
--repeat-penalty 1.05
|
||
```
|
||
|
||
Suggested decoding for math:
|
||
|
||
* `temperature`: 0.0–0.2
|
||
* `top_p`: 0.9
|
||
* `repeat_penalty`: 1.05–1.1
|
||
* `top_k`: 20–40 (optional tweak)
|
||
|
||
### LM Studio / other UIs
|
||
|
||
Set the **prompt template** to:
|
||
|
||
```text
|
||
### Instruction:
|
||
{{prompt}}
|
||
|
||
### Response:
|
||
```
|
||
|
||
Add stop strings:
|
||
|
||
* `### Instruction:`
|
||
* `### Response:`
|
||
|
||
and keep temperature low for math benchmarks.
|
||
|
||
---
|
||
|
||
## Intended Uses & Limitations
|
||
|
||
### Intended uses
|
||
|
||
* Solving **GSM8K-style** and **OpenMath-style** word problems.
|
||
* Training / evaluating **small-scale math reasoning pipelines**.
|
||
* Serving as a **local math tutor** for grade-school / early high-school algebra & arithmetic.
|
||
|
||
### Limitations
|
||
|
||
* Not a general chat/instruction model; it is **biased toward math**.
|
||
* CoT is learned from **synthetic teacher traces**, not human-written solutions.
|
||
* Not suitable for **high-stakes educational or decision-making** without human oversight.
|
||
* Performance on very hard competition math (Olympiad-level, deep proofs) will be limited – the training data explicitly focuses on **easy–medium difficulty**.
|
||
|
||
Users are responsible for ensuring there is no data leakage if they evaluate on GSM8K/OpenMath-derived benchmarks.
|
||
|
||
---
|
||
|
||
## Acknowledgements
|
||
|
||
* Base model: [Qwen/Qwen3-1.7B-Base](https://huggingface.co/unsloth/Qwen3-1.7B-Base) and the Qwen / Unsloth teams.
|
||
* Unsloth for fast fine-tuning and GGUF export.
|
||
* Training data: [`HAD653/GSM8K-OpenMath-MathReason-13k`](https://huggingface.co/datasets/HAD653/GSM8K-OpenMath-MathReason-13k).
|
||
|
||
---
|
||
|
||
## Citation
|
||
|
||
If you use this model in your work, please cite:
|
||
|
||
```bibtex
|
||
@misc{had653_qwen3_magistral_math_gguf_2025,
|
||
author = {HAD653},
|
||
title = {Qwen3-1.7B Magistral Math (GGUF): A 1.7B Math Reasoning Model with Magistral Chain-of-Thought},
|
||
year = {2025},
|
||
howpublished = {\url{https://huggingface.co/HAD653/qwen3-1.7b-magistral-math-gguf}},
|
||
note = {Fine-tuned on GSM8K + OpenMath MathReason 13k, exported to GGUF (F16 / Q8\_0 / Q4\_K\_M).}
|
||
}
|
||
``` |