Ein effizientes OCR-Modell basierend auf visueller Kompression, das Dokumentenbilder in Markdown-Format konvertiert und Multi-Resolution und mehrsprachige Erkennung unterstützt.

MITPythonDeepSeek-OCRdeepseek-ai 17.7k Last Updated: October 25, 2025

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:

  1. 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
  2. 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

  1. 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.
  2. 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

  1. Dokumentendigitalisierung: Effiziente Verarbeitung von wissenschaftlichen Arbeiten, Büchern, Berichten und anderen Dokumenten.
  2. Datensatzgenerierung: Erzeugung riesiger Trainingsdatensätze für große Sprachmodelle und visuelle Sprachmodelle.
  3. Kontextkomprimierung für Chatbots: Speicherung alter Gesprächsverläufe mit reduzierter Auflösung (ähnlich dem menschlichen Gedächtnisverfall).
  4. 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

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.

Star History Chart