Allgemeine Einführung
SmolDocling ist ein Visual Language Model (VLM), das vom ds4sd-Team in Zusammenarbeit mit IBM entwickelt wurde. Es basiert auf SmolVLM-256M und wird auf der Hugging Face Platform gehostet. Es ist das kleinste VLM der Welt mit nur 256M Parametern, und seine Kernfunktion besteht darin, Text aus Bildern zu extrahieren, Layouts, Codes, Formeln und Diagramme zu erkennen und strukturierte Dokumente im DocTags-Format zu erzeugen. smolDocling kann auf gewöhnlichen Geräten mit hoher Effizienz und geringem Ressourcenverbrauch ausgeführt werden. Das Entwicklerteam stellt dieses Modell als Open Source zur Verfügung, in der Hoffnung, mehr Menschen bei der Bewältigung von Dokumentenaufgaben zu helfen. Es ist Teil der SmolVLM-Familie, die sich auf die Konvertierung von Dokumenten konzentriert und für Benutzer geeignet ist, die komplexe Dokumente schnell verarbeiten müssen.
Funktionsliste
- Textextraktion (OCR)Erkennen und Extrahieren von Text aus Bildern, Unterstützung mehrerer Sprachen.
- Identifizierung des LayoutsAnalysieren Sie die Struktur des Dokuments im Bild, z. B. die Position von Überschriften, Absätzen, Tabellen.
- Code-ErkennungExtrahiert Codeblöcke und bewahrt Einrückung und Formatierung.
- FormelerkennungErkennen von mathematischen Formeln und Umwandlung in bearbeitbaren Text.
- DiagrammerkennungParsing: Analysiert den Inhalt des Diagramms im Bild und extrahiert die Daten.
- Verarbeitung von FormularenIdentifizieren Sie die Struktur der Tabelle und behalten Sie die Zeilen- und Spalteninformationen bei.
- DocTags AusgabeKonvertieren von Verarbeitungsergebnissen in ein einheitliches Beschriftungsformat zur einfachen Weiterverwendung.
- Hochauflösende BildverarbeitungUnterstützt die Eingabe von Bildern mit höherer Auflösung, um die Erkennungsgenauigkeit zu verbessern.
Hilfe verwenden
Die Nutzung von SmolDocling gliedert sich in zwei Teile: Installation und Betrieb. Nachfolgend finden Sie detaillierte Schritte, um den Benutzern einen schnellen Einstieg zu ermöglichen.
Ablauf der Installation
- Vorbereiten der Umgebung
- Stellen Sie sicher, dass Sie Python 3.8 oder höher auf Ihrem Computer installiert haben.
- Installieren Sie die Abhängigkeitsbibliothek, indem Sie den folgenden Befehl in das Terminal eingeben:
pip install torch transformers docling_core
- Wenn Sie einen Grafikprozessor haben, wird empfohlen, PyTorch mit CUDA-Unterstützung zu installieren, damit es schneller läuft. Prüfen Sie die Methodik:
torch importieren print("GPU available:" if torch.cuda.is_available() else "Using CPU")
- Modelle laden
- SmolDocling muss nicht manuell heruntergeladen werden, sondern ist direkt von Hugging Face per Code erhältlich.
- Vergewissern Sie sich, dass das Netzwerk geöffnet ist und dass die Modelldateien beim ersten Lauf automatisch heruntergeladen werden.
Verwendungsschritte
- Bereiten Sie das Bild vor
- Suchen Sie ein Bild, das Text enthält, z. B. ein gescanntes Dokument oder einen Screenshot.
- Laden Sie das Bild mit Code:
from transformers.image_utils import load_image image = load_image("Pfad zu Ihrem Bild.jpg")
- Initialisierung von Modellen und Prozessoren
- Laden Sie den Prozessor und das Modell von SmolDocling:
from transformers import AutoProcessor, AutoModelForVision2Seq DEVICE = "cuda" if torch.cuda.is_available() else "cpu" processor = AutoProcessor.from_pretrained("ds4sd/SmolDocling-256M-preview") model = AutoModelForVision2Seq.from_pretrained( "ds4sd/SmolDocling-256M-preview", torch_dtype=torch.bfloat16 ).to(DEVICE)
- Laden Sie den Prozessor und das Modell von SmolDocling:
- DocTags generieren
- Legen Sie die Eingaben fest und führen Sie das Modell aus:
messages = [{"role": "user", "content": [{"type": "image"}, {"type": "text", "text": "Convert this page to docling."}]}]] prompt = processor.apply_chat_template(messages, add_generation_prompt=True) inputs = processor(text=prompt, images=[image], return_tensors="pt").to(DEVICE) generated_ids = model.generate(**inputs, max_new_tokens=8192) doctags = processor.batch_decode(generated_ids[:, inputs.input_ids.shape[1]:], skip_special_tokens=False)[0].lstrip() print(doctags)
- Legen Sie die Eingaben fest und führen Sie das Modell aus:
- Konvertierung in gängige Formate
- DocTags in Markdown oder andere Formate konvertieren:
from docling_core.types.doc import DoclingDocument doc = DoclingDocument(name="Mein Dokument") doc.load_from_doctags(doctags) print(doc.export_to_markdown())
- DocTags in Markdown oder andere Formate konvertieren:
- Erweiterte Verwendung (optional)
- Handhabung mehrseitiger DokumenteDocTags: Mehrere Bilder in einer Schleife verarbeiten und dann zusammenführen.
- Leistung optimieren: Einstellungen
torch_dtype=torch.bfloat16
Speichereinsparung, GPU-Benutzer können Folgendes aktivierenblitz_aufmerksamkeit_2
Beschleunigung:model = AutoModelForVision2Seq.from_pretrained( "ds4sd/SmolDocling-256M-preview", torch_dtype=torch.bfloat16, _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager" ).to(DEVICE)
Bedienungskompetenz
- BildanforderungenBilder müssen klar und der Text lesbar sein, je höher die Auflösung, desto besser.
- AnpassungsparameterWenn das Ergebnis unvollständig ist, fügen Sie
max_neue_tokens
(Standardwert 8192). - StapeldateiMehrere Bilder können als Liste übergeben werden.
images=[image1, image2]
. - Verfahren zur InbetriebnahmeAusgabe von Zwischenergebnissen, z.B. print
Eingaben
Prüfen Sie, ob die Eingabe korrekt ist.
caveat
- Für den ersten Durchlauf ist ein Internetzugang erforderlich, danach kann es offline genutzt werden.
- Zu große Bilder können zu einem Speichermangel führen, daher empfiehlt es sich, sie zuzuschneiden und zu bearbeiten.
- Wenn Sie eine Fehlermeldung erhalten, überprüfen Sie, ob die Python-Version und die abhängigen Bibliotheken korrekt installiert sind.
Mit den oben genannten Schritten können Benutzer Bilder mit SmolDocling in strukturierte Dokumente umwandeln. Der gesamte Prozess ist einfach und für Anfänger und professionelle Nutzer geeignet.
Anwendungsszenario
- akademische Forschung
Konvertieren Sie gescannte Papiere in Text, extrahieren Sie Formeln und Tabellen zur einfachen Bearbeitung und Zitierung. - Programmierung Dokumentation
Konvertiert manuelle Bilder, die Code enthalten, in Markdown, wobei die Codeformatierung für Entwickler erhalten bleibt. - Büroautomation
Umgang mit gescannten Kopien von Verträgen, Berichten usw., Erkennung von Layout und Inhalt zur Verbesserung der Effizienz. - Pädagogische Unterstützung
Verwandeln Sie Bilder aus Lehrbüchern in bearbeitbare Dokumente, um Lehrern und Schülern die Organisation ihrer Notizen zu erleichtern.
QA
- Was ist der Unterschied zwischen SmolDocling und SmolVLM?
SmolDocling basiert auf einer optimierten Version von SmolVLM-256M, die sich auf die Verarbeitung von Dokumenten und die Ausgabe des DocTags-Formats konzentriert, während SmolVLM allgemeiner ist und Aufgaben wie die Bildbeschreibung unterstützt. - Welche Betriebssysteme werden unterstützt?
Windows, Mac und Linux werden unterstützt und können mit installiertem Python und abhängigen Bibliotheken ausgeführt werden. - Ist die Bearbeitung schnell?
Die Verarbeitung eines Bildes dauert nur wenige Sekunden auf einem normalen Computer und sogar noch schneller für GPU-Benutzer, normalerweise weniger als eine Sekunde. - Können Sie handschriftlichen Text verarbeiten?
Ja, aber die Ergebnisse hängen von der Klarheit der Handschrift ab, und es wird empfohlen, gedruckte Textbilder zu verwenden, um beste Ergebnisse zu erzielen.