Elastic
Jina AI
Modelli
API
keyboard_arrow_down
Reader
Converti qualsiasi URL in Markdown per un migliore ancoraggio dei LLM.
Embeddings
Embeddings multimodali e multilingue.
Reranker
Reranker per massimizzare la pertinenza dei risultati di ricerca.
MCP
terminal
CLI
article
llms.txt
smart_toy
Agenti
data_object
Schema
menu_book
Documenti
Login
login
Modello e addestramento
Risultati
Guida introduttiva
Conclusione
star
In primo piano
Comunicato stampa
settembre 14, 2026

jina-ocr-v1: Analisi documentale più rapida su GPU a basso costo

jina-ocr-v1 è un modello multimodale (vision language model) con 3,4 miliardi di parametri e 570 milioni di parametri attivi, che ha ottenuto un punteggio di 91,1 su OmniDocBench v1.6 e di 83,4 su olmOCR-Bench.
jina-ocr-v1
Jina AI
Jina AI • 9 minuti letti
jina-ocr-v1 - Search Foundation Models
Parser di documenti "Page-to-Markdown" in un unico passaggio con 570 milioni di parametri attivi
Search Foundation ModelsJina AI
Jina-OCR-v1: Efficient Document Parsing with Speculative Decoding and Dense Verifiable Rewards
Presentiamo Jina-OCR-v1, un modello di parsing di documenti end-to-end progettato per essere eseguito su GPU a basso budget. Combina l'encoder di visione compresso e il decoder mixture-of-experts da 3B di DeepSeek-OCR, che attiva circa 570 milioni di parametri per token, con una testina di decodifica speculativa FastMTP che condivide un singolo blocco di bozza ricorsivamente su K=3 passaggi di predizione. La verifica greedy rende la decodifica lossless. Il post-addestramento combina l'allineamento tramite istruzioni, il fine-tuning sulla robustezza per documenti difficili e il GRPO sotto ricompense dense verificabili: formule deterministiche, tabelle e controlli strutturali che assegnano crediti parziali. I dati di addestramento mescolano corpora pubblici puliti con pagine sintetiche mirate. Con l'impostazione predefinita a risoluzione dinamica, Jina-OCR-v1 ottiene un punteggio di 91,14 su OmniDocBench v1.6 e 83,4 su olmOCR-Bench, raggiungendo il throughput di pagine più elevato nel nostro confronto, pari a 2,57 pagine al secondo. Su una GPU a basso budget come la NVIDIA L4, FastMTP raddoppia la velocità di decodifica rispetto alla decodifica autoregressiva greedy. Il modello è disponibile pubblicamente all'indirizzo https://huggingface.co/jinaai/jina-ocr-v1.
arXiv.orgAlejandro Barón García

Rilasciamo jina-ocr-v1, un parser di documenti da 3,4 miliardi di parametri con circa 570 milioni di parametri attivi nel decoder per token. Ottiene un punteggio di 91,14 su OmniDocBench v1.6 e 83,4 su olmOCR-Bench e, con 2,57 pagine al secondo, ha il throughput di pagine più elevato tra i quattordici sistemi che abbiamo misurato. Su una NVIDIA L4, la sua testina di decodifica speculativa quasi raddoppia la velocità di decodifica mantenendo la decodifica lossless.

Il modello si basa sull'encoder di visione compresso e sul decoder mixture-of-experts di DeepSeek-OCR, aggiungendo due elementi. Una testina di bozza FastMTP applica un blocco in modo ricorsivo per tre passaggi di predizione, in modo che i parametri di bozza non crescano con la profondità. Il post-addestramento viene eseguito con ricompense dense verificabili, dove ogni controllo è un codice deterministico rispetto a un riferimento e ogni controllo viene valutato. Rispetto alla struttura base, il post-addestramento aggiunge 7,4 punti su olmOCR-Bench e migliora ogni colonna di OmniDocBench.

Three-panel overview of specialized OCR models
Tre assi che determinano il costo di distribuzione. (a) Pixel per token visivo, scala logaritmica. DeepEncoder mappa una vista 1024x1024 da 4.096 patch a 256 token, fornendo 3.887 pixel per token visivo contro i 783 - 1.022 per encoder con patch da 28-32 px. (b) Throughput di pagine su olmOCR-Bench, una A100, concorrenza 32. (c) Benchmark generale rispetto ai parametri attivi, scala logaritmica, con la linea continua che unisce i sistemi Pareto-ottimali. jina-ocr-v1 si trova su entrambi i fronti con 570 milioni di parametri attivi.
Serving efficiency of fourteen OCR systems ranked three ways
Gli stessi quattordici sistemi su olmOCR-Bench, una A100 a concorrenza 32, classificati per (a) token di output al secondo, (b) token di output per pagina e (c) pagine al secondo, che è il rapporto tra i primi due. Surya OCR 2 è in testa per token al secondo con 3.760, ma emette 3.568 token per pagina e completa 1,05 pagine al secondo. jina-ocr-v1 combina 2.792 token al secondo con 1.085 token per pagina e raggiunge 2,57.

