模型库 / deepseek-ai/DeepSeek-OCR

DeepSeek-OCR

deepseek-ai image-text-to-text transformers multilingual
deepseek-ai/DeepSeek-OCR
2,824,757
下载量
3227
收藏数
9
浏览量
mit
许可

简介

🌟 Github | 📥 Model Download | 📄 Paper Link | 📄 Arxiv Paper Link |

模型卡片

许可协议 mit
语言
multilingual
框架 transformers
任务 image-text-to-text
deepseek vision-language ocr custom_code

模型配置

模型类型 deepseek_vl_v2
架构 DeepseekOCRForCausalLM

模型详情

已翻译

🌟 Github |
📥 模型下载 |
📄 论文链接 |
📄 Arxiv 论文链接 |

DeepSeek-OCR:上下文光学压缩

探索视觉-文本压缩的边界。

使用方法

在 NVIDIA GPU 上使用 Huggingface transformers 进行推理。依赖项已在 python 3.12.9 + CUDA11.8 环境下测试通过:

torch==2.6.0
transformers==4.46.3
tokenizers==0.20.3
einops
addict 
easydict
pip install flash-attn==2.7.3 --no-build-isolation
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)

# prompt = "\nFree OCR. "
prompt = "\nConvert the document to markdown. "
image_file = 'your_image.jpg'
output_path = 'your/output/dir'

# infer(self, tokenizer, prompt='', image_file='', output_path = ' ', base_size = 1024, image_size = 640, crop_mode = True, test_compress = False, save_results = False):

# Tiny: base_size = 512, image_size = 512, crop_mode = False
# Small: base_size = 640, image_size = 640, crop_mode = False
# Base: base_size = 1024, image_size = 1024, crop_mode = False
# Large: base_size = 1280, image_size = 1280, crop_mode = False

# Gundam: base_size = 1024, image_size = 640, crop_mode = True

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)

vLLM

关于模型推理加速及 PDF 处理等指导,请参考 🌟GitHub

[2025/10/23] 🚀🚀🚀 DeepSeek-OCR 现已在上游 vLLM 中获得官方支持。

uv venv
source .venv/bin/activate
# Until v0.11.1 release, you need to install vLLM from nightly build
uv pip install -U vllm --pre --extra-index-url https://wheels.vllm.ai/nightly
from vllm import LLM, SamplingParams
from vllm.model_executor.models.deepseek_ocr import NGramPerReqLogitsProcessor
from PIL import Image

# Create model instance
llm = LLM(
    model="deepseek-ai/DeepSeek-OCR",
    enable_prefix_caching=False,
    mm_processor_cache_gb=0,
    logits_processors=[NGramPerReqLogitsProcessor]
)

# Prepare batched input with your image file
image_1 = Image.open("path/to/your/image_1.png").convert("RGB")
image_2 = Image.open("path/to/your/image_2.png").convert("RGB")
prompt = "\nFree OCR."

model_input = [
    {
        "prompt": prompt,
        "multi_modal_data": {"image": image_1}
    },
    {
        "prompt": prompt,
        "multi_modal_data": {"image": image_2}
    }
]

sampling_param = SamplingParams(
            temperature=0.0,
            max_tokens=8192,
            # ngram logit processor args
            extra_args=dict(
                ngram_size=30,
                window_size=90,
                whitelist_token_ids={128821, 128822},  # whitelist: , 
            ),
            skip_special_tokens=False,
        )
# Generate output
model_outputs = llm.generate(model_input, sampling_param)

# Print output
for output in model_outputs:
    print(output.outputs[0].text)

可视化展示

致谢

我们感谢 VaryGOT-OCR2.0MinerUPaddleOCROneChartSlow Perception 提供的宝贵模型与思路。

同时感谢以下基准测试:FoxOminiDocBench

引用

bibtex @article{wei2025deepseek, title={DeepSeek-OCR: Contexts Optical Compression}, author={Wei, Haoran and Sun, Yaofeng and Li, Yukun}, journal={arXiv preprint arXiv:2510.18234}, year={2025} }

标签

deepseek_vl_v2 feature-extraction deepseek vision-language ocr custom_code multilingual arxiv:2510.18234

操作


详细信息

厂商
deepseek-ai
任务
image-text-to-text
框架
transformers
模型类型
deepseek_vl_v2
许可(HF)
mit
语言
multilingual