Allgemeine Einführung
olmOCR ist ein Open-Source-Tool, das vom AllenNLP-Team am Allen Institute for Artificial Intelligence (AI2) entwickelt wurde. Es konzentriert sich auf die Konvertierung von PDF-Dateien in linearisierten Text und eignet sich besonders für die Vorbereitung von Datensätzen und das Training für groß angelegte Sprachmodelle (LLMs). Es unterstützt die Textextraktion aus komplexen PDF-Dokumenten, behält die natürliche Lesereihenfolge bei und kann Tabellen, Formeln und sogar handschriftliche Inhalte verarbeiten. Das Tool ist auf Effizienz ausgelegt und kann auf lokalen GPUs oder über AWS S3 für parallele Verarbeitung mit mehreren Knoten ausgeführt werden, was die Verarbeitungskosten erheblich reduziert. Nach offiziellen Angaben, seine Verarbeitungsgeschwindigkeit bis zu 3000 + Token pro Sekunde, die Kosten ist nur 1/32 von GPT-4o, ist sehr geeignet für Forscher und Entwickler, die mit einer großen Anzahl von PDF umgehen müssen. olmOCR mit Apache 2.0-Lizenz, Code, Modell Gewichte und Daten ist komplett Open Source, und ermutigt die Gemeinschaft, in der Verbesserung zu beteiligen.
Demo-Adresse: https://olmocr.allenai.org/
Funktionsliste
- PDF Textextraktion und LinearisierungPDF-Dateien in JSONL-formatierten Text im Dolma-Stil konvertieren, wobei die Lesereihenfolge erhalten bleibt.
- GPU-beschleunigtes ReasoningNutzung nativer GPUs und der Sglang-Technologie für eine effiziente Dokumentenverarbeitung.
- Parallele Verarbeitung mit mehreren KnotenUnterstützung für die Koordinierung von Aufgaben mit mehreren Knoten über AWS S3, geeignet für die Verarbeitung von Millionen von PDFs.
- Erkennung komplexer InhalteVerarbeitung von Tabellen, mathematischen Formeln und handgeschriebenem Text zur Ausgabe strukturierter Ergebnisse.
- Flexible Verwaltung des ArbeitsbereichsUnterstützung von lokalen oder Cloud-Arbeitsbereichen zur Speicherung von Verarbeitungsergebnissen und Zwischendaten.
- Open Source Ökologische UnterstützungBereitstellung von vollständigem Code und Dokumentation für sekundäre Entwicklung und Anpassung.
Hilfe verwenden
Ablauf der Installation
Die Installation von olmOCR muss in einer Umgebung erfolgen, die Python unterstützt, und es wird empfohlen, einen Grafikprozessor zu verwenden, um die Verarbeitungseffizienz zu verbessern. Nachfolgend finden Sie die detaillierten Schritte:
1. die Vorbereitung der Umwelt
- Installation von AnacondaWenn Sie Anaconda nicht haben, können Sie es auf der offiziellen Website herunterladen und installieren.
- Erstellen einer virtuellen Umgebung:
conda create -n olmocr python=3.11 conda activate olmocr
- Code-Repository klonen:
git clone https://github.com/allenai/olmocr.git cd olmocr
2. die Installation von Kernabhängigkeiten
- Installation der grundlegenden Abhängigkeiten:
pip install -e .
- Installation der GPU-Unterstützung (optional): Installieren Sie sglang und flashinfer, wenn Sie GPU-Beschleunigung benötigen:
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/
zur Kenntnis nehmenStellen Sie sicher, dass Ihr GPU-Treiber und Ihre CUDA-Version mit den oben genannten Abhängigkeiten kompatibel sind.
3. die Überprüfung der Installation
- Führen Sie in der Befehlszeile Folgendes aus
python -m olmocr.pipeline --help
Wenn die Hilfemeldung ausgegeben wird, war die Installation erfolgreich.
Verwendung
olmOCR bietet zwei Hauptanwendungsszenarien: lokale Verarbeitung einzelner Dateien und groß angelegte Verarbeitung in der Cloud. Im Folgenden wird der Betriebsprozess im Detail beschrieben.
Lokale Verarbeitung von einzelnen PDFs
- Vorbereiten von PDF-Dateien:
- Legen Sie die zu verarbeitende PDF-Datei in ein lokales Verzeichnis, z. B.
. /tests/gnarly_pdfs/horribleocr.pdf
.
- Legen Sie die zu verarbeitende PDF-Datei in ein lokales Verzeichnis, z. B.
- Verarbeitungsbefehl ausführen:
python -m olmocr.pipeline . /localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf
- Ergebnisse anzeigen:
- Wenn die Verarbeitung abgeschlossen ist, werden die Ergebnisse im JSON-Format in der Datei
. /lokalerArbeitsbereich
. - Der extrahierte Text wird im Dolma-ähnlichen JSONL-Format in der
. /localworkspace/results
Mitte.
- Wenn die Verarbeitung abgeschlossen ist, werden die Ergebnisse im JSON-Format in der Datei
- Anpassungsparameter (optional):
--Arbeiter
Legt die Anzahl der gleichzeitigen Arbeits-Threads fest, Standardwert 8.---target_longest_image_dim
Legt die maximale Seitenlänge des gerenderten Bildes fest, Standardwert 1024 Pixel.
Musterausgabe (Berechnung):
{ "text": "Molmo und PixMo:\nOpen Gewichte and Open Data\nfor State-of-the..." , "metadata": {"primary_language": "en", "is_table": false}}
Groß angelegte Verarbeitung in der Cloud (AWS S3)
- Konfigurieren der AWS-Umgebung:
- Stellen Sie sicher, dass Sie über ein AWS-Konto verfügen, und generieren Sie einen Zugangsschlüssel.
- Erstellen Sie zwei Buckets auf S3, zum Beispiel
s3://my_s3_bucket/pdfworkspaces/exampleworkspace
im Gesang antwortens3://my_s3_bucket/jakep/gnarly_pdfs/
.
- Hochladen von PDF-Dateien:
- Hochladen von PDF-Dateien auf
s3://my_s3_bucket/jakep/gnarly_pdfs/
.
- Hochladen von PDF-Dateien auf
- Starten einer Masterknotenaufgabe:
python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf
- Mit diesem Befehl wird ein Arbeitsvorrat angelegt und die Verarbeitung gestartet.
- Hinzufügen von Slave-Knoten:
- Läuft auf anderen Rechnern:
python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace
- Der Slave-Knoten holt die Aufgabe automatisch aus der Warteschlange und bearbeitet sie.
- Ergebnisse Ansicht:
- Die Ergebnisse werden in der Datei
s3://my_s3_bucket/pdfworkspaces/exampleworkspace/results
.
- Die Ergebnisse werden in der Datei
zur Kenntnis nehmenSie müssen die AWS-Befehlszeilenschnittstelle konfigurieren und sicherstellen, dass Sie über ausreichende Berechtigungen für den Zugriff auf den S3-Speicher-Bucket verfügen.
Verwendung des Bechers (AI2 interner Benutzer)
- Becherglas hinzufügen Parameter:
python -m olmocr.pipeline s3://my_s3_bucket/pdfworkspaces/exampleworkspace --pdfs s3://my_s3_bucket/jakep/gnarly_pdfs/*.pdf --beaker -- beaker_gpus 4
- operative Wirkung:
- Nachdem der Arbeitsbereich lokal vorbereitet wurde, werden automatisch 4 GPU-Arbeitsknoten im Cluster gestartet.
Featured Function Bedienung
1. die Bearbeitung komplexer Dokumente
- Verfahren:
- Hochladen von PDF-Dateien, die Tabellen oder Formeln enthalten.
- Verwendung des Standardmodells
alleai/olmOCR-7B-0225-vorschau
führen Sie den Verarbeitungsbefehl aus. - Überprüfen Sie die JSONL-Ausgabedatei, um sicherzustellen, dass die Tabellen und Formeln korrekt als Text geparst werden.
- auf etw. aufmerksam machen:: Anpassung bei schlechter Erkennung
---target_longest_image_dim
um die Bildauflösung zu erhöhen.
2. die Verarbeitung mit hohem Durchsatz
- Verfahren:
- Konfigurieren Sie eine Umgebung mit mehreren Knoten (wie AWS oder Beaker).
- aufsteigen
--Arbeiter
Parameter, um die eigenständige Parallelität zu verbessern. - Überwachen Sie die Verarbeitungsgeschwindigkeit, um 3000+ Token pro Sekunde zu gewährleisten.
- SchneidkanteDie Kosten liegen bei 190 $ pro Million Seiten und damit weit unter denen kommerzieller APIs.
3. kundenspezifische Entwicklung
- Verfahren:
- Änderungen
olmocr/pipeline.py
Anpassung der Verarbeitungslogik. - Austauschbarkeit
---Modell
unter Verwendung eines benutzerdefinierten Modellpfads. - Senden Sie Code an GitHub und beteiligen Sie sich an der Entwicklung der Community.
- Änderungen
caveat
- Hardware-Voraussetzung: Für den lokalen Betrieb ist ein Grafikprozessor erforderlich, eine NVIDIA-Grafikkarte wird empfohlen.
- NetzanforderungCloud-Verarbeitung: Die Cloud-Verarbeitung erfordert eine stabile Netzwerkverbindung zu AWS.
- Tipps zur Fehlersuche: Verwendung
--Statistiken
Parameter zur Anzeige von Arbeitsbereichsstatistiken für die Fehlersuche.
Mit diesen Schritten können Sie sich schnell in olmOCR einarbeiten und Ihre Arbeit effizient erledigen, egal ob Sie mit einem einzelnen PDF oder einem großen Datensatz arbeiten.