DeepSeek-OCR 本地部署(上):CUDA 升级 12.9,vLLM 升级至最新稳定版

大家好,我是 Ai 学习的老章

大模型 OCR 的黄金时代来了,小红书 dots.ocr-3b、deepseek-ocr-3b、阿里 qwen3-vl-2b、百度 paddleocr-vl-0.9B……

模型越做越小,精度越来越高

刚刚,OCR 领域迎来新选手,腾讯的文档理解模型——混元 OCR 开源了

端到端训推一体:不同于其他开源的 OCR 专家模型或系统,HunyuanOCR 模型的训练和推理均采用全端到端范式。通过规模化的高质量应用导向数据,结合在线强化学习,模型表现出了非常稳健的端到端推理能力,有效规避了级联方案常见的相关误差累积问题
  • 在文档解析、视觉问答和翻译方面达到 SOTA
  • 1B 参数,端到端运行,大幅降低了部署成本
在 OCR Bench 数据集上实现了 3B 参数以下模型的 SOTA 分数(860),并在复杂文档解析的 OmniDocBench 数据集上取得了领先的 94.1 分

一个很离谱的成绩是 HunyuanOCR 仅使用 1B 参数量,在拍照翻译任务上取得了与 Qwen3-VL-235B 相当的效果。

它可以处理街道视图、手写体、艺术文本的文字识别,复杂文档处理(HTML/LaTeX 中的表格/公式),视频字幕提取,以及端到端的照片翻译(支持 14 种语言)

放几个高清的案例

最后这个案例,后面做论文翻译,又有新玩法了👍

官方提供了不同任务下的提示词模板

任务 提示词
检测与识别
检测并识别图片中的文字,将文本坐标格式化输出
解析
· 识别图片中的公式,用 LaTeX 格式表示
· 把图中的表格解析为 HTML
· 解析图中的图表,对于流程图使用 Mermaid 格式表示,其他图表使用 Markdown 格式表示。
· 提取文档图片中正文的所有信息用 markdown 格式表示,其中页眉、页脚部分忽略,表格用 html 格式表达,文档中公式用 latex 格式表示,按照阅读顺序组织进行解析
信息抽取
· 输出 Key 的值
· 提取图片中的:[‘key1′,’key2’, …] 的字段内容,并按照 JSON 格式返回
· 提取图片中的字幕
翻译
先提取文字,再将文字内容翻译为英文。若是文档,则其中页眉、页脚忽略。公式用 latex 格式表示,表格用 html 格式表示

在线体验

🌐 https:///spaces/tencent/HunyuanOCR

我试了一下,拍照图片 + 双排显示 + 公式、图表情况下,识别的蛮精准的

看前端样式是用 Gradio 实现的,如果模型本地化部署了的话,可以直接把代码 copy 下来,python 运行就能在本机实现这个应用了

代码:https:///spaces/tencent/HunyuanOCR/blob/main/app.py

功能上挺齐全的:多场景文字检测与识别、多粒度文档解析、卡证票据识别和结构化输出、视觉问答、跨语言翻译

本地部署

模型文件只有 2GB,比 DeepSeek-OCR 的 6.7GB 小太多了

不过我看 HunyuanOCR@GitHub 的 README 中写需要 GPU 显存是 80GB,有点离谱啊

它会不会把显存和硬盘容量搞反了😯❓

国内镜像:https:///models/deepseek-ai/DeepSeek-OCR

https:///tencent/HunyuanOCR

官方建议 vLLM 部署模型以获取更好的推理性能和精度,因为 Transformers 相比 vLLM 框架存在一定的性能下滑

但是目前只能安装 vLLM nightly 了,稳定版的 vLLM 要支持 HunyuanOCR 估计需要 v0.11.3 了

pip install vllm --extra-index-url https://wheels./nightly

在线推理

vllm serve tencent/HunyuanOCR 
    --no-enable-prefix-caching
    --mm-processor-cache-gb 0

OpenAI API 接口调用

from openai import OpenAI

client = OpenAI(
    api_key="EMPTY",
    base_url="http://localhost:8000/v1",
    timeout=3600
大模型 OCR 的黄金时代,腾讯开源混元OCR,文档解析、视觉问答和翻译方面达到 SOTA
)

messages = [
    {
        "role""user",
        "content": [
            {
                "type""image_url",
                "image_url": {
                    "url""https:///datasets/huggingface/documentation-images/resolve/main/chat-ui/tools-dark.png"
                }
            },
            {
                "type""text",
                "text": (
                    "Extract all information from the main body of the document image "
                    "and represent it in markdown format, ignoring headers and footers."
                    "Tables should be expressed in HTML format, formulas in the document "
                    "should be represented using LaTeX format, and the parsing should be "
                    "organized according to the reading order."
                )
            }
        ]
    }
]

response = client.chat.completions.create(
    model="tencent/HunyuanOCR",
    messages=messages,
    temperature=0.0,
)
print(f"Generated text: {response.choices[0].message.content}")

我实测的话,模型已下载,准备等 vLLM:v0.11.3 出来之后了

参考:
官方简介:https://hunyuan.tencent.com/vision/zh?tabIndex=0
HunyuanOCR 项目 README:https:///tencent/HunyuanOCR
vLLM 官方文档:https://docs./projects/recipes/en/latest/Tencent-Hunyuan/HunyuanOCR.html