tagModello e addestramento

Gli output lunghi sono ciò che rende il parsing di documenti costoso da decodificare. DeepSeek-OCR ha eliminato gran parte di tale costo con un encoder di visione compresso e un decoder mixture-of-experts compatto; jina-ocr-v1 eredita entrambi e punta al collo di bottiglia autoregressivo rimanente.

Architecture of jina-ocr-v1
Architettura. DeepEncoder e il decoder MoE seguono DeepSeek-OCR, e una pagina produce una vista globale 1024x1024 di 256 token visivi più n riquadri locali di 100 token ciascuno. La testina FastMTP, in arancione, propone K = 3 token da un blocco di bozza condiviso che il decoder deve verificare.

L'output OCR è quasi deterministico e strutturato localmente, il che lo rende un carico di lavoro favorevole per la decodifica speculativa. La costruzione abituale collega una testina di bozza per profondità di predizione, quindi i parametri di bozza crescono in base a quanto in avanti il modello guarda. FastMTP utilizza un singolo blocco denso applicato ricorsivamente per K = 3 passaggi. Il verificatore controlla ogni proposta in modo greedy e accetta il prefisso più lungo su cui la bozza e il verificatore concordano, quindi la sequenza confermata equivale alla sequenza greedy del verificatore e la speculazione cambia solo il tempo impiegato per l'output.

ComponenteSpecifica
Encoder di visioneDeepEncoder (~380M): SAM (80M) → 16x conv → CLIP-L (300M)
Token visivi256 @ 1024x1024 (Base); 256+100n, n ≤ 9 (Gundam, ≤ 1.156/pagina)
DecoderDeepSeek-3B-MoE: 12 layer, d = 1280, 64 instradati + 2 condivisi, top-6
Parametri attivi / totali~570M / ~3B (decoder); < 1B / ~3,4B (modello intero)
Vocabolario129.280
Limite di posizione32.768 (RoPE, θ = 106)
Testina MTP1 blocco denso condiviso, K = 3 passaggi ricorsivi (FastMTP)

Specifica del modello. Il decoder emette Markdown, con tabelle in HTML e formule in LaTeX.

I dati di addestramento attingono a corpora OCR pubblici tra cui olmOCR-mix, FinePDFs, LightOnOCR, MMTab e UniMER, oltre a fonti deliberatamente difficili come i giornali Europeana, le trascrizioni della Library of Congress e i file pensionistici NARA. Un filtro basato su regole elimina i loop di degenerazione e i duplicati, e un passaggio visione-linguaggio rietichetta le fonti difficili. Sintetizziamo anche le pagine per un motivo specifico: nelle pagine naturali i termini di ricompensa per formule e tabelle si applicano a pochissimi campioni, quindi la maggior parte dei roll-out non porta alcun segnale strutturale. JinaOCRSynth riempie ogni pagina con formule e tabelle valutabili e fornisce unit test insieme ad esse.

Il post-addestramento esegue l'allineamento supervisionato, il fine-tuning sulla robustezza per pagine degradate e il GRPO, ripetuto attraverso i round di un ciclo esterno. La ricompensa GRPO è un prodotto di termini verificabili, ciascuno calcolato da un codice deterministico rispetto a una trascrizione di riferimento.

ComponenteSegnaleRuolo
ContenutoDistanza di edit normalizzata su LaTeX/HTML mistoFedeltà testuale
FormulaCorrispondenza stringa formulaCorrettezza formula
TabellaTEDS, TEDS-S, distanza di edit tabellaRecupero struttura
Validità strutturaleBilanciamento parentesi, chiusura tag, integrità tabellaCorrettezza formale
Unit testFrazione di test in stile olmOCR superati (presenza, ordine, matematica, tabelle)Feedback denso
Ripetizione e formatoPenalità di ripetizione, conformità HTMLControllo degenerazione

Composizione della ricompensa moltiplicativa. La maggior parte dei termini ha un limite minimo, poiché in un prodotto un controllo fallito rimuoverebbe il gradiente da una pagina altrimenti corretta. Il termine di ripetizione non ne ha nessuno, perché i loop degeneri sono la modalità di fallimento che più facilmente gonfia il punteggio del contenuto.

