olmOCR : conversion de documents PDF en texte, prise en charge des tableaux, des formules et de la reconnaissance du contenu manuscrit

Introduction générale

olmOCR est un outil open source développé par l'équipe AllenNLP de l'Allen Institute for Artificial Intelligence (AI2) qui se concentre sur la conversion de fichiers PDF en texte linéarisé, et qui est particulièrement adapté à la préparation d'ensembles de données et à l'entraînement de modèles de langage à grande échelle (LLM). Il prend en charge l'extraction de texte à partir de documents PDF complexes, maintient l'ordre de lecture naturel et peut traiter des tableaux, des formules et même du contenu manuscrit. L'outil est conçu pour être efficace et peut fonctionner sur des GPU locaux ou via AWS S3 pour un traitement parallèle à plusieurs nœuds, ce qui réduit considérablement les coûts de traitement. Selon les données officielles, sa vitesse de traitement peut atteindre plus de 3000 tokens par seconde, le coût est seulement 1/32 de GPT-4o, est très approprié pour les chercheurs et les développeurs qui ont besoin de traiter un grand nombre de PDF. olmOCR utilise la licence Apache 2.0, le code, les poids des modèles et les données est complètement open source, et encourage la communauté à participer à l'amélioration.

olmOCR:PDF文档转换为文本,支持表格、公式和手写内容的识别

Adresse de démonstration : https://olmocr.allenai.org/

 

Liste des fonctions

  • PDF Extraction de texte et linéarisationConvert PDF files to Dolma-style JSONL-formatted text, preserving reading order : Convertir des fichiers PDF en texte formaté en JSONL à la Dolma, en préservant l'ordre de lecture.
  • Raisonnement accéléré par le GPULe traitement des documents : Exploiter les GPU natifs et la technologie sglang pour un traitement efficace des documents.
  • Traitement parallèle multi-nœudsSupport pour la coordination de tâches multi-nœuds via AWS S3, adapté au traitement de millions de PDF.
  • Reconnaissance de contenus complexesLes logiciels de traitement de texte : Traiter des tableaux, des formules mathématiques et du texte manuscrit pour produire des résultats structurés.
  • Gestion flexible de l'espace de travailLes données sont stockées dans un espace de travail local ou dans le nuage pour stocker les résultats du traitement et les données intermédiaires.
  • Soutien écologique à source ouverteLes services d'aide à la décision : Fournir un code complet et une documentation pour le développement secondaire et la personnalisation.

 

Utiliser l'aide

Processus d'installation

L'installation d'olmOCR doit se faire dans un environnement qui supporte Python, et il est recommandé d'utiliser un GPU pour améliorer l'efficacité du traitement. Voici les étapes détaillées :

1. préparation à l'environnement

  • Installation d'AnacondaSi vous n'avez pas Anaconda, allez sur le site officiel pour le télécharger et l'installer.
  • Créer un environnement virtuel:
    conda create -n olmocr python=3.11
    conda activate olmocr
  • Cloner le dépôt de code:
    git clone https://github.com/allenai/olmocr.git
    cd olmocr
    

2. installation des dépendances principales

  • Installation des dépendances de base:
    pip install -e .
    
  • Installation du support GPU (optionnel)Installation de sglang et de flashinfer si vous avez besoin de l'accélération GPU :
    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/
    

    prendre notePour cela, assurez-vous que votre pilote de GPU et votre version de CUDA sont compatibles avec les dépendances ci-dessus.

3. vérification de l'installation

  • Sur la ligne de commande, exécutez python -m olmocr.pipeline --helpSi le message d'aide est affiché, l'installation a réussi.

Utilisation

olmOCR offre deux scénarios d'utilisation principaux : le traitement local d'un seul fichier et le traitement à grande échelle dans le nuage. Les paragraphes suivants décrivent en détail le processus d'exploitation.

