Baidu veröffentlicht Unlimited OCR 2 für hundertseitige Dokumente

Baidu hat mit Unlimited OCR 2 ein 3,34 Milliarden Parameter großes OCR-Modell unter MIT-Lizenz veröffentlicht. Es liest Bücher, Berichte und Geschäftsunterlagen mit hunderten Seiten in einer einzigen Anfrage. Möglich macht das ein sparsames Aufmerksamkeitsverfahren namens SR-SWA, das den Rechenaufwand pro Schritt fast konstant hält.

Modell-Releases Selbst ausprobieren 27. Okt. 2026 5 Min. Lesezeit Quelle: MarkTechPost
Symbolbild, KI-generiert

Worum es geht

Baidu hat Unlimited OCR 2 veröffentlicht, ein Open-Source-Modell zur Texterkennung (OCR, englisch Optical Character Recognition) für sehr lange Dokumente. Das Modell hat 3,34 Milliarden Parameter – grob gesagt die Stellschrauben, die es beim Training gelernt hat. Es wandelt geordnete Seitenbilder in strukturierten Text um: Fließtext, Tabellen, Formeln, Abbildungen, Überschriften und Lesereihenfolge. Bücher, Geschäftsberichte oder Eingaben bei Behörden mit hunderten Seiten sollen in einer einzigen Anfrage verarbeitet werden. Die Gewichte stehen unter der MIT-Lizenz, der Code liegt auf GitHub. Das Modell ist der Nachfolger von Unlimited-OCR, das im Juni 2026 erschien und DeepSeek-OCR weiterentwickeln sollte.

Aufbau des Modells

Unlimited OCR 2 ist ein Vision-Language-Modell, also ein Modell, das Bilder und Text gemeinsam verarbeitet. Die Konfiguration folgt dem Layout von DeepSeek-OCR: Ein Bildencoder aus SAM ViT-B und CLIP-L speist einen Decoder mit 12 Schichten, der als Mixture-of-Experts (MoE) gebaut ist. Dabei wird jedes Token nur an einen Teil der „Experten“ geleitet, hier 6 von 64, plus 2 gemeinsam genutzte Experten. Im DeepSeek-OCR-Paper heißt dieser Decoder DeepSeek3B-MoE-A570M; für Version 2 nennt Baidu keine Zahl aktiver Parameter. Im Mehrseitenmodus kostet jede Seite 273 Bild-Tokens, 100 Seiten erzeugen also schon 27.300 Eingabe-Tokens, bevor das Modell eine Ausgabe schreibt.

Wie SR-SWA funktioniert

Normale Aufmerksamkeit (Attention) wächst quadratisch mit der Länge der Eingabe: Bei jedem neu erzeugten Token muss das Modell einen immer längeren Zwischenspeicher (KV-Cache) durchsuchen. Das macht lange Dokumente langsam und speicherhungrig.

Baidus Lösung heißt SR-SWA (Sparse Reference Sliding Window Attention). Sie komprimiert die Aufmerksamkeit zwischen Text und Bild auf eine feste Menge von Arbeitsreferenzen. Das Beispiel der Modellkarte nennt 512 Tokens. Die Konfiguration kombiniert ein lokales Fenster von 128 Tokens mit einer Top-16-Auswahl über Blöcke von 32 Tokens – also 16 Blöcke à 32 Tokens, passend zum 512er-Budget. Latenz und Speicher pro Schritt bleiben damit nahezu konstant, auch wenn das Dokument wächst. Baidu spricht von „unlimited-horizon“-Parsing innerhalb eines endlichen Kontextfensters. Die Bildkodierung und die Gesamtlaufzeit steigen aber weiterhin mit der Seitenzahl.

Benchmarks

Baidu testet auf zwei Benchmarks: MPDocBench mit dutzenden Seiten pro Dokument und MarathonDocBench mit hunderten. MPDocBench-Parse ist öffentlich und umfasst 433 Dokumente mit 3.246 Seiten. Eine öffentliche Version von MarathonDocBench konnte MarkTechPost nicht finden.

Laut Baidus Diagramm erreicht Unlimited OCR 2 auf MPDocBench 84,6 Punkte, gefolgt von Qwen3.8-Max (78,3) und Qwen-3.8-Flash-Next (77,4). Auf MarathonDocBench sind es 77,1, dahinter Kimi-K3 mit 33,7 und Gemini-3.8-Flash mit 28,6. Auffällig ist der Einbruch anderer Modelle: Qwen3.8-Max fällt von 78,3 auf 22,9, Unlimited OCR 2 nur um 7,5 Punkte. Der Vorgänger kommt auf MarathonDocBench auf 0,0.

