Elastic
Jina AI
Modèles
API
keyboard_arrow_down
Reader
Convertissez n'importe quelle URL en Markdown pour un meilleur grounding des LLM.
Embeddings
Embeddings multimodales et multilingues.
Reclasseur
Outil de reclassement pour optimiser la pertinence des résultats de recherche.
MCP
terminal
CLI
article
llms.txt
smart_toy
Agents
data_object
Schéma
menu_book
Documents
Se connecter
login
Modèle et entraînement
Résultats
Pour commencer
Conclusion
star
Mis en exergue
Communiqué de presse
septembre 14, 2026

jina-ocr-v1 : Analyse de documents plus rapide sur des GPU à budget limité

jina-ocr-v1 est un modèle vision-langage doté de 3,4 milliards de paramètres et de 570 millions de paramètres actifs, obtenant un score de 91,1 sur OmniDocBench v1.6 et de 83,4 sur olmOCR-Bench.
jina-ocr-v1
Jina AI
Jina AI • 9 minutes lues
jina-ocr-v1 - Search Foundation Models
Analyseur de documents transformant les pages en Markdown en un seul passage avec 570 M de paramètres actifs
Search Foundation ModelsJina AI
Jina-OCR-v1: Efficient Document Parsing with Speculative Decoding and Dense Verifiable Rewards
Nous présentons Jina-OCR-v1, un modèle d'analyse de documents de bout en bout conçu pour être utilisé sur des GPU à petit budget. Il combine l'encodeur de vision compressé et le décodeur "mixture-of-experts" de 3B de DeepSeek-OCR, qui active environ 570 M de paramètres par 词元, avec une tête de décodage spéculatif FastMTP qui partage un bloc de brouillon unique de manière récursive sur K=3 étapes de prédiction. La vérification gloutonne rend le décodage sans perte. Le post-entraînement combine l'alignement par instructions, le réglage fin de la robustesse sur des documents complexes, et le GRPO sous des récompenses vérifiables denses : formules déterministes, tableaux et contrôles structurels qui accordent des points partiels. Les données d'entraînement mélangent des corpus publics nettoyés avec des pages synthétiques ciblées. Au réglage de résolution dynamique par défaut, Jina-OCR-v1 obtient un score de 91,14 sur OmniDocBench v1.6 et de 83,4 sur olmOCR-Bench, et atteint le débit de pages le plus élevé de notre comparaison avec 2,57 pages par seconde. Sur un GPU à budget limité tel que le NVIDIA L4, FastMTP double la vitesse de décodage par rapport au décodage autorégressif glouton. Le modèle est disponible publiquement sur https://huggingface.co/jinaai/jina-ocr-v1.
arXiv.orgAlejandro Barón García

Nous publions jina-ocr-v1, un analyseur de documents à 3,4 milliards de paramètres avec environ 570 millions de paramètres de décodeur actifs par 词元. Il obtient un score de 91,14 sur OmniDocBench v1.6 et 83,4 sur olmOCR-Bench, et avec 2,57 pages par seconde, il présente le débit de pages le plus élevé parmi les quatorze systèmes que nous avons mesurés. Sur un NVIDIA L4, sa tête de décodage spéculatif double presque la vitesse de décodage tout en conservant un décodage sans perte.

Le modèle s'appuie sur l'encodeur de vision compressé et le décodeur "mixture-of-experts" de DeepSeek-OCR et ajoute deux éléments. Une tête de brouillon FastMTP applique un bloc de manière récursive pour trois étapes de prédiction, de sorte que les paramètres de brouillon ne croissent pas avec la profondeur. Le post-entraînement est effectué sous des récompenses vérifiables denses, où chaque contrôle est un code déterministe par rapport à une référence et chaque contrôle est noté. Par rapport à cette base, le post-entraînement ajoute 7,4 points sur olmOCR-Bench et améliore chaque colonne d'OmniDocBench.

Three-panel overview of specialized OCR models
Trois axes déterminant le coût de déploiement. (a) Pixels par 词元 visuel, échelle logarithmique. DeepEncoder mappe une vue 1024x1024 de 4 096 patchs à 256 词元, soit 3 887 pixels par 词元 visuel contre 783 à 1 022 pour les encodeurs avec des patchs de 28 à 32 px. (b) Débit de pages sur olmOCR-Bench, un A100, concurrence 32. (c) Benchmark global par rapport aux paramètres actifs, échelle logarithmique, avec la ligne continue reliant les systèmes Pareto-optimaux. jina-ocr-v1 se situe sur les deux frontières avec 570 M de paramètres actifs.
Serving efficiency of fourteen OCR systems ranked three ways
Les mêmes quatorze systèmes sur olmOCR-Bench, un A100 à concurrence 32, classés par (a) 词元 de sortie par seconde, (b) 词元 de sortie par page, et (c) pages par seconde, qui est le rapport des deux premiers. Surya OCR 2 est en tête sur les 词元 par seconde à 3 760 mais émet 3 568 词元 par page et complète 1,05 page par seconde. jina-ocr-v1 combine 2 792 词元 par seconde avec 1 085 词元 par page et atteint 2,57.

