Déployez olmOCR en local : simplifiez le traitement de vos PDF !

OLMOCR Team
1 mars 2025
Déployez olmOCR en local : simplifiez le traitement de vos PDF !
Amis de la manipulation de documents PDF, attention ! Aujourd'hui, je vous présente un outil magique : olmOCR. Il permet aux modèles de langage de lire facilement toutes sortes de PDF, même avec des mises en page complexes ! Qu'il s'agisse d'articles universitaires ou de tableaux complexes, il peut tout gérer. Mieux encore, il prend en charge le déploiement local, assurant ainsi la sécurité de vos données ! Je vais vous guider pas à pas pour l'installer et l'utiliser 👇
🛠️ Préparation : installation des dépendances
Tout d'abord, installons quelques dépendances au niveau du système (en prenant Ubuntu comme exemple) :
# Installation en une seule commande
sudo apt-get update
sudo apt-get install poppler-utils ttf-mscorefonts-installer msttcorefonts fonts-crosextra-caladea fonts-crosextra-carlito gsfonts lcdf-typetools
💡 Astuce : Si vous rencontrez un accord de licence de police lors de l'installation, appuyez sur la touche TAB
pour sélectionner <Yes>
et confirmer !
🌱 Création d'un environnement Python
Il est recommandé d'utiliser conda pour gérer l'environnement :
conda create -n olmocr python=3.11
conda activate olmocr
# Cloner le dépôt et installer
git clone https://github.com/allenai/olmocr.git
cd olmocr
pip install -e .
⚡ Installation des composants d'accélération
Vous voulez utiliser l'accélération GPU ? Ces deux lignes de commande sont indispensables :
pip install sgl-kernel==0.0.3.post1 --force-reinstall --no-deps
pip install "sglang[all]==0.4.2" --find-links https://flashinfer.ai/whl/cu124/torch2.4/flashinfer/
🚀 Expérience rapide : conversion de PDF en pratique
Conversion d'un seul fichier
python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
Traitement par lots
python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/*.pdf
Les résultats de la conversion seront enregistrés dans un fichier JSONL sous le répertoire ./localworkspace/results
. Utilisez cette commande pour les consulter :
cat localworkspace/results/output_*.jsonl
👀 Outil de comparaison visuelle
Vous voulez comparer visuellement le PDF original et le résultat de la conversion ? Essayez ceci :
python -m olmocr.viewer.dolmaviewer localworkspace/results/output_*.jsonl
Ouvrez le fichier HTML dans le répertoire dolma_previews
généré, et vous verrez une interface de comparaison comme celle-ci 👇
🧰 Fonctionnalités avancées
Traitement de millions de PDF
Pour le traitement de PDF à grande échelle en entreprise, vous pouvez utiliser un cluster AWS :
# Initialisation du premier nœud
python -m olmocr.pipeline s3://my_bucket/workspace --pdfs s3://my_bucket/pdfs/*.pdf
# Les autres nœuds rejoignent le cluster
python -m olmocr.pipeline s3://my_bucket/workspace
Afficher tous les paramètres
python -m olmocr.pipeline --help
💻 Pour les utilisateurs de Docker
Un Dockerfile officiel est fourni, ce qui facilite l'utilisation directe de l'image :
FROM allenai/olmocr-inference:latest
# Pour plus de détails, consultez la documentation du projet
# Lien :
https://github.com/allenai/olmocr/blob/main/scripts/beaker/Dockerfile-inference
❓ FAQ
-
Que faire en cas d'erreur GPU ?
Vérifiez le pilote de la carte graphique et la version de CUDA. Il est recommandé d'utiliser des cartes récentes telles que RTX 4090/L40S/A100/H100. -
Les PDF en chinois sont-ils pris en charge ?
Actuellement, l'optimisation est principalement axée sur les documents en anglais, mais vous pouvez essayer d'autres langues avec le paramètre--apply_filter
. -
Espace disque insuffisant ?
Prévoyez au moins 30 Go d'espace libre. Pour le traitement de fichiers volumineux, il est recommandé de monter un SSD.
👏 Remerciements
olmOCR est développé par l'Allen Institute for AI (AI2) et est sous licence open source Apache 2.0. Nous remercions particulièrement l'équipe de développement pour sa contribution (liste complète des contributeurs).
Essayez-le dès maintenant ! Si vous rencontrez des problèmes, n'hésitez pas à rejoindre la communauté Discord pour en discuter 🎉