Teilwert MPDocBench MarathonDocBench
Text 94,8 89,6
Formeln 89,4 87,9
Lesereihenfolge 92,3 85,3
Tabellen 87,8 74,8
Überschriftenhierarchie 60,1 48,2

Bei einzelnen Metriken ist der Vorsprung auf MPDocBench knapp: Qwen3.8-Max erreicht 94,3 bei Text und 89,2 bei Formeln.

Vergleich mit anderen offenen OCR-Modellen

Unlimited OCR 2 Unlimited-OCR DeepSeek-OCR-2 PaddleOCR-VL-1.6
Entwickler Baidu Baidu DeepSeek Baidu PaddlePaddle
Parameter 3,34 Mrd. 3,34 Mrd. 3,39 Mrd. 0,96 Mrd.
Lizenz MIT MIT Apache 2.0 Apache 2.0
Langdokument-Mechanismus SR-SWA Multi-Page ohne SR-SWA nicht genannt nicht genannt
MPDocBench 84,6 61,9 nicht berichtet nicht berichtet
MarathonDocBench 77,1 0,0 nicht berichtet nicht berichtet

Was du zum Ausprobieren brauchst

Das Modell läuft auf einer einzelnen CUDA-Grafikkarte in BF16. Baidu testete auf einer NVIDIA A800 mit 80 GB; die Gewichte sind rund 6,7 GB groß, für lange Dokumente wird zusätzlicher Speicher für Zwischenspeicher und Bilder fällig. Eine Karte mit 12–16 GB könnte für kurze Dokumente reichen, das ist aber nicht von Baidu belegt. Plane einige GB freien Speicherplatz ein. Für Mac oder reinen CPU-Betrieb macht die Quelle keine Angaben. Google Colab mit GPU ist denkbar, aber nicht bestätigt.

Die Modellkarte nennt Transformers für schnelle Tests und SGLang für den Serverbetrieb. In Transformers verarbeitet infer eine Seite mit dynamischer Kachelung („Gundam-Modus“), infer_multi alle Seiten eines Dokuments in einer Anfrage, sodass seitenübergreifender Kontext erhalten bleibt. Das Laden verlangt trust_remote_code=True, wodurch Python-Code aus dem Repository ausgeführt wird. Für SGLang nutzt Baidu ein angepasstes Wheel statt des Upstream-Pakets. Das Beispiel verarbeitet 10 Seiten pro Fenster und übernimmt das KV-Ende des vorigen Fensters. Kleinere Fenster senken den Spitzenspeicher, schwächen aber das seitenübergreifende Zusammenführen. Eine Standardeinstellung beim Bias kann laut Baidu eine Allokation von 462 MiB auslösen und zu Speichermangel führen.

Einordnung

Für alle, die lange PDFs oder Scans – Verträge, Berichte, Bücher – ohne Aufteilen digitalisieren wollen, ist ein kleines, frei lizenziertes Modell mit konstantem Decodierungsaufwand interessant. Der große Abstand zu Modellen wie Kimi-K3 und Qwen3.8-Max auf hundertseitigen Dokumenten wäre bemerkenswert, ist aber bislang unabhängig nicht überprüft: Alle Zahlen sind Herstellerangaben und liegen nur als Bild vor, MarathonDocBench ist nicht öffentlich auffindbar. Eine klare Schwäche ist die Überschriftenhierarchie (48,2), und die Zahl aktiver Parameter bleibt offen. Der Aufwand für Bildkodierung steigt weiter mit der Seitenzahl, „unlimited“ gilt also nur eingeschränkt. Der Betrieb mit einem angepassten SGLang-Build ist zudem weniger bequem als bei Vorgängern, die vLLM unterstützen.

Quellen

#ocr#baidu#open-source#dokumentenanalyse#vision-language
Originalquelle lesen

Selbst ausprobieren: Unlimited OCR 2

Schritt für Schritt erklärt, auch ohne Vorkenntnisse – auf deinem Rechner oder kostenlos im Browser.

Was kann ich damit machen?

Das Modell wandelt Seitenbilder von Dokumenten in strukturierten Text um, inklusive Tabellen, Formeln, Überschriften und Lesereihenfolge. Es kann ganze Bücher oder Berichte mit hunderten Seiten in einer Anfrage verarbeiten und behält dabei seitenübergreifenden Kontext.

Für wen lohnt es sich?

