|
|
--- |
|
|
license: apache-2.0 |
|
|
language: |
|
|
- zh |
|
|
- en |
|
|
library_name: transformers |
|
|
pipeline_tag: text-generation |
|
|
tags: |
|
|
- causal-lm |
|
|
- math |
|
|
- reasoning |
|
|
- tool-calling |
|
|
- function-calling |
|
|
- bilingual |
|
|
- code |
|
|
- symbolic-solver |
|
|
- llm |
|
|
- pytorch |
|
|
base_model: Kirim-ai/Kirim-V1-base |
|
|
datasets: [] |
|
|
metrics: |
|
|
- math |
|
|
- gsm8k |
|
|
- minerva |
|
|
model-index: |
|
|
- name: Kirim-1-Math |
|
|
results: [] |
|
|
widget: |
|
|
- text: "Solve: ∫(x² + 2x + 1)dx" |
|
|
example_title: "Calculus Integration" |
|
|
- text: "解方程组: 2x + 3y = 12, 4x - y = 5" |
|
|
example_title: "System of Equations (Chinese)" |
|
|
- text: "Use the calculator tool to compute 2^128" |
|
|
example_title: "Tool Calling Example" |
|
|
--- |
|
|
|
|
|
# Kirim-1-Math (16B) |
|
|
|
|
|
<div align="center"> |
|
|
|
|
|
<div align="center"> |
|
|
|
|
|
<img src="https://imgur.com/n5uQJXF.png" alt="Helion-V2-Thinking Logo" width="70%"/> |
|
|
|
|
|
</div> |
|
|
|
|
|
--- |
|
|
|
|
|
**The First Kirim Model with Advanced Mathematical Reasoning and Tool Calling** |
|
|
|
|
|
[Base Model](https://huggingface.co/Kirim-ai/Kirim-V1-base) • [模型卡](https://huggingface.co/Kirim-ai/Kirim-1-Math/blob/main/MODEL_CARD.md) |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
## Introduction |
|
|
|
|
|
**Kirim-1-Math** is a 16-billion parameter mathematical reasoning model, representing a major leap in the Kirim model series. As the **first Kirim model with tool calling capabilities**, it combines advanced mathematical problem-solving with the ability to use external tools and execute calculations. |
|
|
|
|
|
### Key Features |
|
|
|
|
|
- **Advanced Math Reasoning**: Trained on mathematical proofs, olympiad problems, and research papers |
|
|
- **Tool Calling**: First in Kirim series with function calling capabilities |
|
|
- **Symbolic Solver**: Handles algebraic manipulation, calculus, and symbolic computation |
|
|
- **Bilingual**: Solves problems in both Chinese and English |
|
|
- **Code Execution**: Can write and execute Python code for numerical solutions |
|
|
- **LaTeX Output**: Generates properly formatted mathematical expressions |
|
|
- **30B Parameters**: More powerful reasoning than 7B/13B variants |
|
|
|
|
|
--- |
|
|
|
|
|
## Model Specifications |
|
|
|
|
|
| Parameter | Value | Comparison | |
|
|
|-----------|-------|------------| |
|
|
| Parameters | 16B | 2.3× larger than base | |
|
|
| Hidden Size | 5,120 | Enhanced capacity | |
|
|
| Layers | 48 | Deep reasoning | |
|
|
| Attention Heads | 40 | Fine-grained attention | |
|
|
| KV Heads | 8 (GQA) | Memory efficient | |
|
|
| Context Length | 32,768 tokens | Extended problems | |
|
|
| Vocabulary | 102,400 | Same as base | |
|
|
| Tool Calling | ✅ Yes | **New feature!** | |
|
|
| Precision | BFloat16 | High quality | |
|
|
|
|
|
### Architecture Highlights |
|
|
|
|
|
- **Deeper Network**: 48 layers for complex multi-step reasoning |
|
|
- **Wider Hidden States**: 5,120 dimensions for richer representations |
|
|
- **Grouped Query Attention**: 5:1 ratio (40:8) for efficiency |
|
|
- **Extended Training**: Specialized on mathematical datasets |
|
|
|
|
|
--- |
|
|
|
|
|
## Quick Start |
|
|
|
|
|
### Installation |
|
|
|
|
|
```bash |
|
|
pip install transformers torch accelerate sympy |
|
|
``` |
|
|
|
|
|
### Basic Usage |
|
|
|
|
|
```python |
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer |
|
|
|
|
|
# Load model |
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
"Kirim-ai/Kirim-1-Math", |
|
|
torch_dtype="auto", |
|
|
device_map="auto", |
|
|
trust_remote_code=True |
|
|
) |
|
|
|
|
|
tokenizer = AutoTokenizer.from_pretrained( |
|
|
"Kirim-ai/Kirim-1-Math", |
|
|
trust_remote_code=True |
|
|
) |
|
|
|
|
|
# Solve a math problem |
|
|
messages = [ |
|
|
{"role": "user", "content": "Solve the quadratic equation: x² - 5x + 6 = 0"} |
|
|
] |
|
|
|
|
|
inputs = tokenizer.apply_chat_template( |
|
|
messages, |
|
|
return_tensors="pt", |
|
|
add_generation_prompt=True |
|
|
).to(model.device) |
|
|
|
|
|
outputs = model.generate( |
|
|
inputs, |
|
|
max_new_tokens=2048, |
|
|
temperature=0.1, # Lower temperature for math |
|
|
top_p=0.95, |
|
|
do_sample=False # Deterministic for accuracy |
|
|
) |
|
|
|
|
|
response = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
print(response) |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## Tool Calling |
|
|
|
|
|
Kirim-1-Math is the **first Kirim model** with built-in tool calling capabilities. |
|
|
|
|
|
### Available Tools |
|
|
|
|
|
The model can use these built-in mathematical tools: |
|
|
|
|
|
1. **Calculator**: Precise arithmetic operations |
|
|
2. **Symbolic Solver**: Algebraic manipulations |
|
|
3. **Code Executor**: Run Python/SymPy code |
|
|
4. **Plot Generator**: Create mathematical visualizations |
|
|
5. **Theorem Lookup**: Access mathematical theorems and formulas |
|
|
|
|
|
### Tool Calling Example |
|
|
|
|
|
```python |
|
|
messages = [ |
|
|
{ |
|
|
"role": "user", |
|
|
"content": "Calculate 2^1024 and tell me how many digits it has" |
|
|
} |
|
|
] |
|
|
|
|
|
# Model will automatically decide to use calculator tool |
|
|
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt") |
|
|
outputs = model.generate(inputs, max_new_tokens=2048) |
|
|
|
|
|
# Response will include tool calls like: |
|
|
# <tool_call> |
|
|
# { |
|
|
# "name": "calculator", |
|
|
# "arguments": { |
|
|
# "expression": "2**1024" |
|
|
# } |
|
|
# } |
|
|
# </tool_call> |
|
|
``` |
|
|
|
|
|
### Custom Tool Definition |
|
|
|
|
|
```python |
|
|
tools = [ |
|
|
{ |
|
|
"type": "function", |
|
|
"function": { |
|
|
"name": "scientific_calculator", |
|
|
"description": "Perform advanced scientific calculations", |
|
|
"parameters": { |
|
|
"type": "object", |
|
|
"properties": { |
|
|
"expression": { |
|
|
"type": "string", |
|
|
"description": "Mathematical expression to evaluate" |
|
|
}, |
|
|
"precision": { |
|
|
"type": "integer", |
|
|
"description": "Decimal precision", |
|
|
"default": 10 |
|
|
} |
|
|
}, |
|
|
"required": ["expression"] |
|
|
} |
|
|
} |
|
|
} |
|
|
] |
|
|
|
|
|
# Include tools in prompt |
|
|
messages = [ |
|
|
{"role": "system", "content": f"You have access to these tools: {tools}"}, |
|
|
{"role": "user", "content": "Calculate sin(π/4) with 15 decimal places"} |
|
|
] |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## Mathematical Capabilities |
|
|
|
|
|
### 1. Algebraic Reasoning |
|
|
|
|
|
```python |
|
|
# Example: Solve system of equations |
|
|
problem = """ |
|
|
解方程组: |
|
|
2x + 3y = 12 |
|
|
4x - y = 5 |
|
|
""" |
|
|
|
|
|
response = model.generate_solution(problem) |
|
|
# Output includes step-by-step solution with reasoning |
|
|
``` |
|
|
|
|
|
### 2. Calculus |
|
|
|
|
|
```python |
|
|
# Integration |
|
|
problem = "Calculate: ∫(x³ + 2x² - x + 1)dx" |
|
|
|
|
|
# Differentiation |
|
|
problem = "Find dy/dx if y = ln(x²) + e^(3x)" |
|
|
``` |
|
|
|
|
|
### 3. Probability & Statistics |
|
|
|
|
|
```python |
|
|
problem = """ |
|
|
A bag contains 5 red balls and 3 blue balls. |
|
|
What's the probability of drawing 2 red balls without replacement? |
|
|
""" |
|
|
``` |
|
|
|
|
|
### 4. Number Theory |
|
|
|
|
|
```python |
|
|
problem = "Prove that √2 is irrational" |
|
|
# Model provides formal mathematical proof |
|
|
``` |
|
|
|
|
|
### 5. Geometry |
|
|
|
|
|
```python |
|
|
problem = """ |
|
|
In triangle ABC, if AB = 5, BC = 7, and AC = 8, |
|
|
find the area using Heron's formula. |
|
|
""" |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
|
|
|
## Use Cases |
|
|
|
|
|
### 1. Educational Tutoring |
|
|
|
|
|
```python |
|
|
messages = [ |
|
|
{ |
|
|
"role": "user", |
|
|
"content": "I don't understand how to complete the square. Can you explain and show an example?" |
|
|
} |
|
|
] |
|
|
# Provides step-by-step explanations |
|
|
``` |
|
|
|
|
|
### 2. Research Assistance |
|
|
|
|
|
```python |
|
|
messages = [ |
|
|
{ |
|
|
"role": "user", |
|
|
"content": "Help me verify this proof about convergence of infinite series" |
|
|
} |
|
|
] |
|
|
# Analyzes mathematical proofs |
|
|
``` |
|
|
|
|
|
### 3. Homework Help |
|
|
|
|
|
```python |
|
|
messages = [ |
|
|
{ |
|
|
"role": "user", |
|
|
"content": "Solve these 10 calculus problems and show your work" |
|
|
} |
|
|
] |
|
|
# Solves problems with detailed steps |
|
|
``` |
|
|
|
|
|
### 4. Competition Preparation |
|
|
|
|
|
```python |
|
|
messages = [ |
|
|
{ |
|
|
"role": "user", |
|
|
"content": "Give me 5 AMC-level problems to practice" |
|
|
} |
|
|
] |
|
|
# Generates practice problems |
|
|
``` |
|
|
|
|
|
### 5. Code-Assisted Solving |
|
|
|
|
|
```python |
|
|
messages = [ |
|
|
{ |
|
|
"role": "user", |
|
|
"content": "Use numerical methods to find roots of x^5 - 3x^3 + 2x - 1 = 0" |
|
|
} |
|
|
] |
|
|
# Writes and executes numerical solver |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## Advanced Features |
|
|
|
|
|
### Step-by-Step Reasoning |
|
|
|
|
|
The model shows its work: |
|
|
|
|
|
``` |
|
|
Problem: Solve x² - 5x + 6 = 0 |
|
|
|
|
|
Solution: |
|
|
Step 1: Identify this as a quadratic equation in standard form ax² + bx + c = 0 |
|
|
where a=1, b=-5, c=6 |
|
|
|
|
|
Step 2: Try factoring: We need two numbers that multiply to 6 and add to -5 |
|
|
Those numbers are -2 and -3 |
|
|
|
|
|
Step 3: Factor: (x - 2)(x - 3) = 0 |
|
|
|
|
|
Step 4: Apply zero product property: |
|
|
x - 2 = 0 or x - 3 = 0 |
|
|
|
|
|
Step 5: Solve each equation: |
|
|
x = 2 or x = 3 |
|
|
|
|
|
Answer: x = 2 or x = 3 |
|
|
``` |
|
|
|
|
|
### LaTeX Output |
|
|
|
|
|
```python |
|
|
# Request LaTeX formatted output |
|
|
messages = [ |
|
|
{ |
|
|
"role": "user", |
|
|
"content": "Solve this and format the answer in LaTeX: ∫(x² + 1)/(x³ + 3x + 1)dx" |
|
|
} |
|
|
] |
|
|
|
|
|
# Output includes: |
|
|
# $$\int \frac{x^2 + 1}{x^3 + 3x + 1}dx = ...$$ |
|
|
``` |
|
|
|
|
|
### Symbolic Manipulation |
|
|
|
|
|
Uses SymPy internally for symbolic computation: |
|
|
|
|
|
```python |
|
|
from sympy import symbols, expand, factor, simplify |
|
|
|
|
|
# Model can perform: |
|
|
# - Expansion: (x+1)³ → x³ + 3x² + 3x + 1 |
|
|
# - Factoring: x² - 4 → (x-2)(x+2) |
|
|
# - Simplification: (x²-1)/(x-1) → x+1 |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## Deployment |
|
|
|
|
|
### System Requirements |
|
|
|
|
|
**Minimum (4-bit Quantization):** |
|
|
- GPU: 20GB VRAM (RTX 4090, A5000) |
|
|
- RAM: 32GB |
|
|
- Storage: 30GB |
|
|
|
|
|
**Recommended (BF16):** |
|
|
- GPU: 48GB VRAM (A40, A6000) |
|
|
- RAM: 64GB |
|
|
- Storage: 70GB |
|
|
|
|
|
**Optimal (Production):** |
|
|
- GPU: 80GB VRAM (A100, H100) |
|
|
- RAM: 128GB |
|
|
- Storage: 100GB SSD |
|
|
|
|
|
### Quantization Options |
|
|
|
|
|
```python |
|
|
# 8-bit (30GB VRAM) |
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
"Kirim-ai/Kirim-1-Math", |
|
|
load_in_8bit=True, |
|
|
device_map="auto" |
|
|
) |
|
|
|
|
|
# 4-bit (20GB VRAM) |
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
"Kirim-ai/Kirim-1-Math", |
|
|
load_in_4bit=True, |
|
|
device_map="auto" |
|
|
) |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## Training Details |
|
|
|
|
|
### Training Data |
|
|
|
|
|
- **Mathematics Corpus**: 500B tokens |
|
|
- Mathematical proofs and papers |
|
|
- Olympiad problems (IMO, USAMO, AMC) |
|
|
- Textbooks (algebra through advanced calculus) |
|
|
- Math Stack Exchange |
|
|
- arXiv math papers |
|
|
|
|
|
- **Code**: 200B tokens |
|
|
- Mathematical Python libraries (NumPy, SymPy, SciPy) |
|
|
- Computational notebooks |
|
|
- Algorithm implementations |
|
|
|
|
|
- **General**: 800B tokens |
|
|
- From Kirim-V1-base pre-training |
|
|
|
|
|
**Total**: 1.5 Trillion tokens |
|
|
|
|
|
### Training Process |
|
|
|
|
|
**Stage 1: Continued Pre-training** (from Kirim-V1-base) |
|
|
- Started from 13B base checkpoint |
|
|
- Expanded to 30B parameters |
|
|
- Trained on math-heavy corpus |
|
|
- Duration: 45 days on 512x H100 GPUs |
|
|
|
|
|
**Stage 2: Mathematical Instruction Tuning** |
|
|
- 200K high-quality math problems with solutions |
|
|
- Step-by-step reasoning examples |
|
|
- Duration: 5 days |
|
|
|
|
|
**Stage 3: Tool Calling Training** |
|
|
- 50K tool-calling examples |
|
|
- Function definition and execution |
|
|
- Error handling and recovery |
|
|
- Duration: 3 days |
|
|
|
|
|
**Stage 4: Reinforcement Learning** |
|
|
- Reward model based on solution correctness |
|
|
- Self-verification training |
|
|
- Duration: 7 days |
|
|
|
|
|
--- |
|
|
|
|
|
## Limitations |
|
|
|
|
|
- **Computation Limits**: Cannot perform extremely large calculations without tools |
|
|
- **Proof Verification**: May occasionally make logical errors in complex proofs |
|
|
- **Theorem Knowledge**: Limited to theorems in training data (pre-Oct 2024) |
|
|
- **Visual Math**: Cannot process images of equations or diagrams |
|
|
- **Real-time Data**: Cannot access current mathematical research or live data |
|
|
|
|
|
--- |
|
|
|
|
|
## Model Series Comparison |
|
|
|
|
|
| Model | Parameters | Purpose | Tool Calling | Best For | |
|
|
|-------|------------|---------|--------------|----------| |
|
|
| Kirim-V1-base | 13B | Foundation | ❌ | Research, fine-tuning | |
|
|
| Kirim-V1-7B-Chat | 7B | Conversation | ❌ | Production chatbots | |
|
|
| **Kirim-1-Math** | 16B | Mathematics | ✅ | **Math problems, STEM education** | |
|
|
| Kirim-V2 (coming) | 30B+ | Multimodal | ✅ | Visual reasoning | |
|
|
|
|
|
--- |
|
|
|
|
|
## Citation |
|
|
|
|
|
```bibtex |
|
|
@misc{kirim2025math, |
|
|
title={Kirim-1-Math: Advanced Mathematical Reasoning with Tool Calling}, |
|
|
author={Kirim AI Research Team}, |
|
|
year={2025}, |
|
|
publisher={Kirim AI}, |
|
|
url={https://huggingface.co/Kirim-ai/Kirim-1-Math} |
|
|
} |
|
|
``` |
|
|
|
|
|
--- |
|
|
|
|
|
## Contributing |
|
|
|
|
|
We welcome contributions! |
|
|
|
|
|
--- |
|
|
|
|
|
## License |
|
|
|
|
|
Apache License 2.0 - See [LICENSE](LICENSE) for details. |