Traitement local des PDF individuels

  1. Préparation des fichiers PDF:
    • Placez le PDF à traiter dans un répertoire local, par exemple ./tests/gnarly_pdfs/horribleocr.pdf.
  2. Exécuter la commande de traitement:
    python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
    
  3. Voir les résultats:
    • Une fois le traitement terminé, les résultats sont enregistrés au format JSON dans le fichier ./localworkspace.
    • Le texte extrait est stocké au format JSONL de type Dolma dans le fichier ./localworkspace/results Au milieu.
  4. Paramètres de réglage (en option):
    • --workers: définit le nombre de threads de travail simultanés, par défaut 8.
    • --target_longest_image_dim: Définit la longueur maximale du côté de l'image rendue, par défaut 1024 pixels.

échantillon de sortie (calcul):

{"text": "Molmo and PixMo:\nOpen Weights and Open Data\nfor State-of-the...", "metadata": {"primary_language": "en", "is_table": false}}

Traitement à grande échelle dans le nuage (AWS S3)

  1. Configuration de l'environnement AWS:
    • Assurez-vous d'avoir un compte AWS et générez une clé d'accès.
    • Créez deux buckets sur S3, par exemple s3://my_s3_bucket/pdfworkspaces/exampleworkspace répondre en chantant s3://my_s3_bucket/jakep/gnarly_pdfs/.
  2. Télécharger des fichiers PDF:
    • Télécharger des fichiers PDF vers s3://my_s3_bucket/jakep/gnarly_pdfs/.
  3. Démarrage d'une tâche de nœud maître:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf
    
    • Cette commande crée une file d'attente et lance le traitement.
  4. Ajout de nœuds esclaves:
    • Exécution sur d'autres machines :
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace
    
    • Le nœud esclave récupère automatiquement la tâche dans la file d'attente et la traite.
  5. Vue des résultats:
    • Les résultats sont stockés dans la base de données s3://my_s3_bucket/pdfworkspaces/exampleworkspace/results.

prendre notePour ce faire, vous devez configurer le CLI AWS et vous assurer que vous disposez des autorisations suffisantes pour accéder à l'espace de stockage S3.

Utilisation du bécher (utilisateur interne AI2)

  1. Ajouter les paramètres du bécher:
    python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf --beaker --beaker_gpus 4
    
  2. effet d'exploitation:
    • Après avoir préparé l'espace de travail localement, 4 nœuds de travail GPU sont automatiquement démarrés dans le cluster.

Fonction en vedette Fonctionnement

1. traiter des documents complexes

  • procédure:
    • Télécharger des PDF contenant des tableaux ou des formules.
    • Utilisation du modèle par défaut allenai/olmOCR-7B-0225-preview, exécutez la commande de traitement.
    • Vérifier le fichier JSONL de sortie pour s'assurer que les tableaux et les formules sont correctement analysés en tant que texte.
  • attirer l'attention sur qqch.: : Ajustement en cas de mauvaise reconnaissance --target_longest_image_dim pour augmenter la résolution de l'image.

2. traitement à haut débit

  • procédure:
    • Configurer un environnement multi-nœuds (tel que AWS ou Beaker).
    • en augmentation --workers pour améliorer le parallélisme autonome.
    • Contrôler la vitesse de traitement pour garantir plus de 3 000 jetons par seconde.
  • tranchantLes coûts sont aussi bas que 190 dollars par million de pages, bien moins que les API commerciales.

3. développement personnalisé

  • procédure:
    • modifications olmocr/pipeline.pyL'objectif est d'améliorer la qualité de l'information, en ajustant la logique de traitement.
    • l'interchangeabilité --model à l'aide d'un chemin d'accès au modèle personnalisé.
    • Soumettez votre code sur GitHub et participez au développement de la communauté.

mise en garde

  • exigences en matière de matérielLe GPU est nécessaire pour le fonctionnement local, la carte graphique NVIDIA est recommandée.
  • exigences en matière de réseauLe traitement en nuage nécessite une connexion réseau stable à AWS.
  • Conseils de débogage: Utilisation --stats Paramètre permettant d'afficher les statistiques de l'espace de travail à des fins de dépannage.

Grâce à ces étapes, vous pouvez vous familiariser rapidement avec olmOCR et effectuer un travail efficace, que vous travailliez avec un seul PDF ou un ensemble de données à grande échelle.

© déclaration de droits d'auteur

Postes connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...