InfiR: Reasoning-Enhanced Low-Resource Training Pipeline
Collection
InfiR : Crafting Effective Small Language Models and Multimodal Small
Language Models in Reasoning
โข
9 items
โข
Updated
InfR aims to advance AI systems by improving reasoning, reducing adoption barriers, and addressing privacy concerns through smaller model sizes.
First, install the required dependencies:
pip install torch transformers
For optimal performance, we recommend using PyTorch 2.0+ and CUDA 11.8+.
Here's a simple example to get started with InfiR-1B-Base:
from transformers import AutoTokenizer, AutoModelForCausalLM
# Load model and tokenizer
tokenizer = AutoTokenizer.from_pretrained("InfiX-ai/InfiR-1B-Base")
model = AutoModelForCausalLM.from_pretrained("InfiX-ai/InfiR-1B-Base")
# Example prompt
prompt = r"A new program had 60 downloads in the first month. The number of downloads in the second month was three times as many as the downloads in the first month, but then reduced by 30% in the third month. How many downloads did the program have total over the three months?"
# Tokenize and generate
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=2048)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# Mathematical problem solving
math_prompt = """Solve this step by step:
Problem: If a rectangle has a length of 8 units and a width of 6 units, what is its area and perimeter?
Solution:"""
inputs = tokenizer(math_prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.1,
do_sample=True
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# Code generation example
code_prompt = """Write a Python function to calculate the factorial of a number:
def factorial(n):
"""
inputs = tokenizer(code_prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=256,
temperature=0.2,
do_sample=True
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
# Chain-of-thought reasoning
cot_prompt = """Let's approach this step by step:
Question: A train travels 120 km in 2 hours. What is its speed in km/h?
Let me think through this:"""
inputs = tokenizer(cot_prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=300,
temperature=0.3,
do_sample=True
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Stage | Tokens | Composition |
---|---|---|
Pre-training | 900 B | 52 % code, 48 % high-quality web (math, science, encyclopedic) |
Annealing | 40 B | extra math & code + synthetic samples |
SFT | ~4 M | Infinity-Instruct, Orca-AgentInstruct-1M, NuminaMath, ScaleQuest (filtered) |
Data cleaning: heuristic filters, MinHash de-duplication, 10-gram benchmark decontamination, reward-model rejection sampling.
Hyper-parameter | Value |
---|---|
Precision | bf16 mixed |
Optimizer | AdamW |
LR (pre-train) | 1.4 e-3, cosine โ 0 |
LR (SFT) | 2 e-5, cosine w/ 10 % warm-up |
Batch size | 2048 (pre-train), 128 (SFT) |
Sequence len | 4096 |
Epochs | 1 (pre-train), 1 (anneal), 4 (SFT) |
GPUs | 64 ร H800, 5760 GPU-hours total |
Benchmark | InfiR-1B-Base | Llama-3.2-1B | Qwen-2.5-1.5B |
---|---|---|---|
MMLU | 47.24 | 32.74 | 63.03 |
GSM8K | 63.46 | 8.11 | 66.57 |
MATH | 31.82 | 3.42 | 31.24 |
HumanEval | 37.80 | 17.68 | 35.37 |
MBPP | 53.40 | 49.0 | 58.37 |
MBPP(3-shot) | 37.6 | 24.8 | 41.4 |
BibTeX:
@misc{xie2025infir,
title={InfiR: Crafting Effective Small Language Models and Multimodal Small Language Models in Reasoning},
author={Xie, Congkai and Cai, Shuo and Wang, Wenjun and others},
year={2025},
eprint={2502.11573},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
APA:
Xie, C., Cai, S., Wang, W., et al. (2025). InfiR: Crafting Effective Small Language Models and Multimodal Small Language Models in Reasoning. arXiv:2502.11573.