Elastic
Jina AI
Models
API
keyboard_arrow_down
Reader
Convert any URL to Markdown for better grounding LLMs.
Embeddings
Multimodal multilingual embeddings.
Reranker
Reranker for maximizing search relevance.
MCP
terminal
CLI
article
llms.txt
smart_toy
Agents
data_object
Schema
menu_book
Docs
Log in
login
Data Ingestion
copyright CC BY-NC 4.0
open_in_new Release Post

jina-ocr-v1

Page-to-Markdown document parser in one pass at 570M active parameters
License
copyright CC-BY-NC-4.0
Release Date
calendar_month
2026-09-14
Input
image
Image
picture_as_pdf
PDF
arrow_forward
Output
abc
Text
Model Details
Parameters: 3.4B
Input Token Length: 32K
Input Image Size: 1024×1024
Base Model help_outline
open_in_new
DeepSeek-OCR
Trained Languages help_outline
25 languages
Supported Languages help_outline
108 languages
Related Models
link
ReaderLM-v2
link
jina-vlm
Available via
Jina API
Hugging Face
I/O graph

Image

jina-ocr-v1

PDF

Markdown

Pareto fronthelp_outline
olmOCR-Bench
OmniDocBench v1.6
chevron_leftchevron_right
1B3.0B10B406080Qwen2-VL-7BQwen2.5-VL-7BDeepSeek-OCRdots.mocrolmOCR-2LightOnOCR-2chandra-ocr-2Nanonets-OCR2-3BInfinity-Parser-7BChandra-OCR-0.1.0GOT-OCRQwen2-VL-7BQwen2.5-VL-7BPaddleOCR-VLMinerU-2.5jina-ocr-v1Parameters (log)score
This model
On the front
Jina AI
Other
olmOCR-Bench
83.40
Parameters
3.4B
Rank by score
3 / 16
Pareto front
Behind it
Choose models to compare
Publications (1)
arXiv
September 02, 2026
jina-ocr-v1: Efficient Document Parsing with Speculative Decoding and Dense Verifiable Rewards

Overview

jina-ocr-v1 turns a page into Markdown in one pass: text, formulas, tables and reading order together. What makes it different is where the engineering went. Parsing quality is crowded, so the model attacks the part that actually costs money in production, which is decoding. OCR output is locally predictable, so the model drafts three tokens ahead and lets the verifier check them greedily. Because verification is greedy, the result is lossless, byte-identical to plain autoregressive decoding, and the model commits up to 2.7 tokens per verifier pass instead of one.

The rest follows from the same goal. It is a mixture of experts with 3.4B total parameters but only about 570M active per token, so the running cost is that of a small model while the capacity is not. It scores 91.14 on OmniDocBench v1.6 and 83.4 on olmOCR-Bench at its default dynamic-resolution setting.

Language coverage is inherited from the base model. DeepSeek-OCR was pretrained on 30M PDF pages spanning about 100 languages, and jina-ocr-v1 keeps that encoder and decoder, so the same breadth applies to document parsing.

ReaderLM-v2 converts already-extracted HTML into Markdown. jina-ocr-v1 starts one step earlier and reads the rendered page itself.

Methods

The architecture inherits the DeepEncoder and the mixture-of-experts decoder of DeepSeek-OCR. DeepEncoder is about 380M parameters and chains an 80M SAM stage into a 16x convolutional compressor and then a 300M CLIP-L stage, so a 1024x1024 page costs only 256 visual tokens. The Gundam dynamic-resolution mode adds 100 tokens per extra tile, up to 1,156 tokens per page. The decoder is DeepSeek-3B-MoE with 12 layers, hidden size 1280, 64 routed experts plus 2 shared under top-6 routing, a 129,280-token vocabulary and a 32,768-position limit.

Decoding speed comes from FastMTP, a single dense draft block applied recursively for K=3 prediction steps rather than K separate heads. Verification is greedy, which makes the speculative path lossless. The emitted text is identical to what plain autoregressive decoding would produce.

