Ein effizientes OCR-Modell basierend auf visueller Kompression, das Dokumentenbilder in Markdown-Format konvertiert und Multi-Resolution und mehrsprachige Erkennung unterstützt.
DeepSeek-OCR Projekt – Detaillierte Vorstellung
Projektübersicht
DeepSeek-OCR ist ein innovatives Open-Source-Modell zur optischen Zeichenerkennung (OCR), das vom DeepSeek AI Team entwickelt wurde. Es konzentriert sich auf die Erforschung der Grenzen der visuellen Textkomprimierung. Das Projekt untersucht die Rolle visueller Encoder aus einer großsprachmodellzentrierten Perspektive, indem es die visuelle Wahrnehmung als Medium zur Informationskomprimierung nutzt. Dies ermöglicht die Verarbeitung großer, komplexer Dokumente mit deutlich weniger Tokens.
Hauptmerkmale
- Effiziente Komprimierung: Erreicht eine Token-Komprimierungsrate von 7-20x und behält bei 10-facher Komprimierung eine Dekodierungsgenauigkeit von ca. 97 % bei.
- Unterstützung mehrerer Auflösungen: Unterstützt verschiedene native Auflösungen von 512×512 bis 1280×1280.
- Hochleistungsverarbeitung: Eine einzelne A100-40G GPU kann täglich über 200.000 Seiten Trainingsdaten generieren.
- Mehrsprachige Unterstützung: Unterstützt die Texterkennung in etwa 100 Sprachen.
- Vielseitigkeit: Unterstützt nicht nur die Textextraktion, sondern versteht auch Diagramme, chemische Formeln und einfache Grafiken.
Technische Architektur
Modellkomponenten
DeepSeek-OCR besteht aus zwei Kernkomponenten:
DeepEncoder (Visueller Encoder)
- Parameteranzahl: ca. 380 Millionen
- Architekturkombination:
- SAM-ViTDet (Metas 80-Millionen-Parameter-Segmentierungsmodell) für die lokale Bildwahrnehmung
- 2-schichtiger Faltungskompressor, der eine 16-fache Token-Reduzierung erreicht
- CLIP ViT-300M (OpenAIs 300-Millionen-Parameter-Modell) für die globale visuelle Wissensaggregation
DeepSeek3B-MoE Decoder
- Aktive Parameter: ca. 570 Millionen
- Gesamtparameter: 3B (Mixture-of-Experts-Modellarchitektur)
- Funktion: Generiert Ergebnisse basierend auf Bild-Tokens und Prompt-Informationen
Funktionsweise
Bildverarbeitungsprozess:
- Ein 1024×1024 Pixel großes Bild erzeugt initial 4096 Tokens.
- Das SAM-Modul führt eine Fenster-Aufmerksamkeitsverarbeitung durch.
- Der Kompressor reduziert die Tokens auf 256 (16-fache Komprimierung).
- Das CLIP-Modul führt eine globale Aufmerksamkeitsverarbeitung durch.
- Die endgültige Ausgabe sind komprimierte visuelle Tokens.
Auflösungsmodi:
Native Auflösungsmodi:
- Tiny: 512×512 (64 visuelle Tokens)
- Small: 640×640 (100 visuelle Tokens)
- Base: 1024×1024 (256 visuelle Tokens)
- Large: 1280×1280 (400 visuelle Tokens)
Dynamische Auflösungsmodi:
- Gundam: n×640×640 + 1×1024×1024 (kombiniert globale und lokale Sichtfelder)
Leistungsmerkmale
Benchmark-Ergebnisse
- Fox Benchmark: Bei 10-facher Komprimierungsrate wird eine Dekodierungsgenauigkeit von ca. 97 % erreicht.
- OmniDocBench Benchmark:
- Übertrifft GOT-OCR2.0 (256 Tokens/Seite) mit nur 100 visuellen Tokens.
- Übertrifft MinerU2.0 (durchschnittlich über 6000 Tokens pro Seite) mit weniger als 800 visuellen Tokens.
Trainings- und Inferenzleistung
- Trainingsgeschwindigkeit:
- Reine Textdaten: 90B Tokens pro Tag
- Multimodale Daten: 70B Tokens pro Tag
- Produktionsleistung: Ein einzelner A100-40G Knoten kann über 200.000 Seiten pro Tag verarbeiten.
- Parallelverarbeitungsleistung: PDF-Verarbeitung ca. 2500 Tokens/s (A100-40G).
Anwendungsbereiche
Hauptfunktionen
DeepSeek-OCR unterstützt verschiedene Prompt-Modi:
# Dokument in Markdown konvertieren
prompt = "<image>\n<|grounding|>Convert the document to markdown."
# Allgemeine OCR
prompt = "<image>\n<|grounding|>OCR this image."
# Freie OCR (ohne Layout)
prompt = "<image>\nFree OCR."
# Diagrammanalyse
prompt = "<image>\nParse the figure."
# Detaillierte Bildbeschreibung
prompt = "<image>\nDescribe this image in detail."
# Textlokalisierung
prompt = "<image>\nLocate <|ref|>xxxx<|/ref|> in the image."
Praktische Anwendungen
- Dokumentendigitalisierung: Effiziente Verarbeitung von wissenschaftlichen Arbeiten, Büchern, Berichten und anderen Dokumenten.
- Datensatzgenerierung: Erzeugung riesiger Trainingsdatensätze für große Sprachmodelle und visuelle Sprachmodelle.
- Kontextkomprimierung für Chatbots: Speicherung alter Gesprächsverläufe mit reduzierter Auflösung (ähnlich dem menschlichen Gedächtnisverfall).
- Strukturierte Datenextraktion:
- Konvertierung von Finanzdiagrammen in strukturierte Daten.
- Automatische Generierung von Markdown-Tabellen und -Grafiken.
- Unterstützung der Erkennung chemischer Formeln (SMILES-Format).
Installation und Nutzung
Systemanforderungen
- Python 3.12.9
- CUDA 11.8
- PyTorch 2.6.0
- Transformers 4.46.3
Installationsschritte
# Repository klonen
git clone https://github.com/deepseek-ai/DeepSeek-OCR.git
cd DeepSeek-OCR
# Conda-Umgebung erstellen
conda create -n deepseek-ocr python=3.12.9 -y
conda activate deepseek-ocr
# Abhängigkeiten installieren
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118
pip install vllm-0.8.5+cu118-cp38-abi3-manylinux1_x86_64.whl
pip install -r requirements.txt
pip install flash-attn==2.7.3 --no-build-isolation
Anwendungsbeispiele
Methode 1: Verwendung von Transformers
from transformers import AutoModel, AutoTokenizer
import torch
import os
os.environ["CUDA_VISIBLE_DEVICES"] = '0'
model_name = 'deepseek-ai/DeepSeek-OCR'
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
model_name,
_attn_implementation='flash_attention_2',
trust_remote_code=True,
use_safetensors=True
)
model = model.eval().cuda().to(torch.bfloat16)
# Inferenzparameter konfigurieren
prompt = "<image>\n<|grounding|>Convert the document to markdown."
image_file = 'your_image.jpg'
output_path = 'your/output/dir'
# Inferenz ausführen
res = model.infer(
tokenizer,
prompt=prompt,
image_file=image_file,
output_path=output_path,
base_size=1024,
image_size=640,
crop_mode=True,
save_results=True,
test_compress=True
)
Methode 2: Verwendung von vLLM (Hochleistungs-Inferenz)
# Konfigurationsdatei ändern
cd DeepSeek-OCR-master/DeepSeek-OCR-vllm
# config.py bearbeiten, um INPUT_PATH/OUTPUT_PATH festzulegen
# Bild-OCR ausführen (Streaming-Ausgabe)
python run_dpsk_ocr_image.py
# PDF-OCR ausführen (hohe Parallelität)
python run_dpsk_ocr_pdf.py
# Batch-Evaluierung
python run_dpsk_ocr_eval_batch.py
Technologische Innovationen
Paradigma der visuellen Textkomprimierung
DeepSeek-OCR schlägt ein neues Paradigma der visuellen Textkomprimierung vor:
- Kernidee: Text wird in ein Bild umgewandelt und durch einen visuellen Encoder verarbeitet; semantische Informationen werden nicht mehr in Form von Text-Tokens gespeichert.
- Vorteile:
- Geringerer Speicherverbrauch: Visuelle Tokens sind kompakter.
- Schnellere Inferenzgeschwindigkeit: Weniger Tokens = weniger Rechenaufwand.
- Natürlicher Vergessensmechanismus: Alter Kontext kann heruntergesampelt werden.
- Einfachere multimodale Fusion: Das Modell betrachtet Text bereits als Bild.
Unterschiede zum traditionellen OCR
Traditionelles OCR verwendet eine Pipeline-Architektur (Erkennung → Identifizierung → Nachbearbeitung), während DeepSeek-OCR eine End-to-End-Architektur für visuelle Sprachmodelle verwendet, die das OCR-System grundlegend vereinfacht.
Ressourcenlinks
- GitHub-Repository: https://github.com/deepseek-ai/DeepSeek-OCR
- Hugging Face Modell: https://huggingface.co/deepseek-ai/DeepSeek-OCR
- Technische Veröffentlichung: DeepSeek_OCR_paper.pdf
- Lizenz: MIT License
Danksagungen
Das DeepSeek-OCR-Projekt dankt den folgenden Open-Source-Projekten für ihre Beiträge:
- Vary
- GOT-OCR2.0
- MinerU
- PaddleOCR
- OneChart
- Slow Perception
sowie den Benchmark-Datensätzen: Fox und OmniDocBench.
Zusammenfassung
DeepSeek-OCR stellt eine bedeutende Innovation in der OCR-Technologie dar, indem es die Herausforderungen der Langkontextverarbeitung großer Sprachmodelle durch ein visuelles Komprimierungsparadigma löst. Seine effiziente Token-Komprimierungsfähigkeit (7-20x), die hervorragende Genauigkeit (97 % Präzision bei 10-facher Komprimierung) und die leistungsstarke Verarbeitungskapazität (200.000 Seiten pro Tag auf einer einzelnen GPU) machen es zur idealen Wahl für die Dokumentendigitalisierung, die Generierung von KI-Trainingsdaten und multimodale Anwendungen.
Der Open-Source-Charakter des Projekts und die umfassende Dokumentation erleichtern die Integration in verschiedene Anwendungsszenarien und bieten Forschern und Entwicklern ein leistungsstarkes Werkzeug, um die Grenzen der visuellen Textkomprimierung zu erkunden.