本模型为 腾讯混元(Tencent Hunyuan)大模型团队研发并开源的成果。因其出色的性价比,在 2026 年初的 OCR 圈里引起不小轰动。
一、它是什么?
HyOCR-1.5 是一款纯端到端(End-to-End)的视觉语言模型,参数量仅有 10 亿(1B),专攻“图像→文本”的文档解析任务。你给它一张图片(PDF 截图、扫描件、表格、甚至手写笔记),它直接输出结构化的文字结果,省去了传统 OCR 中“检测-识别-排版”的繁琐流水线。
最新版本:HyOCR-1.5(早期版本叫 HunyuanOCR)
开源状态:权重、训练配方、数据构造方法、推理加速框架 全部开源
语言支持:识别超过 100 种语言,其中包含 14 种高频小语种的翻译能力
二、核心性能有多强?
别看它只有 1B 参数,性能却“越级”:
准确率第一:在权威的 OmniDocBench v1.6 文档解析榜单中,HyOCR-1.5 以 94.74 分 夺得端到端模型冠军,甚至超过了 3B 的 DeepSeek-OCR 2。
推理极速:借助自研的 DFlash 投机解码框架,推理速度提升最高 6.37 倍,处理长文档(比如几十页的表格)时依然流畅。
古文字与图表:连甲骨文、复杂图表都能较好识别,能力堪比某些 8B 通用模型。
三、技术秘诀:小身材如何爆发大能量?
① 端到端,告别“误差积累”
传统 OCR 是三步走:先找文字区域,再识别每个字,最后整理排版。每一步都有误差,叠加起来很头疼,而且部署麻烦。HyOCR-1.5 一步到位,输入图像直接输出 JSON 格式的结构化文本,推理延迟降低 30%~50%。
② DFlash 投机解码,破解“逐字生成慢”难题
OCR 处理长文档时,通常要一个字一个字地“蹦”出来(自回归解码),速度很慢。HyOCR-1.5 内置一个仅 9070 万(90.7M)参数 的“草稿模型”,它能一次性预测 16 个候选字符,然后由主模型做校验。这样主模型每跑一次,平均能产出 8~9 个有效字符,相当于“搭便车”,最终获得 6 倍以上的加速。
四、同台竞技:1B 级别里的“卷王”
2025 年末到 2026 年初,各家都在推 1B 左右的轻量级 OCR 模型,HyOCR-1.5 在其中表现如何?看对比:
| 模型 | 参数量 | 核心特点 |
| 腾讯 HyOCR-1.5 | 1B | 端到端全能,准确率最高,推理最快,开源最完整 |
| DeepSeek-OCR 2 | 3B | 用大语言模型做视觉编码,语义理解强,但参数量更大 |
| 百度 PaddleOCR-VL-1.5 | 1B | 背靠百度生态,工具链丰富,但独立评测略逊 |
| 上海 AI Lab MinerU 2.5 | 1B | 采用“先粗后精”两阶段策略,计算效率不错,但端到端精度不如 HyOCR |
五、对开发者意味着什么?
轻量部署:1B 模型对显存要求低,普通消费级 GPU(如 RTX 4090)即可流畅运行,甚至可以放到移动端。
开箱即用:官方提供了完整的训练和推理代码,还附带数据生成工具,可以快速适配自己的文档场景(发票、合同、表单等)。
灵活微调:因为是端到端,你只需准备“图片+目标文本”对,就能低成本微调出专属于你业务的 OCR 模型。
六、结语
腾讯混元团队的 HyOCR-1.5 让我们看到:AI 不只有“大力出奇迹”,更可以“巧力破千钧”。它用 1B 的小身板,在准确性、速度和易用性上找到了完美的平衡点,为文档智能处理提供了新的范式。如果你正在寻找一款高精度、高速度、且完全开源的 OCR 方案,HyOCR-1.5 无疑是当下最值得尝试的选择之一。
附录
快速部署示例(vLLM本地推理):
pip install vllm --extra-index-url https://wheels.vllm.ai/nightly
vllm serve tencent/HunyuanOCR \
--no-enable-prefix-caching \
--mm-processor-cache-gb 0
API调用示例(兼容OpenAI协议):
from openai import OpenAI
client = OpenAI(api_key="EMPTY", base_url="http://localhost:8000/v1")
messages = [{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "文档图像URL"}},
{"type": "text", "text": "提取文档正文为markdown,表格用html"}
]
}]
resp = client.chat.completions.create(
model="tencent/HunyuanOCR",
messages=messages,
temperature=0.0
)
print(resp)