概要
DeepSeek-OCRは、視覚エンコーダの役割をLLM中心の視点から探究するためのモデル。 多様な画像・PDF文書をOCRし、Markdown変換などに対応。 CUDA11.8+PyTorch2.6.0環境で動作し、vLLM・Transformers両推論方式をサポート。 複数の解像度・モードに対応し、実用的なプロンプト例も用意。 導入・推論手順や依存パッケージの詳細な説明を提供。
DeepSeek-OCR概要と特徴
- DeepSeek-OCR は、視覚エンコーダのLLM統合観点からの研究用OCRモデル
- 画像・PDF文書 のテキスト認識(OCR)機能
- Markdown変換 など多様な出力に対応
- CUDA11.8+PyTorch2.6.0 環境での動作確認済み
- vLLM ・ Transformers 両推論方式サポート
インストール手順
-
リポジトリのクローン
- git clone https://github.com/deepseek-ai/DeepSeek-OCR.git
- DeepSeek-OCRディレクトリへ移動
-
conda環境の作成
- conda create -n deepseek-ocr python=3.12.9 -y
- conda activate deepseek-ocr
-
パッケージのインストール
- 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
-
vLLMとTransformersの混在について
- vLLM 0.8.5+cu118はtransformers>=4.51.1を要求
- 両方を同一環境で動作させる場合、インストールエラーは無視可能
vLLMによる推論
-
設定ファイルの編集
- DeepSeek-OCR-master/DeepSeek-OCR-vllm/config.pyでINPUT_PATH/OUTPUT_PATH等を設定
-
画像OCRの実行
- cd DeepSeek-OCR-master/DeepSeek-OCR-vllm
- python run_dpsk_ocr_image.py
-
PDF OCR(並列処理)
- python run_dpsk_ocr_pdf.py
- A100-40Gで約2500tokens/s
-
ベンチマーク用バッチ評価
- python run_dpsk_ocr_eval_batch.py
Transformersによる推論
-
Pythonコード例
- from transformers import AutoModel, AutoTokenizer
- import torch, 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)
- prompt = "<image>\n<|grounding|>Convert the document to markdown."
- image_file = 'your_image.jpg'
- output_path = 'your/output/dir'
- 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)
-
コマンドライン実行例
- cd DeepSeek-OCR-master/DeepSeek-OCR-hf
- python run_dpsk_ocr.py
サポート解像度・モード
-
ネイティブ解像度モード
- Tiny: 512×512(64 vision tokens)
- Small: 640×640(100 vision tokens)
- Base: 1024×1024(256 vision tokens)
- Large: 1280×1280(400 vision tokens)
-
ダイナミック解像度モード
- Gundam: n×640×640 + 1×1024×1024
プロンプト例
-
文書のMarkdown変換
- <image>\n<|grounding|>Convert the document to markdown.
-
画像のOCR
- <image>\n<|grounding|>OCR this image.
-
レイアウトなしOCR
- <image>\nFree OCR.
-
図表解析
- <image>\nParse the figure.
-
画像詳細説明
- <image>\nDescribe this image in detail.
-
特定領域検出
- <image>\nLocate <|ref|>xxxx<|/ref|> in the image.
可視化・謝辞
- 可視化機能 の提供
- Vary, GOT-OCR2.0, MinerU, PaddleOCR, OneChart, Slow Perception のモデル・アイデア参照
- Fox, OminiDocBench のベンチマーク利用
- 論文引用情報は近日公開予定
この内容に従い、DeepSeek-OCRの導入・利用・特徴を簡潔に把握可能。