【腾讯犀牛鸟2026】HunyuanOCR ncnn 移植与多平台部署 #6892
Krystal579-max
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
HunyuanOCR ncnn 移植与多平台部署 — 技术总结
1. 项目概述
本项目完成了 Tencent-Hunyuan/HunyuanOCR(约 1B 参数端到端 OCR VLM)向 ncnn 框架的完整移植,实现了纯 C++ 推理运行时,支持 Linux、Windows、macOS 多平台部署。
HunyuanOCR 是腾讯混元团队开源的端到端多模态 OCR 模型,采用 ViT + LLM 架构,能够直接从图像中识别文字。ncnn 是腾讯开源的高性能神经网络推理框架,专为移动端和边缘设备优化。
项目仓库
2. 模型架构分析
HunyuanOCR 由 5 个核心组件构成:
关键技术特征
3. 移植策略
3.1 模型拆分
参考 ncnn_llm 项目的 OCR 实现方案,将 HunyuanOCR 拆分为 4 个独立子网络分别导出:
3.2 pnnx 导出
使用腾讯官方的 pnnx 工具直接从 PyTorch 导出 ncnn 格式,绕过 ONNX 中间步骤:
3.3 KV Cache 增量解码
导出后通过
add_kvcache.py修改 SDPA 层参数,启用增量 KV cache:4. C++ 推理实现
4.1 核心类结构
4.2 推理流程
4.3 关键难点与解决方案
apply_xdrope(),预计算 4 轴 cos/sin 缓存表,每个位置独立旋转<|hy_Assistant|>)也识别为 EOS5. 构建系统
使用 CMake 构建,支持跨平台编译:
编译命令
6. 精度验证
数值精度
验证方法
7. 性能
KV cache 启用后,prefill 一次性处理全部输入,后续逐 token 增量解码,预期提速 5-10x。
8. 总结
本项目成功将 HunyuanOCR 从 PyTorch 移植到 ncnn,实现了以下目标:
后续优化方向
参考资料
All reactions