Lohnt sich für Entwickler und Technik-Interessierte, die lange PDFs oder Scans digitalisieren wollen und eine CUDA-GPU haben. Weniger geeignet für Einsteiger ohne GPU oder für Fälle, in denen die Überschriftenstruktur zuverlässig sein muss.

Größe3,3 Mrd. Parameter
Download6,7 GB (bei 100 MBit/s ca. 9 Min.)
Lizenzmit
ArtBild + Text (versteht Bilder)

Was dein Rechner braucht

Grafikkarte (NVIDIA) mind. 9 GB VRAMBerechnet, nicht gemessen: Die Gewichte sind 6,7 GB groß und werden in bf16 geladen, also 6,7 × 1,2 + 1 ≈ 9 GB. Der Hersteller nennt keinen Wert und testete auf einer A800 mit 80 GB; mehr Speicher hilft bei langen Dokumenten mit vielen Seiten.
Mac (Apple Silicon M1–M5) nicht unterstütztDie Anleitung der Quelle nutzt zwingend eine NVIDIA-Grafikkarte (CUDA, im Code steht .cuda()). Auf dem Mac läuft das so nicht. Probiere stattdessen die Online-Demo auf Hugging Face (Space baidu/Unlimited-OCR) oder Google Colab mit NVIDIA-GPU.
Speicherplatz ca. 8,7 GB freiModell-Download plus Programme
Im Browser Online-Demo vorhandenauf Hugging Face ausprobieren, ganz ohne Installation

Es gibt eine Variante mit 3,34 Mrd. Parametern in BF16 (ca. 6,7 GB). Quantisierte Fassungen nennt die Quelle nicht. Für kurze Dokumente genügt vermutlich eine Karte mit 12–16 GB, für lange Dokumente eher eine große GPU wie die von Baidu getestete A800 mit 80 GB.

  • Läuft auf einer einzelnen CUDA-GPU in BF16; Baidu testete auf NVIDIA A800 (80 GB).
  • BF16-Gewichte belegen etwa 6,7 GB; für Bilder und KV-Cache kommt bei langen Dokumenten mehr dazu.
  • Jede Seite kostet 273 Bild-Tokens, die maximale Positionslänge beträgt 131.072 Tokens.
  • Kleinere Fenster (weniger Seiten pro Durchlauf) senken den Spitzenspeicher, schwächen aber das seitenübergreifende Zusammenführen.
  • Angaben zu CPU- oder Apple-Silicon-Betrieb macht die Quelle nicht.
Wie finde ich heraus, was mein Rechner hat?
  • Windows: Strg + Umschalt + Esc drücken → Task-Manager → Reiter Leistung → links GPU anklicken. Unten steht Dedizierter GPU-Speicher (das ist dein VRAM). Den Arbeitsspeicher findest du unter Arbeitsspeicher.
  • Mac: Apfel-Menü oben links → Über diesen Mac. Dort stehen Chip (z. B. M2) und Speicher (z. B. 16 GB). Bei Apple-Chips teilen sich Grafik und Prozessor diesen Speicher.
  • Linux: Im Terminal nvidia-smi eingeben (zeigt Grafikkarte und Speicher) und free -h für den Arbeitsspeicher.

Anleitung

Dieses Modell läuft mit einem eigenen Programm seiner Entwickler (baidu/Unlimited-OCR auf GitHub). Die Befehle unten stammen aus der Model Card und der Anleitung der Entwickler.

Im Browser (ohne Installation)

Die Entwickler haben eine Online-Demo auf Hugging Face. Dort kannst du das Modell sofort ausprobieren, ohne etwas zu installieren. Manchmal musst du kurz warten, bis die Demo aufgewacht ist.

Online-Demo öffnen

Windows 10 / 11

