ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

DeepSeek-OCR-2 昇腾 NPU 推理部署完整指南

2026/8/24 1:46:34 拓冰建站 浏览量
DeepSeek-OCR-2 昇腾 NPU 推理部署完整指南 DeepSeek-OCR-2 昇腾 NPU 推理部署完整指南【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer把一张文档图片变成干净的结构化 Markdown这是 OCR 模型的看家本领。但 DeepSeek-OCR-2 原生是 CUDA 方案直接搬到昇腾 NPU 上第一步就会卡在算子上。这份指南带你在一台昇腾机器上把它完整跑通。整个方案基于 vLLM-Ascend v0.8.5rc1一个一键转换脚本外加一组非侵入式补丁不动模型源码就能拿到一份开箱即用的 NPU 推理工程。项目定位它能帮你做什么一句话这是基于 vLLM-Ascend 的 DeepSeek-OCR-2 昇腾 NPU 推理适配方案。模型本身负责高精度文档 OCR 识别、输出 Markdown 格式结果方案要解决的是它在 NPU 上跑不了、跑不好的问题——MOE 算子和注意力机制都被换成了 NPU 原生实现源码一行不改。你能拿它做的事丢进一张文档图片流式吐出结构化 Markdown整份 PDF 批处理不用一页页手工翻一个测试图片目录批量评估快速检验识别效果非侵入式适配不碰上游代码也不用懂模型内部结构升级路径清晰补丁独立存放上游模型更新后重跑一次转换脚本即可 动手前环境要求一览硬件门槛就是一台昇腾 A2 机器软件版本要求不多一张表列全条目具体要求昇腾设备Atlas 800I/T A2内存≥ 32GB磁盘≥ 50GB存放模型权重推理框架vLLM-Ascend v0.8.5rc1有现成 docker 镜像Python3.10从 0 到 1昇腾 NPU 推理部署全流程全程五步环境 → 模型 → 适配 → 配置 → 启动。每一步只有几条命令照着敲就行。第 1 步 · 环境一键拉取 NPU 推理镜像并启动容器先拉官方镜像CANN 工具链和 vLLM-Ascend 运行时都已在里面docker pull quay.io/ascend/vllm-ascend:v0.8.5rc1再创建容器。注意把宿主机的/data/model_weight挂到容器/data模型权重就放这里docker run -it -d --nethost --shm-size512g \ --privileged \ --name ds-ocr-2 \ --device/dev/davinci_manager \ --device/dev/hisi_hdc \ --device/dev/devmm_svm \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \ -v /usr/local/sbin:/usr/local/sbin:ro \ -v /data/model_weight:/data \ quay.io/ascend/vllm-ascend:v0.8.5rc1 /bin/bash第 2 步 · 模型下载 DeepSeek-OCR-2 权重到本地装好 modelscope 后直接下载权重pip install modelscope -i https://mirrors.huaweicloud.com/repository/pypi/simple modelscope download --model deepseek-ai/DeepSeek-OCR-2 --local_dir /data/models/DeepSeek-OCR-2两个参数--model模型名称--local_dir模型存储路径第 3 步 · 适配一个脚本生成 NPU 推理工程把 cann-recipes-infer 仓库放到容器/workspace下或直接 clone执行转换脚本cd /workspace git clone https://gitcode.com/cann/cann-recipes-infer.git cd cann-recipes-infer/integration/vllm/deepseek-ocr-2 ./convert_to_npu.sh脚本会自动完成四件事安装 Python 依赖einops、addict、easydict、triton-ascend、PyMuPDF、img2pdf克隆 DeepSeek-OCR-2 源码应用 NPU 适配补丁输出到deepseek_ocr2_npu/目录目录里真正关键的只有三个文件convert_to_npu.sh一键转换脚本、npu_patch/deepseek_ocr2_npu.pyNPU MOE 补丁、npu_patch/set_env.sh环境初始化。第 4 步 · 配置指定模型路径与输入输出cd deepseek_ocr2_npu source set_env.sh vi config.pyset_env.sh负责初始化昇腾 NPU 环境变量config.py里改三处即可MODEL_PATH模型路径如/data/models/DeepSeek-OCR-2INPUT_PATH输入文件路径OUTPUT_PATH输出文件路径第 5 步 · 启动按场景挑一个脚本python run_dpsk_ocr2_image.py python run_dpsk_ocr2_pdf.py python run_dpsk_ocr2_eval_batch.py三个脚本分别对应单图流式输出、PDF 处理、图片批量评估。注意批量脚本要求config.py里的输入图片路径是图片文件夹不是单个文件。⚡ 跑起来单卡性能实测跑通之后用自带的benchmark.py做并发压测python benchmark.py --image /path/to/image.jpg --concurrent 1,8,16 --warmup 2 --rounds 3参数说明括号内为默认值参数说明默认值--image图片文件或目录必填--concurrent并发数列表1,8,16--warmup预热轮数2--rounds测试轮数5--max-tokens最大输出 token8192--gpu-mem显存利用率0.85--output结果输出文件benchmark_results.txt单卡实测吞吐随并发持续爬升并发请求数输出吞吐 (tokens/s)总吞吐 (tokens/s)140.5096.784106.50292.688212.52584.0232413.681136.8164486.621337.26100550.451512.68 幕后3 个关键适配点适配没有动模型结构全部工作量集中在三处MOE 算子用 vllm-ascend 的fused_experts替换原 CUDA 实现注意力机制注释flash_attn改用 SDPANPU 配置ENFORCE_EAGERTrue、gpu_memory_utilization0.85注意力切到 SDPA 后在 NPU 上的计算路径参考下图qkv 投影 → 旋转位置编码 → 融合注意力算子 → 输出投影 排障速查遇到的问题处理办法指定要用的 NPU 设备export ASCEND_RT_VISIBLE_DEVICES0 延伸资源与许可方案涉及的上游项目DeepSeek-OCR-2模型源码vLLM高效 LLM 推理框架vLLM-AscendvLLM 的昇腾适配层SAM视觉编码器许可适配方案采用 MIT License 开源详见 LICENSE涉及的第三方代码中SAM 为 Apache License 2.0DeepSeek-VL2 为 MIT LicensevLLM 为 Apache License 2.0。完整补丁文件位于 integration/vllm/deepseek-ocr-2/。【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考