Post-training runs instruction alignment, robustness fine-tuning on difficult and degraded documents, and GRPO under dense verifiable rewards, which are deterministic formula, table and structural checks that award partial credit instead of a single pass/fail signal. Training data mixes cleaned public OCR corpora such as olmOCR-mix, FinePDFs, DoclingMatrix, SynthChartNet and UniMER with historical and degraded material from Europeana newspapers, Library of Congress transcripts and NARA pension files, plus targeted synthetic pages carrying olmOCR-Bench-style unit tests so the reward has coverage where it matters.

Performance

On olmOCR-Bench the model scores 83.4 overall. Per subset it reaches Base 99.9, tied best in the comparison, then LongTiny 93.2, Tables 88.8, Hdr/Ftr 88.7, ArXiv 86.1, Multi-column 85.5, OldScans-Math 82.3 and OldScans 42.6. On OmniDocBench v1.6 it reaches 91.14 overall, with text edit distance 0.046, formula CDM 93.28, table TEDS 84.68, TEDS-S 89.01 and reading-order edit distance 0.142.

The efficiency result is the point of the model. Measured on one A100 SXM4 40GB at concurrency 32 over 1,403 pages, it sustains 2.57 pages per second, the best in the comparison and roughly twice the 1.22 of olmOCR-2, while spending 1085 output tokens per page and 2792 output tokens per second. Models that score higher are far slower. chandra-ocr-2 leads on quality at 85.8 but runs at 0.38 pages per second, and dots.mocr scores 83.9 at 0.55. The token figures are competitive but not the best in the pool. PaddleOCR-VL-1.6 is leaner per page at 1048, and Surya OCR 2 emits more tokens per second at 3760.

Speculative decoding is what makes a cheap GPU viable. On an NVIDIA L4 at batch size 1, FastMTP lifts eager-mode decoding from 42.7 to 83.1 output tokens per second at K=3, a 1.95x speedup at a 57.6% acceptance rate. With CUDA graphs the baseline is already 158.3 tokens per second, and K=1 is the best operating point at 185.6 for a 1.17x gain. These L4 numbers are measured at batch size 1 on different hardware and are not comparable with the A100 throughput figures above.

Best Practice

Use the default dynamic-resolution setting for general documents. It is the configuration behind the reported scores. Output is Markdown, so tables and formulas arrive already structured and need no separate post-processing step. The model targets low-budget GPUs. An L4 or similar is enough for interactive single-document parsing, and speculative decoding gives the largest gain in eager mode, so enable K=3 there and K=1 when running with CUDA graphs. Because verification is greedy, turning speculation on or off changes throughput but never the text.

Best suited to bulk document ingestion, PDF-to-Markdown pipelines, scanned and historical archives, and any workload where pages per second per dollar matters more than the last point of benchmark score. Headers and footers are transcribed rather than dropped, which is the desired behavior for archival fidelity but scores low on text-absence tests. OldScans remains the weakest subset at 42.6, so heavily degraded scans still warrant a human check.

If your input is HTML that has already been fetched, ReaderLM-v2 is the cheaper tool for the same Markdown target. For visual question answering over a page rather than transcription, use jina-vlm. For retrieval over the parsed output, pair with jina-embeddings-v4.

Blogs that mention this model
September 14, 2026 • 9 minutes read
jina-ocr-v1: Faster Document Parsing on Low-Budget GPUs
jina-ocr-v1 is a vision language model with 3.4B parameters and 570M active parameters, scoring 91.1 on OmniDocBench v1.6 and 83.4 on olmOCR-Bench.
Jina AI
jina-ocr-v1
Current language / theme
Search Foundation
Reader
Embeddings
Reranker
Get Jina API key
Rate Limit
About us
News
Download Jina logo
open_in_new
Download Elastic logo
open_in_new
API Status
Elastic © 2026.SecurityTerms & ConditionsPrivacyManage CookiesDo Not Sell or Share My Personal Information
This website and all associated content, software, products, and services are intended for professional use only. No consumer use is intended or directed.