Model reference · open weights
surya-ocr-2.5 is an open-weight language model from datalab-to. surya-ocr-2.5 (BF16) weighs 1.4 GB; the smallest configuration that runs it is RTX 3060 12 GB.
For self-hosting, compare this build's requirements below with the GPU you plan to rent.
Summary of the datalab-to/surya-ocr-2.5 model card, 2026-10-31
What it is
| Released by | datalab-to |
|---|---|
| Released | 2026-10-25 |
| Parameters | 689M |
| VRAM | 1.4 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB | 59 | 18 | all 256K | 11.6 GB |
| RTX 4060 Ti 16 GB | 87 | 27 | all 256K | 15.4 GB |
| RTX 3090 24 GB | 144 | 45 | all 256K | 23.4 GB |
| RTX 4090 24 GB | 143 | 45 | all 256K | 23.4 GB |
| RTX 5090 32 GB | 198 | 62 | all 256K | 31.0 GB |
| L40S 48 GB | 291 | 92 | all 256K | 44.0 GB |
| A100 80 GB | 536 | 169 | all 256K | 78.2 GB |
| H100 80 GB | 512 | 162 | all 256K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 624 | 197 | all 256K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 721 | 228 | all 256K | 107 GB |
| H200 141 GB | 940 | 297 | all 256K | 138 GB |
| B200 180 GB | 1000+ | 383 | all 256K | 176 GB |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 3.4 GB | 3.7 GB |
| 5 | 3.9 GB | 5.4 GB |
| 8 | 4.4 GB | 6.8 GB |
| 16 | 5.5 GB | 10.3 GB |
| 32 | 7.7 GB | 17.4 GB |
| 64 | 12.2 GB | 31.5 GB |
One card, with vLLM's small-card settings.
From the model card
Surya is a 689M param OCR model with these features:
We also ship smaller models for line-level text detection and ocr error detection. It works on a range of documents (see usage and benchmarks).
Our managed platform runs both Surya, and variants of our highest accuracy model, Chandra.
Get started with $5 in free credits — sign up (takes under 30 seconds) or try our free public playground.
| Detection | OCR |
|---|---|
| Layout |
|---|
Surya is named for the Hindu sun god, who has universal vision.
Each row links to four annotated views of the same page: text-line detection, OCR, layout and reading order (Surya 2.5).
| Name | Detection | OCR | Layout | Order |
|---|---|---|---|---|
| Newspaper | Image | Image | Image | Image |
| Reference book | Image | Image | Image | Image |
| Math paper | Image | Image | Image | Image |
| Government form | Image | Image | Image | Image |
| Handwritten letter | Image | Image | Image | Image |
| Corporate doc | Image | Image | Image | Image |
| Japanese tax form | Image | Image | Image | Image |
The example pages are public pages from OmniParseBench. The newspaper (The Alpha, 1881), reference book and math paper are from olmOCR-bench (Ai2, ODC-BY 1.0). The government form is a US federal form (public domain). The handwritten letter is from the Library of Congress, Manuscript Division, Carrie Chapman Catt Papers (public domain). The corporate page is from ParseBench (Apache 2.0). The Japanese form is made from a form of the National Tax Agency, Japan, under the Public Data License 1.0: 「国税庁の様式」(国税庁)(https://www.nta.go.jp/)を加工して作成. The OCR column renders Surya 2.5's HTML output; layout and reading order are drawn from its blocks, and the detection image is from the text-line detector.
The Surya code is licensed under Apache 2.0. The model weights use a modified AI Pubs Open Rail-M license (free for research, personal use, and startups under $5M funding/revenue). For broader commercial licensing of the model weights, visit our pricing page here.
Install with:
pip install surya-ocr
Surya auto-spawns the server on first use, and you need vllm (NVIDIA GPU) or llama.cpp (CPU / Apple Silicon):
llama-server binary from llama.cpp:
brew install llama.cpp # macOS
# or grab a release from https://github.com/ggml-org/llama.cpp/releases
If you have v1 code, you can migrate to this:
# v2
from surya.inference import SuryaInferenceManager
from surya.recognition import RecognitionPredictor
manager = SuryaInferenceManager() # auto-spawns vllm or llama-server
rec = RecognitionPredictor(manager)
predictions = rec([image])
What's different:
SuryaInferenceManager replaces FoundationPredictor. Same manager instance is shared across `LaQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.