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

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

Author

OLMOCR Team

1 mars 2025

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

olmOCR Logo

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 👇

Exemple de comparaison visuelle


🧰 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

  1. 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.

  2. 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.

  3. 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 🎉