Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

MiniCPM5-2B-Math

by Caldalis Caldalis/MiniCPM5-2B-Math

MiniCPM5-2B-Math is an open-weight model for text generation from Caldalis, released under Apache License 2.0. It has 2.5B parameters and a 131,072-token context. At 16-bit it needs about 6 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index.

English | MiniCPM5-2B-Math is a math and proof model built on MiniCPM5: a dense 2.5B model based on MiniCPM5-2B and post-trained for long-form mathematical reasoning and proof writing.

Parameters2.5B
Context131,072
Weights5.0 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads—

Runs On

What it takes to serve MiniCPM5-2B-Math (2.5B parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 5.0 GB 6.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 2.5 GB 3.0 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 1.3 GB 1.5 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 19, 2026.

MiniCPM5-2B-Math on every accelerator the SAVRN Index prices, at every precision

Model Card

By Caldalis, published under apache-2.0, revision 95d899c0cfdc.

English | MiniCPM5-2B-Math is a math and proof model built on MiniCPM5: a dense 2.5B model based on MiniCPM5-2B and post-trained for long-form mathematical reasoning and proof writing. It runs on a single consumer GPU or a laptop and keeps the native 128K context. - Strong for its size. As a plain single call with up to 128K tokens of thinking, 92.3 on AIME 2025, 89.8 on AIME 2026 and 81.8 on HMMT February 2026 (avg@16), and 100 / 93.3 / 90.9 with a 16-sample vote. The official general-purpose MiniCPM5-2B scores 87.1 / 89.8 / 68.4 under the same protocol. - Writes checkable proofs. On IMO-ProofBench Basic, an average single call with up to 128K tokens writes a complete proof for 21 of the…

Read Caldalis's full model card

MiniCPM-Math Harness | GGUF | MiniCPM5-2B | MiniCPM GitHub

English | 中文

Highlights

MiniCPM5-2B-Math is a math and proof model built on MiniCPM5: a dense 2.5B model based on MiniCPM5-2B and post-trained for long-form mathematical reasoning and proof writing. It runs on a single consumer GPU or a laptop and keeps the native 128K context.

  • Strong for its size. As a plain single call with up to 128K tokens of thinking, 92.3 on AIME 2025, 89.8 on AIME 2026 and 81.8 on HMMT February 2026 (avg@16), and 100 / 93.3 / 90.9 with a 16-sample vote. The official general-purpose MiniCPM5-2B scores 87.1 / 89.8 / 68.4 under the same protocol.
  • Writes checkable proofs. On IMO-ProofBench Basic, an average single call with up to 128K tokens writes a complete proof for 21 of the 30 problems, and the proof swarm for 23, as graded blind by an AI grader.
  • Comes with a proof swarm. The open-source MiniCPM-Math Harness runs parallel provers, adversarial verifiers, brute-force checks and repair loops around this model on any OpenAI-compatible server. It is designed around the failure modes we measured.
  • Small enough to own. BF16 weights are 5.0 GB; GGUF Q4_K_M is 1.6 GB. Standard LlamaForCausalLM architecture, so no custom code is needed.

Evaluation

AIME and HMMT

Benchmark Metric MiniCPM5-2B MiniCPM5-2B-Math
AIME 2025 avg@16 87.1 92.3
vote (maj@16) 93.3 100.0
AIME 2026 avg@16 89.8 89.8
vote (maj@16) 93.3 93.3
HMMT Feb 2026 avg@16 68.4 81.8
vote (maj@16) 75.8 90.9

avg@16 is the mean accuracy of single samples, i.e. of one plain API call; vote is the majority answer of the 16 samples (reproduce with the harness: minicpm-math solve -n 16 --max-tokens 131072 --no-early-stop --no-force-finish).

Proofs: IMO-ProofBench Basic

All 30 problems. Single call: 16 independent calls per problem with up to 128K tokens each and no forced finish (the row is the average call). Proof swarm: the harness' standard profile with 128K-token provers and refiners (8 provers, 3 verifiers, up to 2 repair rounds). All 505 written proofs were graded blind by one AI grader (Claude Opus 5.5) against the official reference solutions and grading guidelines, not by people; the 5 single calls that reached the 128K limit without a proof count as 0. Every proof and grade is published.

Complete proofs Mean score (0–7)
single call (avg@16) 21.0 / 30 5.48
proof swarm 23 / 30 5.83

Use it with the proof swarm

pip install "minicpm-math[math] @ git+https://github.com/Caldalis/MiniCPM-Math-harness"
vllm serve Caldalis/MiniCPM5-2B-Math --max-model-len 131072 --port 8000
minicpm-math prove "Prove that for every integer n, n^5 - n is divisible by 30." --base-url http://127.0.0.1:8000/v1

The proof-swarm numbers above used --max-tokens 131072; the default profile gives each call 32K tokens, which is faster but was not benchmarked.

The swarm returns the best proof together with how it was graded (accepted only if every verifier gives at least 6/7), and keeps a full trace of every call. See the harness README for profiles, answer-mode voting, and benchmarking.

Quickstart

[!Tip] Recommended sampling: temperature=0.9, top_p=0.95, min_p=0.0, with thinking enabled. Proofs for hard problems can need 64K–120K output tokens. Give the server enough context (--max-model-len 131072) and the request a large max_tokens.

vLLM

pip install "vllm>=0.21"
vllm serve Caldalis/MiniCPM5-2B-Math --max-model-len 131072 --port 8000
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Caldalis/MiniCPM5-2B-Math",
    "messages": [{"role": "user", "content": "Prove that the square root of 2 is irrational."}],
    "max_tokens": 16384, "temperature": 0.9, "top_p": 0.95,
    "chat_template_kwargs": {"enable_thinking": true}
  }'