tagModèle et entraînement

Les sorties longues sont ce qui rend l'analyse de documents coûteuse à décoder. DeepSeek-OCR a supprimé la majeure partie de ce coût avec un encodeur de vision compressé et un décodeur "mixture-of-experts" compact, et jina-ocr-v1 hérite des deux et cible le goulot d'étranglement autorégressif qui subsiste.

Architecture of jina-ocr-v1
Architecture. DeepEncoder et le décodeur MoE suivent DeepSeek-OCR, et une page produit une vue globale 1024x1024 de 256 词元 visuels plus n tuiles locales de 100 词元 chacune. La tête FastMTP, en orange, propose K = 3 词元 à partir d'un bloc de brouillon partagé pour que le décodeur vérifie.

La sortie OCR est quasi-déterministe et localement structurée, ce qui en fait une charge de travail favorable pour le décodage spéculatif. La construction habituelle attache une tête de brouillon par profondeur de prédiction, de sorte que les paramètres de brouillon augmentent avec la portée de la prédiction du modèle. FastMTP utilise un seul bloc dense appliqué de manière récursive pour K = 3 étapes. Le vérificateur vérifie chaque proposition de manière gloutonne et accepte le préfixe le plus long sur lequel le brouillon et le vérificateur s'accordent, de sorte que la séquence validée est égale à la séquence gloutonne du vérificateur et que la spéculation ne fait que modifier la durée de la sortie.

ComposantSpécification
Encodeur de visionDeepEncoder (~380M) : SAM (80M) → 16x conv → CLIP-L (300M)
词元 visuels256 @ 1024x1024 (Base) ; 256+100n, n ≤ 9 (Gundam, ≤ 1 156/page)
DécodeurDeepSeek-3B-MoE : 12 couches, d = 1280, 64 routées + 2 partagées, top-6
Paramètres actifs / totaux~570M / ~3B (décodeur) ; < 1B / ~3,4B (modèle complet)
Vocabulaire129 280
Limite de position32 768 (RoPE, θ = 106)
Tête MTP1 bloc dense partagé, K = 3 étapes récursives (FastMTP)

Spécification du modèle. Le décodeur émet du Markdown, avec des tableaux en HTML et des formules en LaTeX.

Les données d'entraînement s'appuient sur des corpus publics d'OCR incluant olmOCR-mix, FinePDFs, LightOnOCR, MMTab et UniMER, ainsi que des sources délibérément difficiles telles que les journaux Europeana, les transcriptions de la Bibliothèque du Congrès et les dossiers de pension NARA. Un filtre basé sur des règles supprime les boucles de dégénérescence et les doublons, et un passage vision-langage réétiquette les sources difficiles. Nous synthétisons également des pages pour une raison spécifique : sur les pages naturelles, les termes de récompense des formules et des tableaux s'appliquent à très peu d'échantillons, de sorte que la plupart des déploiements ne portent aucun signal structurel. JinaOCRSynth remplit chaque page avec des formules et des tableaux évaluables et les accompagne de tests unitaires.

Le post-entraînement effectue un alignement supervisé, un réglage fin de la robustesse sur des pages dégradées, et du GRPO, répétés au cours des cycles d'une boucle externe. La récompense GRPO est un produit de termes vérifiables, chacun calculé par un code déterministe par rapport à une transcription de référence.

ComposantSignalRôle
ContenuDistance d'édition normalisée sur mélange LaTeX/HTMLFidélité textuelle
FormuleCorrespondance de chaîne de formuleExactitude des formules
TableauTEDS, TEDS-S, distance d'édition de tableauRécupération de structure
Validité structurelleÉquilibre des accolades, fermeture des balises, intégrité du tableauBonne formation
Tests unitairesFraction des tests de présence, d'ordre, mathématiques et de tableau de style olmOCR réussisFeedback dense
Répétition et formatPénalité de répétition, conformité HTMLContrôle de la dégénérescence

Composition de récompense multiplicative. La plupart des termes comportent un seuil minimal, car dans un produit, un contrôle échoué supprimerait le gradient d'une page par ailleurs correcte. Le terme de répétition n'en a pas, car les boucles dégénérées sont le mode de défaillance qui gonfle le plus facilement le score de contenu.

Chaque cycle laisse un pool de points de contrôle candidats. Un agent recherche des configurations de fusion sous un budget d'évaluation fixe et les évalue avec des tests unitaires et des contrôles de distance d'édition, et les erreurs dans la fusion sélectionnée pilotent le cycle de collecte suivant. La tête de brouillon est ajustée en dernier, sur le vérificateur sélectionné par la boucle.

tagRésultats

ModèleParamètresArXivOldScans-MathTableauxOldScansMulti-colLongTinyHdr/FtrBaseGlobal
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 atteint un score global de 83,4, soit 7,4 points au-dessus du modèle DeepSeek-OCR sur lequel il est post-entraîné, et devance le modèle olmOCR-2 de 8B. La colonne Hdr/Ftr teste l'absence de texte et récompense l'omission des en-têtes et pieds de page ; par conséquent, la transcription fidèle d'une page complète obtient un score faible sur ce point.