Windows 10 / 11: nicht offiziell getestet. Die Quelle nennt nur Linux mit NVIDIA A800 als getestet. Unter Windows sollte es mit einer NVIDIA-Grafikkarte und passendem Treiber gehen, ist aber nicht geprüft. Alternativ: WSL2 mit Linux nutzen oder die Online-Demo auf Hugging Face (Space baidu/Unlimited-OCR).

  1. Voraussetzungen prüfen. Du brauchst Python 3.10, eine NVIDIA-Grafikkarte mit aktuellem NVIDIA-Treiber (mit CUDA-Unterstützung) und ca. 10 GB freien Platz. Öffne PowerShell und prüfe, ob Python und die Grafikkarte erkannt werden.
    py -3.10 --version
    nvidia-smi
  2. Arbeitsordner anlegen. Lege einen neuen, leeren Ordner an und wechsle hinein. Dort liegen später alle Dateien.
    mkdir unlimited-ocr
    cd unlimited-ocr
  3. Virtuelle Umgebung anlegen. Eine virtuelle Umgebung (venv) hält die Pakete getrennt vom Rest deines Systems. Falls PowerShell das Aktivieren blockiert, hilft einmalig der Set-ExecutionPolicy-Befehl.
    py -3.10 -m venv .venv
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
    .venv\Scripts\Activate.ps1
  4. Pakete installieren. Das sind genau die Versionen, mit denen der Hersteller getestet hat. Der Download ist groß und dauert etwas. Wenn danach CUDA nicht erkannt wird, braucht es die CUDA-Variante von torch.
    pip install torch==2.13.0 torchvision pillow transformers==4.52.1 huggingface-hub==0.36.0 tokenizers==0.21.4 addict==2.4.0 einops==0.8.2 easydict==1.13
  5. Modell herunterladen. Das Modell ist etwa 6,7 GB groß. Der Download klappt auch automatisch beim ersten Start, so siehst du aber den Fortschritt.
    hf download baidu/Unlimited-OCR-2
  6. Eigenes Seitenbild bereitlegen. Mache ein Foto oder einen Screenshot einer Dokumentseite und speichere es im Arbeitsordner als page_1.jpg.
  7. Skript demo.py speichern. Speichere diesen Code als demo.py im Arbeitsordner. Er lädt das Modell und liest die Seite aus.
    import torch
    from transformers import AutoModel, AutoTokenizer
    
    model_name = "baidu/Unlimited-OCR-2"
    tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
    model = AutoModel.from_pretrained(model_name, trust_remote_code=True, use_safetensors=True,
                                      torch_dtype=torch.bfloat16).eval().cuda()
    
    text = model.infer(tokenizer, image_file="page_1.jpg",
                       output_path="output/single", save_results=True)
    print(text)
  8. Skript starten. Der erste Start dauert, weil das Modell in den Grafikspeicher geladen wird. Danach erscheint der erkannte Text.
    python demo.py
  9. Ergebnis. Im Ordner output/single liegt das Ergebnis der Texterkennung für page_1.jpg, und der erkannte Text erscheint auch im Terminal.

macOS

macOS: nicht unterstützt. Die Anleitung der Quelle nutzt zwingend eine NVIDIA-Grafikkarte (CUDA, im Code steht .cuda()). Auf dem Mac läuft das so nicht. Probiere stattdessen die Online-Demo auf Hugging Face (Space baidu/Unlimited-OCR) oder Google Colab mit NVIDIA-GPU.

Linux

Linux: unterstützt. Getestet ist die Transformers-Variante mit Python 3.10 auf einer NVIDIA A800 (80 GB). Eine NVIDIA-Grafikkarte mit CUDA ist nötig. Für Dauerbetrieb als Server empfiehlt der Hersteller SGLang, für den ersten Test reicht Transformers.

  1. Voraussetzungen prüfen. Du brauchst Python 3.10 samt venv-Modul, eine NVIDIA-Grafikkarte mit installiertem NVIDIA-Treiber und ca. 10 GB freien Platz. Prüfe, ob Python und die Grafikkarte erkannt werden.
    python3.10 --version
    nvidia-smi
  2. Arbeitsordner anlegen. Lege einen neuen, leeren Ordner an und wechsle hinein. Dort liegen später alle Dateien.
    mkdir unlimited-ocr
    cd unlimited-ocr
  3. Virtuelle Umgebung anlegen. Eine virtuelle Umgebung (venv) hält die Pakete getrennt vom Rest deines Systems.
    python3.10 -m venv .venv
    source .venv/bin/activate
  4. Pakete installieren. Das sind genau die Versionen, mit denen der Hersteller getestet hat. Der Download ist groß und dauert etwas.
    pip install torch==2.13.0 torchvision pillow transformers==4.52.1 huggingface-hub==0.36.0 tokenizers==0.21.4 addict==2.4.0 einops==0.8.2 easydict==1.13
  5. Modell herunterladen. Das Modell ist etwa 6,7 GB groß. Der Download klappt auch automatisch beim ersten Start, so siehst du aber den Fortschritt.
    hf download baidu/Unlimited-OCR-2
  6. Eigenes Seitenbild bereitlegen. Mache ein Foto oder einen Screenshot einer Dokumentseite und speichere es im Arbeitsordner als page_1.jpg.
  7. Skript demo.py speichern. Speichere diesen Code als demo.py im Arbeitsordner. Er lädt das Modell und liest die Seite aus.
    import torch
    from transformers import AutoModel, AutoTokenizer
    
    model_name = "baidu/Unlimited-OCR-2"
    tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
    model = AutoModel.from_pretrained(model_name, trust_remote_code=True, use_safetensors=True,
                                      torch_dtype=torch.bfloat16).eval().cuda()
    
    text = model.infer(tokenizer, image_file="page_1.jpg",
                       output_path="output/single", save_results=True)
    print(text)
  8. Skript starten. Der erste Start dauert, weil das Modell in den Grafikspeicher geladen wird. Danach erscheint der erkannte Text.
    python demo.py
  9. Ergebnis. Im Ordner output/single liegt das Ergebnis der Texterkennung für page_1.jpg, und der erkannte Text erscheint auch im Terminal.