Measured with vLLM 0.24.0 on RTX 4090s: about 155 tok/s single-stream decode on one GPU with short inputs (keep CUDA graphs on; do not use --enforce-eager, which measured about 48 tok/s). On long proof runs across five 4090s with up to 10 concurrent requests, the median request decoded at about 118 tok/s, about 900 tok/s in total.

SGLang

pip install "sglang[srt]>=0.5.16"
python -m sglang.launch_server --model-path Caldalis/MiniCPM5-2B-Math --context-length 131072 --port 30000

llama.cpp

llama-server -hf Caldalis/MiniCPM5-2B-Math-GGUF:Q8_0 --jinja -ngl 99 -c 98304 -np 4 -kvu --port 8000

Port 8000 is where the harness looks by default (llama-server alone listens on 8080); with this server, run the harness with --profile quick. Use llama.cpp b9833 or newer: b9354 added the MiniCPM5 tokenizer, so older builds cannot load the GGUF, and b9833 added the chat parser that separates the reasoning from the answer. On an Apple M5 laptop (16 GB) with Q8_0: about 46 tok/s for one stream, about 125 tok/s total with 4 slots. llama.cpp's default min_p=0.05 can encourage repetition, so send min_p=0.0 (the harness does this for you).

Transformers

pip install -U "transformers>=5.6" accelerate torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "Caldalis/MiniCPM5-2B-Math"
tokenizer = AutoTokenizer.from_pretrained(model_id)
# On Apple Silicon (MPS), also pass attn_implementation="eager": PyTorch's MPS SDPA kernel (checked with
# torch 2.11) mishandles this model's grouped-query attention and degrades the output. CUDA and CPU are fine.
model = AutoModelForCausalLM.from_pretrained(model_id, dtype="auto", device_map="auto")

messages = [{"role": "user", "content": "Find all positive integers n such that n^2 - 19n + 99 is a perfect square."}]
inputs = tokenizer.apply_chat_template(
    messages, tokenize=True, add_generation_prompt=True, enable_thinking=True,
    return_dict=True, return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=8192, do_sample=True, temperature=0.9, top_p=0.95)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))

Prompting tips

  • For problems with a final answer, end the prompt with "Please reason step by step, and put your final answer within \boxed{}."
  • For proofs, ask explicitly for a complete and rigorous proof, and to prove both directions when the problem asks you to "find all" or "determine".
  • With thinking enabled, the reasoning ends with </think>, followed by the final answer. Servers with a reasoning parser return the two parts separately; otherwise split on </think>.

License

The model weights are released under the Apache-2.0 license (see LICENSE), the same license as the base model, MiniCPM5-2B.

Configuration

Architecture
LlamaForCausalLM
Context length (tokens)
131,072
Layers
42
Hidden size
2,048
Feed-forward size
6,144
Attention heads
16
Key/value heads
2
Head dimension
128
Vocabulary size
130,560
RoPE base
5e+06
Stored precision
bfloat16
Model type
llama

Identity and Version

Repository
Caldalis/MiniCPM5-2B-Math
Publisher
Caldalis
Task
Text generation
Modality
Text
Library
transformers
Parameters
2.5B parameters
Languages
en, zh
Revision
95d899c0cfdc69275c30bf75e1569fba13754cfc
First published
2026-10-09
Last updated
2026-10-10

Files and Weights

11 files, 5.0 GB in total. The weights are 1 file totalling 5.0 GB in safetensors.

