

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 模型的训练和推理均采用全端到端范式。通过规模化的高质量应用导向数据,结合在线强化学习,模型表现出了非常稳健的端到端推理能力,有效规避了级联方案常见的相关误差累积问题

在 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://huggingface.co/spaces/tencent/HunyuanOCR

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

看前端样式是用 Gradio 实现的,如果模型本地化部署了的话,可以直接把代码 copy 下来,python 运行就能在本机实现这个应用了
代码:https://huggingface.co/spaces/tencent/HunyuanOCR/blob/main/app.py
功能上挺齐全的:多场景文字检测与识别、多粒度文档解析、卡证票据识别和结构化输出、视觉问答、跨语言翻译

模型文件只有 2GB,比 DeepSeek-OCR 的 6.7GB 小太多了
不过我看 HunyuanOCR@GitHub 的 README 中写需要 GPU 显存是 80GB,有点离谱啊
它会不会把显存和硬盘容量搞反了😯❓

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

https://huggingface.co/tencent/HunyuanOCR
官方建议 vLLM 部署模型以获取更好的推理性能和精度,因为 Transformers 相比 vLLM 框架存在一定的性能下滑
但是目前只能安装 vLLM nightly 了,稳定版的 vLLM 要支持 HunyuanOCR 估计需要 v0.11.3 了
pip install vllm --extra-index-url https://wheels.vllm.ai/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
)
messages = [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://huggingface.co/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://huggingface.co/tencent/HunyuanOCR vLLM 官方文档:https://docs.vllm.ai/projects/recipes/en/latest/Tencent-Hunyuan/HunyuanOCR.html