Das kannst du ausprobieren

Wandle alle Seiten dieses 120-seitigen Geschäftsberichts in strukturiertes Markdown um, inklusive Tabellen.
Extrahiere die Formeln und ihre Lesereihenfolge aus diesem eingescannten Lehrbuchkapitel.
Parse dieses 40-seitige Vertragsdokument und gib Überschriften und Absätze in der richtigen Reihenfolge aus.

Wenn es hakt

Beim Laden mit Transformers ist trust_remote_code=True nötig, wodurch Code aus dem Repository ausgeführt wird – Quelle vorher prüfen.

Für SGLang braucht man ein angepasstes Wheel von Baidu, nicht die reguläre SGLang-Version.

Ein Standard-Bias kann eine Allokation von 462 MiB auslösen und Speichermangel verursachen; Baidus Hinweise in der Modellkarte beachten.

Für mehrseitige Dokumente infer_multi statt infer verwenden, sonst geht der Seitenkontext verloren.

„out of memory“, Absturz oder der Rechner hängt

Das Modell ist zu groß für deinen Grafikspeicher. Nimm eine kleinere Variante aus der Tabelle oben und schließe andere Programme, vor allem Spiele und Browser mit vielen Tabs.

Es läuft, aber extrem langsam

Wahrscheinlich rechnet der Prozessor statt der Grafikkarte. Bei Ollama zeigt ollama ps in der Spalte PROCESSOR, wie viel auf der GPU läuft. Steht dort „100% CPU“, Grafiktreiber aktualisieren oder eine kleinere Variante nehmen, die komplett in den Grafikspeicher passt.

„ollama“ bzw. „python“ wird nicht gefunden

Das Eingabefenster schließen und neu öffnen, damit es das frisch installierte Programm kennt. Bei Python unter Windows: neu installieren und das Häkchen Add python.exe to PATH setzen.

Windows: „Die Ausführung von Skripts ist auf diesem System deaktiviert“

Das Skript genau mit dem Befehl oben starten: powershell -ExecutionPolicy Bypass -File try_windows.ps1. Das erlaubt die Ausführung nur dieses einen Mal.

Fehlermeldung beim Laden des Modells (Version, „trust_remote_code“, unbekannte Architektur)

Ganz neue Modelle brauchen oft die neueste Programmversion. Bei Ollama: Ollama aktualisieren. Bei Python: pip install -U transformers in der aktivierten Umgebung. Die Model Card nennt meist die genaue Version.

Skripte und Notebook erzeugt Tokenstrom automatisch. Bitte vor dem Ausführen kurz ansehen – sie sind lesbarer Klartext. Lizenz des Modells beachten: mit.

Frag den KI-Assistenten

Fragen zu diesem Artikel, zur Installation oder zu Hintergründen? Unser Assistent kennt diese Seite und läuft auf unserem eigenen Rechner, nicht in einer fremden Cloud.

Verbinde …

Der Assistent ist eine KI (Gemma 4) und kann sich irren – wichtige Angaben bitte in der Quelle prüfen. Fragen werden nur zum Beantworten genutzt und nach einer Stunde gelöscht. Bitte keine persönlichen Daten eingeben.

Kommentare

Was meinst du dazu? Schon ausprobiert? Schreib es hier, ohne Anmeldung.

  1. Kommentare werden geladen …

Kommentare sind öffentlich. Links sind nicht erlaubt, beleidigende Beiträge löschen wir. Deinen eigenen Kommentar kannst du in diesem Browser jederzeit wieder löschen. Mehr dazu in der Datenschutzerklärung.