MéthodeParamètresGlobal ↑TexteEdit ↓FormuleCDM ↑TableauTEDS ↑TableauTEDS-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 atteint 91,14 avec 570M de paramètres actifs, surpassant DeepSeek-OCR-2 sur chaque colonne et devançant le modèle Qwen3-VL-235B, beaucoup plus volumineux.

tagDécodage spéculatif sur un L4

ModekSortie tok/s ↑Accélération S ↑Taux d'acceptationτ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 sur olmOCR-Bench, NVIDIA L4, vLLM 0.20.1, taille de lot 1. τ est le nombre moyen de 词元 (tokens) validés par étape spéculative, incluant le 词元 bonus, et c = τ/S représente le coût d'une étape spéculative en unités d'étape autorégressive. Mesuré sur un appareil différent des chiffres ci-dessus.

La qualité du brouillon ne dépend pas du mode d'exécution, puisque τ est de 2,73 en mode eager et 2,74 avec les graphes CUDA à k = 3. La ligne de base, elle, en dépend. Les graphes CUDA font passer le décodage autorégressif de 42,7 à 158,3 词元 par seconde tandis que le surcoût d'une étape spéculative reste proche de 9 ms, son coût augmente donc de 1,40 à 2,51 étapes autorégressives. Le gain suit le coût de l'étape de vérification qu'il remplace, ce qui place la profondeur optimale à k = 3 en mode eager et k = 1 avec les graphes.

tagPour commencer

Le moyen le plus rapide de l'exécuter est Jina Reader. Pointez r.jina.ai vers une URL et ajoutez un en-tête : Reader récupère la page ou le PDF, le rend, exécute jina-ocr-v1 sur le résultat et renvoie du Markdown. Rien à déployer, aucune gestion d'image à écrire, et la même clé API que pour le reste de la plateforme.

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

Ajoutez X-Page pour transcrire une seule page d'un document multipage. Les deux paramètres sont disponibles dans l'éditeur d'API Reader, où le bouton bascule écrit l'en-tête pour vous.

Pour un accès direct au modèle, le point de terminaison hébergé est compatible avec OpenAI et ne nécessite qu'une clé API de 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"}}
      ]
    }]
  }'

Pour l'héberger vous-même, les poids et le code de modélisation personnalisé sont fournis dans un dépôt Hugging Face chargé avec trust_remote_code=True. FastMTP nécessite vLLM 0.21 ou ultérieur et un enregistrement d'architecture unique avant le démarrage du moteur.

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 détail détermine si l'accélération se produit. L'assistant enregistre la tête avec method="eagle", car FastMTP est entraîné avec un retour d'état caché récursif et la méthode par défaut method="mtp" réinitialise chaque étape de brouillon sur la cible. Le chemin Transformers exécute seul le décodeur MoE et ignore les poids MTP.

Le modèle gère également la transcription au niveau des éléments des tableaux et des formules, le sous-titrage, le VQA de documents et l'extraction d'informations clés, en anglais et en chinois. Les poids sont publiés sous licence CC BY-NC 4.0.

tagConclusion

Avec 570M de paramètres actifs, jina-ocr-v1 se situe à la frontière précision-par-paramètre des deux benchmarks et possède le débit de pages le plus élevé des systèmes que nous avons mesurés. Deux leviers accomplissent ce travail sans nécessiter de modèle plus grand : une récompense graduée à chaque vérification confirmable, et une tête de brouillon entraînée par rapport au vérificateur final.

La longueur de la sortie mérite une attention particulière. Le débit de 词元 et le débit de pages classent les systèmes différemment, et la longueur de sortie est indépendante de la qualité de l'analyse, la concision peut donc être optimisée séparément. jina-ocr-v1 propose les sorties les plus courtes parmi tous les systèmes ayant un score supérieur à 83.

Catégories:
star
Mis en exergue
Communiqué de presse
rss_feed

En savoir plus
août 03, 2026 • 11 minutes lues
jina-reranker-v3.5 : Reclassement par liste plus rapide avec attention hybride et autodistillation
Jina AI
mai 12, 2026 • 7 minutes lues
jina-embeddings-v5-omni : Modèles vectoriels pour le texte, l'image, l'audio et la vidéo
Jina AI
février 19, 2026 • 7 minutes lues
jina-embeddings-v5-text : Nouveaux Embeddings multilingues de petite taille SOTA
Jina AI
Abstract digital artwork in black and white, featuring scattered dots forming letters in a halftone effect. The central lette
Langue / thème actuel
Search Foundation
Reader
Embeddings
Reclasseur
Obtenir la clé API Jina
Limite de débit
À propos de nous
Actualités
Télécharger le logo Jina
open_in_new
Télécharger le logo Elastic
open_in_new
Statut de l'API
Elastic © 2026.SécuritéTermes et conditionsConfidentialitéGérer les cookiesNe vendez ni ne partagez mes informations personnelles
Ce site web et l'ensemble de son contenu, de ses logiciels, produits et services sont destinés exclusivement à un usage professionnel. Aucun usage à des fins de consommation n'est prévu.