Instructions to use UnipatAI/UniMath-35B-A3B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use UnipatAI/UniMath-35B-A3B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="UnipatAI/UniMath-35B-A3B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("UnipatAI/UniMath-35B-A3B") model = AutoModelForMultimodalLM.from_pretrained("UnipatAI/UniMath-35B-A3B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use UnipatAI/UniMath-35B-A3B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "UnipatAI/UniMath-35B-A3B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "UnipatAI/UniMath-35B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/UnipatAI/UniMath-35B-A3B
- SGLang
How to use UnipatAI/UniMath-35B-A3B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "UnipatAI/UniMath-35B-A3B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "UnipatAI/UniMath-35B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "UnipatAI/UniMath-35B-A3B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "UnipatAI/UniMath-35B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use UnipatAI/UniMath-35B-A3B with Docker Model Runner:
docker model run hf.co/UnipatAI/UniMath-35B-A3B
Introduction
We present UniMath-35B-A3B, an open-source olympiad-level mathematical reasoning model with 35 billion total parameters and 3 billion activated per token. Developed by UniPat AI, UniMath-35B-A3B is obtained by further post-training Qwen3.6-35B-A3B on fine-grained proof-synthesis data covering the full arc of a proof: initial attempt, self-critique, obstruction diagnosis, targeted repair, and final synthesis. This activates a reusable self-evolving reasoning capability rather than a fixed answer format, and at test time UniMath-35B-A3B spends additional compute auditing, repairing, and reconciling its own proof attempts instead of resampling blindly. With this test-time self-evolution, UniMath-35B-A3B reaches human gold-medal-contestant level on IMO 2025 (35/42) and USAMO 2026 (36/42), and scores 86.0% on IMO-ProofBench.
More details can be found in our Blog.
Key Features
- Fine-Grained Proof-Evolution Data: Training trajectories supervise how a proof changes, not only what the final proof says — an initial route with visible proof obligations, a critical self-assessment naming the first real obstruction, a targeted repair or reroute that preserves earned mathematics, and a final synthesis that fuses drafts, critiques, and surviving routes into one rigorous argument.
- Test-Time Self-Evolution: At inference time the model reuses this learned proof-editing loop instead of blind resampling — it samples and self-ranks a pool of candidate proofs, refines the strongest non-perfect candidates by repairing their first real obstruction, and merges surviving proofs so a clean lemma from one route can rescue a stronger route from another.
- Adaptive Inference Compute: The self-evolution loop short-circuits straight to synthesis once enough self-verified proofs accumulate, so extra inference budget is spent only where a problem is genuinely hard.
Download
You can download the model then run the inference scripts in https://github.com/UniPat-AI/UniMath.
@misc{unipat2026unimath,
title = {UniMath: From Proof-Synthesis Data to Test-Time Self-Evolution},
author = {UniPat AI},
year = {2026},
url = {https://unipat.ai/blog/UniMath},
}
- Downloads last month
- 324