Weights1 file · 5.0 GB
Configuration3 files · 1.4 KB
Tokenizer2 files · 10.0 MB
Documentation3 files · 26.7 KB
Other1 file · 9.1 KB
Repository1 file · 1.5 KB
Every file
FileTypeSizeSHA-256
model.safetensorsWeights5.0 GB b412895e9b64
config.jsonConfiguration625 B —
generation_config.jsonConfiguration202 B —
special_tokens_map.jsonConfiguration551 B —
LICENSEDocumentation11.4 KB —
README-cn.mdDocumentation7.3 KB —
README.mdDocumentation8.0 KB —
chat_template.jinjaOther9.1 KB —
.gitattributesRepository1.5 KB —
tokenizer.jsonTokenizer9.9 MB —
tokenizer_config.jsonTokenizer116.9 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
5.0 GB
Download from Caldalis

Released by Caldalis through its official repository on Hugging Face. Read the license.

Built From

Memory Requirements

PrecisionWeights in memory
As published5.0 GB
16-bit5.0 GB
8-bit2.5 GB
4-bit1.3 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Built on This Model

Questions About MiniCPM5-2B-Math

How much GPU memory does MiniCPM5-2B-Math need?

About 6 GB at 16-bit and 1.5 GB at 4-bit: the weights (2.5B parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run MiniCPM5-2B-Math on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use MiniCPM5-2B-Math commercially?

Yes. MiniCPM5-2B-Math is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is MiniCPM5-2B-Math's context length?

131,072 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Text generation

MiniCPM5-2B

OpenBMB

English | We are releasing MiniCPM5-2B, the second model in the MiniCPM5 series, following MiniCPM5-1B. It is a dense 2B Transformer that scales up the same training recipe, built for on-device, local deployment, and resource-constrained scenarios, reaching 2B-class open-source SOTA. 2B-class open-source SOTA: compared with strong open-source models of similar size, MiniCPM5-2B achieves SOTA performance within this comparison set. It remains competitive with 4B-class models overall, while showing its advantages over models of comparable size in coding, mathematics, long-context understanding, tool use, and agentic tasks. font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto…

Open weights apache-2.0 2.5B parameters 131,072 tokens transformers

Model · Text generation

d

Khtsly

In-training periodic checkpoint (step 16300). Architecture: Kimi K3 mini port (KimiLinearForCausalLM). Not a finished model -- intermediate weights uploaded during training for safekeeping/diffing.

Open weights 2.7B parameters 1,048,576 tokens transformers

An English LFM2.5 2.6B checkpoint associated with the Trendyol Cybersecurity Instruction Tuning Dataset. This repository contains both Transformers-format model files and local GGUF exports. This is a research release. The repository does not currently publish benchmark, baseline-comparison, or safety-evaluation results. Transformers assets include model.safetensors, configuration files, tokenizer files, and a chat template. Keeping both formats in one repository is convenient, but users should explicitly choose the path that matches their runtime. The checked configuration includes a bitsandbytes quantization block. Pin and test the exact Transformers, Accelerate, bitsandbytes, and device…

Open weights apache-2.0 2.7B parameters 131,072 tokens transformers

Model · Text generation

LFM2.5-24B-A2B-JANGH2

Osaurus-AI

A JANG bundle of LiquidAI/LFM2.5-24B-A2B: Liquid AI's 24B mixture-of-experts reasoning model with 2B active parameters (40 layers: 30 short-convolution and 10 full-attention, 64 routed experts with 4 active, two dense layers), built for on-device agents. It always thinks before answering and calls tools in Liquid's Pythonic format. 44.7 GiB of bf16 weights in 7.3 GiB. Every quantized matrix with an input Hessian was rounded with GPTQ. The Hessians come from the model's own outputs: the bf16 model wrote its thinking and answers for math, finance, code in eleven languages, terminal and coding-agent sessions (with real tool results), multi-step tool calls, networking, cybersecurity, science…

Open weights apache-2.0 2.7B parameters 131,072 tokens mlx

A 2B-parameter Qwen3.5 fine-tune, part of the Opus-Distil line in the reaperdoesntknow open-weight portfolio. Text-generation / reasoning model, trained with Unsloth + Hugging Face TRL.

Open weights apache-2.0 2.3B parameters 262,144 tokens transformers

Model · Text generation

Qwen3.5-2B-CyberSec

Convergent Intelligence

An English Qwen3.5 2B checkpoint associated with the Trendyol Cybersecurity Instruction Tuning Dataset and exported in Transformers / Safetensors format. This release is intended for research and local experimentation. The repository does not currently publish benchmark or safety-evaluation results, so the model should not be treated as a validated cybersecurity authority. The configuration identifies a Qwen3.5 conditional-generation architecture with text and vision components. Use a recent Transformers release that supports this architecture. Dependency and device behavior can vary across Transformers versions. Pin a tested environment for reproducible use. - Research on small-model…

Open weights apache-2.0 2.3B parameters 262,144 tokens transformers