Ogni round lascia un pool di checkpoint candidati. Un agente ricerca configurazioni di merge con un budget di valutazione fisso e le valuta con controlli di unit-test e distanza di edit; gli errori nel merge selezionato guidano il round di raccolta successivo. La testina di bozza viene adattata per ultima, sul verificatore selezionato dal ciclo.

tagRisultati

ModelloParametriArXivOldScans-MathTablesOldScansMulti-colLongTinyHdr/FtrBaseOverall
Gemini 3 Flash–80.173.664.645.875.390.327.4––
Qwen3-VL-235B235B/22B88.481.286.749.685.988.933.6––
DeepSeek-OCR3B/570M77.574.577.333.167.383.096.199.376.0
dots.mocr3B85.985.590.748.285.381.694.099.783.9
olmOCR-28B82.982.184.348.384.381.4–99.782.4
LightOnOCR-21B89.685.689.042.284.891.419.799.683.2
chandra-ocr-24B86.989.192.151.182.193.791.499.985.8
jina-ocr-v13B/570M86.182.388.842.685.593.288.799.983.4

olmOCR-Bench. jina-ocr-v1 raggiunge un punteggio complessivo di 83,4, 7,4 punti sopra la dorsale DeepSeek-OCR su cui è stato post-addestrato e davanti al modello olmOCR-2 da 8B. La colonna Hdr/Ftr testa l'assenza di testo e premia l'omissione di intestazioni e piè di pagina, quindi la trascrizione fedele dell'intera pagina ottiene un punteggio basso in tale sezione.

MetodoParametriOverall ↑TextEdit ↓FormulaCDM ↑TableTEDS ↑TableTEDS-S ↑ROEdit ↓
Gemini 3 Flash–92.620.06695.1689.2993.510.172
Qwen3-VL-235B235B/22B89.780.06392.5583.0786.750.166
DeepSeek-OCR-23B/570M90.250.05091.8483.8987.750.144
HunyuanOCR-1.51B94.740.03994.5093.6794.710.129
PaddleOCR-VL-1.60.9B96.340.03397.5394.7697.100.128
jina-ocr-v13B/570M91.140.04693.2884.6889.010.142

OmniDocBench v1.6. jina-ocr-v1 raggiunge 91,14 con 570M di parametri attivi, superando DeepSeek-OCR-2 in ogni colonna e posizionandosi davanti al molto più grande Qwen3-VL-235B.

tagSpeculative decoding su una L4

ModalitàkOutput tok/s ↑Speedup S ↑Tasso di accettazioneτc ↓
Eager042.71.00x––1.00
Eager164.01.50x82.6%1.831.22
Eager277.91.82x69.1%2.381.30
Eager383.11.95x57.6%2.731.40
Graph0158.31.00x––1.00
Graph1185.61.17x82.9%1.831.56
Graph2183.81.16x69.3%2.382.05
Graph3172.91.09x57.9%2.742.51

FastMTP su olmOCR-Bench, NVIDIA L4, vLLM 0.20.1, dimensione batch 1. τ è il numero medio di 词元 (tokens) confermati per ogni passaggio speculativo, incluso il 词元 bonus, e c = τ/S è il costo di un passaggio speculativo espresso in unità di un passaggio autoregressivo. Misurato su un dispositivo diverso rispetto alle figure precedenti.

La qualità della bozza non dipende dalla modalità di esecuzione, poiché τ è 2,73 in modalità eager e 2,74 con grafi CUDA a k = 3. La baseline invece varia. I grafi CUDA aumentano la decodifica autoregressiva da 42,7 a 158,3 词元 al secondo, mentre il sovraccarico di un passaggio speculativo rimane vicino a 9 ms, quindi il suo costo aumenta da 1,40 a 2,51 passaggi autoregressivi. Il guadagno segue il costo del passaggio di verifica che sostituisce, il che rende k = 3 la profondità ottimale in modalità eager e k = 1 con i grafi.

tagGuida introduttiva

Il modo più rapido per eseguirlo è Jina Reader. Punta r.jina.ai a un URL e aggiungi un'intestazione: Reader recupera la pagina o il PDF, la renderizza, esegue jina-ocr-v1 sul risultato e restituisce il Markdown. Non c'è nulla da distribuire, nessuna gestione di immagini da scrivere e utilizza la stessa chiave API del resto della piattaforma.

curl "https://r.jina.ai/https://example.com/document.pdf" \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "X-Respond-With: jina-ocr-v1"

