Model reference · open weights
surya-ocr-2 is an open-weight language model from datalab-to, listed in the AxForge catalogue. AxForge can bring it up on EU-owned hardware for you on request — with the licence handled where one is required.
About
Surya Surya is a 650M param OCR model with these features: - Accuracy - scores 83.3% on olmOCR-bench (top under 3B params) - Speed - throughput of 5 pages/s on an RTX 5090 - Multilingual - scores 87.2% on an internal benchmark set of 91 languages (more here) - Layout analysis (table, image, header, etc.) with reading order - Table recognition (rows + columns) It works on a range of documents (see usage and benchmarks). Try Datalab's Managed Platform 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. Model Information Surya is named for the Hindu sun god, who has universal vision. Examples Commercial usage 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. Installation Install with: Usage Surya 2 runs layout, OCR, and table recognition through a single VLM served by vllm (GPU) or llama.cpp (CPU / Apple Silicon). The inference manager will spawn one for you on first use; you can also point it at an existing server via SURYAINFERENCEURL=http://host:port/v1. - Inspect the settings in surya/settings.py. You can override any setting via env var (e.g. SURYAINFERENCEBACKEND=vllm). - Text detection and OCR errors are separate models. Interactive App I've included a streamlit app that lets you interactively try Surya on images or PDF files. Run it with: OCR (text recognition) This command will write out a json file with the detected text and bboxes: - DATAPATH can be an image, pdf, or folder of images/pdfs - --images will save images of the pages and detected blocks (optional) - --outputdir specifies the directory to save results to instead of the default - --pagerange specifies the page range to process in the PDF, specified as a single number, a comma separated list, a range, or comma separated ranges - example: 0,5-10,20. The results.json file contains a dict keyed by input filename (no extension). Each value is a l
Summarised from the published model card. Read the full card on the HuggingFace links below.
Specifications
| Maker | datalab-to |
|---|---|
| Type | Language models |
| Parameters (lead) | 686M |
| Variants | 1 |
| Runs with | transformers |
| Released | 2026-05-14 |
| Popularity | 1.3M downloads / month |
| Likes | 100 |
| Licence | Open weights |
How it works
Variants
Open weights ship in several sizes and precisions. One page, all the variants — pick the one that fits your GPU. VRAM figures are estimates from model size.
| Variant | Params | Precision | VRAM | Fits 16 GB | Weights |
|---|---|---|---|---|---|
| surya-ocr-2 | 686M | BF16 | ~1.6 GB | ✓ | Weights ↗ |
Using it via the API
Once AxForge deploys surya-ocr-2 for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (surya-ocr-2 below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"surya-ocr-2","messages":[{"role":"user","content":"Hello"}]}'
Licence
Open weights under openrail — commercial use is permitted. Deploy it on AxForge EU hardware on request. Read the licence ↗