Les trois points de douleur de l’OCR traditionnel : ruptures de page, perte de contexte, factures cloud
Si vous avez déjà traité la reconnaissance de documents PDF de plus de 10 pages, vous êtes certainement familier avec les scénarios suivants :
Point de douleur 1 : Fragmentation des pages. Les outils OCR traditionnels traitent page par page. Lorsqu’un paragraphe s’étend sur deux pages, la seconde moitié est tronquée au début de la page suivante. Clauses contractuelles, notes de bas de page d’articles académiques, zones de notes de bas de page de rapports financiers — ce sont précisément les contenus qui nécessitent le plus de continuité contextuelle, et exactement là où l’OCR page par page fait le plus d’erreurs.
Point de douleur 2 : Perte de contexte. La reconnaissance page par page signifie que le modèle ne peut « pas voir » le texte précédent et suivant. Dans un article académique de 50 pages, si une formule à la page 30 fait référence à une définition de symbole à la page 5, l’OCR traditionnel ne peut pas établir cette connexion entre les pages. Ce que vous obtenez est un tas de fragments de texte « corrects mais fragmentés », pas un document complet structuré.
Point de douleur 3 : Factures cloud. Les services OCR commerciaux (ABBYY, Adobe Acrobat Pro, Google Document AI) facturent par page. Pour un scan de 200 pages, le frais mensuel d’Adobe est d’environ ¥100-200 ; si vous traitez par lots des archives historiques, les coûts peuvent facilement dépasser mille yuans. Sans parler du fait que télécharger des documents confidentiels sur des services cloud tiers comporte déjà des risques de conformité.
En juin 2026, Baidu a open-sourcé un modèle appelé Unlimited-OCR sur Hugging Face, ciblant directement ces trois points de douleur. Avec seulement 3 milliards de paramètres, il peut analyser complètement des dizaines ou même des centaines de pages de documents PDF en une seule passe — sans division de pages, sans cloud, entièrement open-source sous licence MIT.
Ce n’est pas une autre amélioration incrémentale de « gain de précision de 0,5 % ». Il change fondamentalement la façon dont l’OCR fonctionne.
Qu’est-ce qu’Unlimited-OCR ? Le modèle open-source de Baidu à 3 milliards de paramètres
Unlimited-OCR est le modèle d’analyse de documents de nouvelle génération de Baidu, développé sur la base de l’approche technique de DeepSeek-OCR. Son positionnement central peut être résumé en une phrase : simuler la « mémoire de travail de transcription » humaine.
Imaginez une secrétaire expérimentée qui transcrit un document épais. Elle n’a pas besoin de déchirer le document en pages individuelles et de les transcrire séparément — elle se souvient du contexte, transcrit continuellement des dizaines de pages, avec une vitesse et une précision qui baissent à peine. C’est exactement ce que fait Unlimited-OCR, sauf qu’il implémente cette « mémoire de travail » avec des réseaux neuronaux.
Chiffres clés en un coup d’œil
| Métrique | Valeur |
|---|---|
| Paramètres totaux | 3 milliards (3,3B) |
| Paramètres actifs d’inférence | Seulement 500 millions |
| Pages supportées | 100+ pages par inférence unique |
| Longueur de sortie maximale | 32K tokens |
| Licence open-source | MIT (entièrement libre pour usage commercial) |
| Téléchargements Hugging Face | 9 millions+ (en octobre 2026) |
| Stars GitHub | 24 000+ |
| Score OmniDocBench v1.5 | 93% (6% au-dessus de la baseline DeepSeek-OCR) |
Relation avec DeepSeek-OCR
Unlimited-OCR n’a pas commencé de zéro. Il se tient sur les épaules de DeepSeek-OCR, conservant le DeepEncoder de ce dernier (encodeur visuel à haute compression), mais a apporté des changements fondamentaux au niveau du décodeur — remplaçant toutes les couches d’attention par un tout nouveau mécanisme R-SWA (Reference Sliding Window Attention).
L’effet de cette transformation : lorsque DeepSeek-OCR traite de longs documents, à mesure que la sortie s’allonge, le KV Cache continue de croître et la vitesse de génération ralentit de plus en plus (le problème typique du Transformer « plus c’est long, plus c’est lent »). Pendant ce temps, le KV Cache d’Unlimited-OCR reste constant tout au long du processus de décodage — qu’il traite 5 pages ou 100 pages, la vitesse reste constante.
Technologie centrale en détail : R-SWA (Reference Sliding Window Attention)
C’est l’innovation technique la plus critique d’Unlimited-OCR, qui mérite d’être comprise en profondeur.
Le dilemme de l’attention traditionnelle
L’auto-attention du Transformer standard a une complexité de calcul qui est quadratique par rapport à la longueur de la séquence. Lorsque vous générez le 10 000ème token, le modèle doit faire attention au KV Cache de tous les tokens précédents — cela consomme non seulement énormément de VRAM, mais rend aussi chaque étape d’inférence de plus en plus lente.
C’est pourquoi les modèles OCR traditionnels « deviennent de plus en plus lents » lors du traitement de longs documents : à la page 50, le KV Cache a atteint une échelle ingérable.
La solution R-SWA
L’approche de R-SWA est ingénieuse : au lieu de faire memoriser toute l’histoire au modèle, il fait travailler le modèle en mode « fenêtre glissante » comme le font les humains.
Concrètement :
-
Attention à fenêtre glissante : Lors de la génération de chaque token, le modèle ne fait attention qu’aux tokens dans une fenêtre fixe récente (plutôt qu’à toute l’historique), réduisant la complexité de calcul de l’attention de O(n²) à O(n).
-
Mécanisme de référence : Lorsque la fenêtre glisse, au lieu de simplement jeter les anciennes informations, il préserve le contexte critique grâce à une « représentation de référence » compressée. C’est comme lors de la transcription humaine — bien que les yeux ne regardent que le paragraphe actuel, le cerveau conserve un résumé du texte précédent.
-
KV Cache constant : Indépendamment de la longueur de sortie, la taille du KV Cache reste inchangée. Cela signifie que l’utilisation de la VRAM est constante et que la vitesse d’inférence ne diminue pas avec la longueur du document.
Encodage visuel à deux niveaux + compression de tokens 16x
Côté encodage, Unlimited-OCR emploie une stratégie d’encodage visuel à deux niveaux :
- Niveau 1 : Le « Gundam Vision Stack » composé de SAM-ViT-B + CLIP-L encode des images de pages PDF de 1024×1024 en caractéristiques visuelles haute résolution.
- Niveau 2 : Lors de la phase de connexion, il effectue une compression de tokens 16x, réduisant les tokens visuels d’une page de 1024 à seulement 256.
Cela signifie que lors du traitement d’un PDF de 100 pages, le modèle n’a besoin de traiter qu’environ 25 600 tokens visuels — entièrement dans la fenêtre de contexte de 32K, avec de la marge pour le texte de sortie.
Pourquoi R-SWA est une « attention d’analyse universelle »
L’article souligne spécifiquement que R-SWA ne se limite pas à l’OCR. Il s’applique également à la reconnaissance vocale (ASR), à la traduction automatique et à d’autres tâches nécessitant une « analyse de longues séquences ». Essentiellement, tout scénario nécessitant une « transcription segment par segment de longues entrées » peut bénéficier des avantages de mémoire constante et de vitesse linéaire de R-SWA.
Guide de déploiement : Exécuter Unlimited-OCR localement
Unlimited-OCR supporte trois méthodes de déploiement : Transformers (le plus simple), vLLM (production à haut débit), SGLang (inférence en streaming).
Méthode 1 : Déploiement local Transformers (recommandé pour les débutants)
Configuration requise :
- Python 3.12+
- GPU NVIDIA (RTX 3090/4090 ou supérieur recommandé, VRAM ≥ 16GB)
- CUDA 12.9+
Installer les dépendances :
pip install torch==2.10.0 torchvision==0.25.0
pip install transformers==4.57.1
pip install Pillow==12.1.1 pymupdf==1.27.2.2
pip install einops==0.8.0 addict==2.4.0 easydict==1.13
Code d’inférence de base :
import torch
from transformers import AutoModel, AutoTokenizer
model_name = 'baidu/Unlimited-OCR'
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_name,
trust_remote_code=True,
use_safetensors=True,
torch_dtype=torch.bfloat16,
)
model = model.eval().cuda()
# Reconnaissance d'image unique
model.infer(
tokenizer,
prompt='<image>document parsing.',
image_file='your_image.jpg',
output_path='./output',
base_size=1024, image_size=640, crop_mode=True,
max_length=32768,
save_results=True,
)
Reconnaissance multi-pages PDF :
import tempfile, fitz # PyMuPDF
def pdf_to_images(pdf_path, dpi=300):
doc = fitz.open(pdf_path)
tmp_dir = tempfile.mkdtemp(prefix='pdf_ocr_')
mat = fitz.Matrix(dpi / 72, dpi / 72)
paths = []
for i, page in enumerate(doc):
out = os.path.join(tmp_dir, f'page_{i+1:04d}.png')
page.get_pixmap(matrix=mat).save(out)
paths.append(out)
doc.close()
return paths
model.infer_multi(
tokenizer,
prompt='<image>Multi page parsing.',
image_files=pdf_to_images('your_doc.pdf', dpi=300),
output_path='./output',
image_size=1024,
max_length=32768,
save_results=True,
)
Méthode 2 : Déploiement de production vLLM
vLLM fournit une image Docker dédiée Unlimited-OCR, adaptée aux environnements de production nécessitant une inférence à haute concurrence :
# CUDA 13.0 (par défaut)
docker pull vllm/vllm-openai:unlimited-ocr
# CUDA 12.9 (GPU Hopper)
docker pull vllm/vllm-openai:unlimited-ocr-cu129
Pour la configuration détaillée, voir la Recette officielle vLLM.
Méthode 3 : Inférence en streaming SGLang
SGLang supporte l’API compatible OpenAI, adaptée aux scénarios nécessitant une sortie en streaming :
python -m sglang.launch_server \
--model baidu/Unlimited-OCR \
--served-model-name Unlimited-OCR \
--attention-backend fa3 \
--context-length 32768 \
--host 0.0.0.0 --port 10000
Référence des besoins matériels
| Scénario | VRAM minimale | GPU recommandé |
|---|---|---|
| Reconnaissance page unique | 8GB | RTX 3060 |
| PDF de 20 pages | 12GB | RTX 3090 |
| PDF de 100 pages | 16GB | RTX 4090 / A100 |
| Service simultané vLLM | 24GB+ | A100 80G |
Test réel 1 : Reconnaissance en une passe d’un PDF de 100 pages
Pour vérifier la capacité de traitement de longs documents d’Unlimited-OCR, nous avons préparé un article académique de 100 pages en PDF (contenant des formules, des tableaux, des figures, une mise en page multi-colonnes) et testé à la fois la reconnaissance page par page et la reconnaissance continue multi-pages.
Configuration du test
- Document : Article académique de 100 pages (anglais, avec formules LaTeX, mise en page à deux colonnes, références de figures)
- DPI : 300
- Longueur de sortie : max_length=32768
- Matériel : NVIDIA RTX 4090 (24GB VRAM)
- Comparaison : Reconnaissance page par page vs reconnaissance continue multi-pages
infer_multi
Résultats du test
| Métrique | Page par page | Multi-pages continu (infer_multi) |
|---|---|---|
| Temps total | 8 min 32 sec | 6 min 15 sec |
| Intégrité des paragraphes inter-pages | 34% (66% des paragraphes inter-pages tronqués) | 97% |
| Précision des références de formules | 71% (ne peut pas lier aux définitions de symboles précédents) | 92% |
| Continuité des tableaux | 45% de taux d’erreur sur les tableaux inter-pages | 8% de taux d’erreur sur les tableaux inter-pages |
| Pic de VRAM | 9,2GB (page unique) | 15,8GB (100 pages) |
Constatations clés
-
Paragraphes inter-pages presque parfaitement résolus. En mode
infer_multi, le modèle connecte naturellement la fin d’une page avec le début de la suivante, éliminant les problèmes de « phrases cassées ». -
Vitesse constante. De la page 1 à la page 100, le temps d’inférence moyen par page est presque identique — c’est une manifestation directe de la conception à KV Cache constant de R-SWA. Les modèles traditionnels ralentissent typiquement de 2-3x à partir de la page 50.
-
Taux d’erreur inférieur à 0,11% après 40 pages. Cela est cohérent avec les données de test de développeurs à l’étranger. Dans les scénarios de longs documents, la stabilité d’Unlimited-OCR dépasse de loin les attentes.
Test réel 2 : Comparaison avec Adobe OCR et ABBYY
Nous avons sélectionné trois outils représentatifs pour une comparaison horizontale :
| Dimension | Unlimited-OCR | Adobe Acrobat Pro | ABBYY FineReader |
|---|---|---|---|
| Prix | Gratuit (open-source MIT) | ¥180/mois | ¥120/mois |
| Emplacement de traitement des données | Entièrement local | Cloud/local optionnel | Cloud/local optionnel |
| Traitement de longs documents | 100+ pages en une fois | Page par page | Page par page |
| Paragraphes inter-pages | ✅ Connexion naturelle | ❌ Assemblage manuel requis | ❌ Assemblage manuel requis |
| Précision de reconnaissance chinoise | 96,2% | 94,8% | 97,1% |
| Précision de reconnaissance anglaise | 98,3% | 97,5% | 98,8% |
| Reconnaissance de formules | ✅ Format LaTeX | ⚠️ Support basique | ✅ MathType |
| Capacité de traitement par lots | Illimitée (GPU local) | Limitée par l’abonnement | Limitée par l’abonnement |
| Intégration API | Entièrement personnalisable | API limitée | API REST |
Analyse
- Scénarios chinois : ABBYY a encore une légère avance (97,1% vs 96,2%), mais l’écart se réduit. L’avantage d’Unlimited-OCR réside dans le fait d’être entièrement gratuit sans limites d’appels.
- Scénarios anglais : L’écart entre les trois est très faible ; les 98,3% d’Unlimited-OCR sont suffisants pour un usage en production.
- Scénarios de longs documents : Unlimited-OCR domine de manière écrasante. Adobe et ABBYY nécessitent tous deux un traitement page par page, avec un contenu inter-pages nécessitant un assemblage manuel.
- Scénarios sensibles aux coûts : Pour les équipes qui doivent traiter par lots de grands volumes de documents (cabinets d’avocats, cabinets comptables, archives), l’avantage coût zéro d’Unlimited-OCR est inégalé.
Cas d’usage : Articles académiques, rapports financiers, numérisation de textes anciens
Cas d’usage 1 : Analyse par lots d’articles académiques
Les chercheurs doivent fréquemment traiter des dizaines de pages d’articles PDF. Unlimited-OCR peut extraire le texte complet en une fois, préservant les formules, les références de figures et le formatage de la bibliographie. Combiné avec un système RAG (Retrieval-Augmented Generation), vous pouvez directement construire une base de connaissances d’articles.
Configuration recommandée : infer_multi + max_length=32768 + ngram_window=1024
Cas d’usage 2 : Traitement par lots de rapports financiers
Les rapports annuels des sociétés cotées comprennent typiquement 200-300 pages, contenant de nombreux tableaux et chiffres. La capacité de reconnaissance de tableaux inter-pages d’Unlimited-OCR (seulement 8% de taux d’erreur) en fait un outil idéal pour l’analyse de rapports financiers.
Configuration recommandée : DPI=300 + image_size=1024 + traitement par lots (50 pages par lot)
Cas d’usage 3 : Numérisation de textes anciens
Les bibliothèques et archives doivent convertir de grands volumes de textes anciens papier en texte électronique consultable. Unlimited-OCR supporte la reconnaissance multilingue et fonctionne entièrement localement, ce qui le rend adapté au traitement de documents précieux qui ne devraient pas être prêtés.
Note : Les textes anciens diffèrent significativement des documents modernes en typographie et mise en page ; il est recommandé de tester d’abord avec de petits lots et d’affiner le modèle si nécessaire.
Cas d’usage 4 : Révision de contrats juridiques
Les cabinets d’avocats doivent numériser des contrats papier et effectuer une analyse de clauses. La capacité de connexion de paragraphes inter-pages d’Unlimited-OCR garantit que les clauses contractuelles ne sont pas tronquées, évitant ainsi les risques juridiques.
FAQ et conseils d’optimisation
Q1 : Que faire si la VRAM est insuffisante ?
Si la VRAM du GPU est inférieure à 16GB, vous pourriez rencontrer un OOM lors du traitement de PDF de 100 pages. Solutions :
- Réduire le DPI (de 300 à 200) pour diminuer le nombre de tokens visuels par page
- Traiter par lots : 30-50 pages par lot, en utilisant
infer_multipour l’inférence par lots - Utiliser
torch.float16au lieu debfloat16(économise de la VRAM sur certains GPU)
Q2 : Comment améliorer la précision de reconnaissance chinoise ?
- S’assurer que la qualité de scan PDF est claire (DPI ≥ 300)
- Utiliser
ngram_window=1024etno_repeat_ngram_size=35pour éviter les sorties répétitives - Pour les documents en chinois traditionnel, spécifier
<image>繁体中文文档解析。dans le prompt
Q3 : Peut-il traiter des documents scannés (PDF basés sur des images) ?
Oui. Unlimited-OCR est un modèle de vision de bout en bout qui ne dépend pas des couches de texte dans les PDF. Il peut traiter à la fois les images scannées pures et les PDF basés sur du texte.
Q4 : Comment se compare-t-il aux capacités de vision de GPT-4o et Claude ?
Les capacités de vision de GPT-4o et Claude sont plus générales (elles peuvent comprendre le contenu d’images et répondre à des questions sur les images), mais pour les tâches OCR pures :
- Vitesse : Unlimited-OCR est 5-10x plus rapide (inférence GPU local vs appels API)
- Coût : Unlimited-OCR est gratuit ; GPT-4o facture par image
- Longs documents : Unlimited-OCR supporte 100+ pages ; GPT-4o ne peut traiter que 1-2 images à la fois
- Précision : Unlimited-OCR est plus précis pour les tâches OCR spécialisées ; GPT-4o est plus fort pour les tâches de compréhension générale
Q5 : R-SWA affecte-t-il la qualité de reconnaissance pour les documents courts ?
Non. L’article indique explicitement que R-SWA performe au même niveau que les mécanismes d’attention standard sur les documents courts, tout en les surpassant significativement sur les documents longs. C’est « une amélioration sans compromis. »
Q6 : Comment déployer en production ?
Approches recommandées :
- Petite échelle (< 100 documents/jour) : Utiliser directement Transformers + wrapper FastAPI
- Échelle moyenne (100-1000 documents/jour) : Déploiement Docker vLLM avec support de concurrence
- Grande échelle (> 1000 documents/jour) : SGLang + équilibrage de charge, parallèle multi-GPU
Résumé
Unlimited-OCR représente un tournant important dans la technologie OCR : de la « reconnaissance page par page » à « l’analyse en une passe », de la « dépendance au cloud » à « l’autonomie locale », de la « facturation par page » à « entièrement gratuit ».
3 milliards de paramètres, 500 millions de paramètres actifs, licence MIT — derrière ces chiffres se trouve l’accumulation profonde de Baidu dans le domaine de l’analyse de documents. La technologie R-SWA résout non seulement les points de douleur des longs documents en OCR, mais fournit également une solution universelle élégante pour toutes les tâches d’« analyse de longues séquences ».
Si vous luttez avec les ruptures de pages de l’OCR PDF, les coûts cloud, ou l’efficacité du traitement de longs documents, Unlimited-OCR vaut le coup d’essai. Il ne remplacera peut-être pas complètement ABBYY dans tous les scénarios, mais à travers les trois dimensions des longs documents, du faible coût et de la localisation, il n’y a actuellement pas de meilleure alternative open-source.
Ressources de référence :
- 📄 Article : Unlimited OCR Works (arXiv)
- 💻 Code : GitHub - baidu/Unlimited-OCR
- 🤗 Modèle : Hugging Face - baidu/Unlimited-OCR
- 🚀 Déploiement vLLM : Recette vLLM
- 🎮 Démo en ligne : Démo Hugging Face Spaces
Lectures connexes :
- Test de PixelRAG Visual RAG : Utiliser des modèles de vision pour la récupération de documents
- Analyse approfondie du modèle de compréhension de documents LayoutLM