Aggiungi X-Page per trascrivere una pagina di un documento multipagina. Entrambi i parametri sono presenti nell'editor API di Reader, dove l'interruttore scrive l'intestazione per te.

Per l'accesso diretto al modello, l'endpoint ospitato è compatibile con OpenAI e richiede solo una chiave API da jina.ai.

curl https://api.jina.ai/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ***" \
  -d '{
    "model": "jina-ocr-v1",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "Transcribe the provided document image into a clean Markdown format, preserving the natural reading order."},
        {"type": "image_url", "image_url": {"url": "https://example.com/document.png"}}
      ]
    }]
  }'

Per il self-hosting, i pesi e il codice di modellazione personalizzato sono forniti in un repository di Hugging Face caricato con trust_remote_code=True. FastMTP necessita di vLLM 0.21 o versioni successive e di una registrazione dell'architettura una tantum prima dell'avvio del motore.

import sys
from huggingface_hub import snapshot_download
from PIL import Image
from vllm import LLM

sys.path.insert(0, snapshot_download('jinaai/jina-ocr-v1'))
from deepseek_ocr_mtp import DEFAULT_OCR_PROMPT, register, vllm_llm_kwargs, vllm_sampling_params

register()
llm = LLM(**vllm_llm_kwargs('jinaai/jina-ocr-v1',
                            num_speculative_tokens=3,
                            mtp_heads=1,
                            mtp_recursive=True))

image = Image.open('document.png').convert('RGB')
outputs = llm.chat(
    [{'role': 'user', 'content': [{'type': 'image_pil', 'image_pil': image},
                                  {'type': 'text', 'text': DEFAULT_OCR_PROMPT}]}],
    sampling_params=vllm_sampling_params(max_tokens=4096),
)
print(outputs[0].outputs[0].text)

Un dettaglio decide se si ottiene o meno l'accelerazione. L'helper registra la testina con method="eagle", poiché FastMTP è addestrato con feedback ricorsivo dello stato nascosto e il method="mtp" predefinito ricollega ogni passaggio di bozza sul target. Il percorso Transformers esegue solo il decodificatore MoE e ignora i pesi MTP.

Il modello gestisce anche la trascrizione a livello di elementi di tabelle e formule, didascalie, VQA documentale ed estrazione di informazioni chiave, sia in inglese che in cinese. I pesi sono rilasciati sotto licenza CC BY-NC 4.0.

tagConclusione

Con 570M di parametri attivi, jina-ocr-v1 si colloca alla frontiera della precisione per parametro di entrambi i benchmark e ha il throughput di pagine più elevato tra i sistemi che abbiamo misurato. Due leve svolgono questo lavoro e nessuna delle due richiede un modello più grande: una ricompensa graduata su ogni controllo verificabile e una testina di bozza addestrata rispetto al verificatore finale.

Vale la pena osservare più da vicino la lunghezza dell'output. Il throughput dei 词元 (tokens) e quello delle pagine classificano i sistemi in modo diverso, e la lunghezza dell'output è indipendente dalla qualità dell'analisi, quindi la concisione può essere ottimizzata autonomamente. jina-ocr-v1 offre gli output più brevi tra tutti i sistemi che ottengono un punteggio superiore a 83.

Categorie:
star
In primo piano
Comunicato stampa
rss_feed

Per saperne di più
agosto 03, 2026 • 11 minuti letti
jina-reranker-v3.5: Reranking listwise più veloce con Hybrid Attention e Self-Distillation
Jina AI
maggio 12, 2026 • 7 minuti letti
jina-embeddings-v3-omni:支持文本、图像、音频和视频的向量模型
Jina AI
febbraio 19, 2026 • 7 minuti letti
jina-embeddings-v5-text: Nuovi SOTA Small Multilingual Embeddings
Jina AI
Abstract digital artwork in black and white, featuring scattered dots forming letters in a halftone effect. The central lette
Lingua / tema attuale
Search Foundation
Reader
Embeddings
Reranker
Ottieni la chiave API Jina
Limite di velocità
Chi siamo
Notizie
Scarica il logo Jina
open_in_new
Scarica il logo Elastic
open_in_new
Stato dell'API
Elastic © 2026.SicurezzaTermini & CondizioniPrivacyGestisci i cookieNon vendere né condividere le mie informazioni personali
Questo sito web e tutti i contenuti, software, prodotti e servizi ad esso associati sono destinati esclusivamente all'uso professionale. Non è previsto né raccomandato alcun utilizzo da parte dei consumatori.