DeepSeek-OCR-2 本地部署,实测

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

前文介绍了:DeepSeek-OCR 2 来了,让 AI 也能像人一样,带着逻辑去看图

之前 DeepSeek-OCR、HunyuanOCR、PaddleOCR 扎堆开源的时候,我已经把环境搞的很好了

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

# DeepSeek-OCR 本地部署(下):vLLM 离线推理,API 重写,支持本地图片、PDF 解析

没想到遇到 DeepSeek-OCR 2 还是栽了跟头 😓

部署这玩意太费劲了,主要是 vLLM 还没有支持,用 transfomers 还有一大堆依赖,还依赖底层 gcc,然后还有更底层的 GLIBC,这些底层环境不敢乱动,升级来也非常麻烦,gcc 升级,我找到了用 conda 新建环境的方式,但是 GLIBC 就没招了,最后还是老老实实选择了本地编译,耗时,但最后成功了。

详细介绍过程之前,先看几个大家关心的问题

1、部署需要 8.5GB 显存

运行 OCR 任务,显存占用来到 10Gb

2、准确性,我觉得还不错,下面这个测试配图是我最常用的用例

尤其是右下角的表格,无线、表头嵌套,合并单元格、背景色各种干扰

有点难度,PaddleOCR 处理起来也瑕疵:吴恩达最新公开课《文档 AI》,PaddleOCR 实战,笔记

3、耗时 20 秒+,难道是我 4090 显卡不给力吗?我也测试了线上,挺快的,不过线上那个貌似运行在 H200,不知道 vLLM 支持后会不会好一些。

在线体验

再劝大家一下,尽量别折腾本地部署了,推荐俩在线体验:

1, https://deepseek-ocr-v2-demo.vercel.app/

2, https://huggingface.co/spaces/prithivMLmods/DeepSeek-OCR-2-Demo

不听劝请继续--本地部署

我看了几个教程

1、deepseek-ai 官方文档

https://github.com/deepseek-ai/DeepSeek-OCR-2/tree/main

完全照着操作不出幺蛾子应该没问题,毕竟官方验证过,我遇到的幺蛾子就是 gcc 版本低,我用 conda 升到了 11x,然后中间去看了别的教程

安装:

推理

2, Unsloth "DeepSeek-OCR 2: How to Run & Fine-tune Guide"

原文:https://unsloth.ai/docs/models/deepseek-ocr-2

介绍了 nightly 版本 vllm 拉起 DeepSeek-OCR 2 的方法以及微调教程,

微调部分有现成的 ipynb,让其具备阿拉伯文识别能力:

https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Deepseek_OCR_2_(3B).ipynb

这个我没跑起来,可能是因为 unsloth 提供的模型是修改过的(为了与最新的 transformers 兼容),但是我是从 deepseek-ai/DeepSeek-OCR-2 官方下载的模型文件,后面没再尝试。

3, https://huggingface.co/spaces/prithivMLmods/DeepSeek-OCR-2-Demo

最后我走了这个,其实核心还是官方文档哪些步骤,只是加了 gradio 前端

其中最麻烦的是 requirements.txt 里面依赖的安装,特别是 flash-attn 这个大魔王

直接安装 whl 会遇到 gcc 版本低,GLIBC 版本低问题

前者解决方案是用 conda 创建带 gcc 11 的环境,方法如下

后者解决方案是听 deepseek 官方的,老老实实:pip install flash-attn==2.7.3 --no-build-isolation

flash-attn、requirements.txt安装没问题

运行:python deepseek_ocr_2_demo.py --server 0.0.0.0:7860即可

附赠 conda 创建 GCC 11 环境

  1. 创建带 GCC 11 的环境
bash 复制代码
# 创建一个带 gcc 11 的环境

conda create -n gcc11_env -c conda-forge gcc_linux-64=11 gxx_linux-64=11

  

# 激活环境

conda activate gcc9_env

  

# 验证

x86_64-conda-linux-gnu-gcc --version

小知识 :Conda 的编译器名字通常较长(x86_64-conda-linux-gnu-gcc),这是为了和系统的 GCC 区分开,避免冲突。


gcc 命令直接可用

你可能发现一个问题:直接输入 gcc --version 还是调用的系统旧版本。

这是因为 Conda 为了防止冲突,给编译器加了很长的前缀。要让 gcc 命令直接可用,我们用软链接把那个长名字"伪装"成短名字。

1. 建立软链接

在当前的 (gcc9_env) 环境下执行:

bash 复制代码
ln -sf $CONDA_PREFIX/bin/x86_64-conda-linux-gnu-gcc $CONDA_PREFIX/bin/gcc

ln -sf $CONDA_PREFIX/bin/x86_64-conda-linux-gnu-g++ $CONDA_PREFIX/bin/g++

这会在你当前的 Conda 环境里创建一个名为 gcc 的快捷方式。

2. 验证

现在再检查版本:

bash 复制代码
gcc --version
3. (可选) 设置环境变量

有些编译脚本(如 pip install)不直接调用 gcc,而是读取环境变量 CCCXX。为了保险,建议执行:

bash 复制代码
export CC=x86_64-conda-linux-gnu-gcc

export CXX=x86_64-conda-linux-gnu-g++

如果你想让这个设置永久生效,可以把这两行加到 ~/.bashrc 里。

相关推荐
星海之恋9922 小时前
比官方便宜一半以上!Midjourney API 申请及使用
人工智能·midjourney
布谷鸟科技cookoo2 小时前
布谷鸟科技携AI边缘计算产品线亮相韩国ROSCon KOREA 2026
人工智能·科技·ai·边缘计算·交通物流
小雨青年2 小时前
鸿蒙 HarmonyOS 6 | AI Kit 集成 CANN Kit 异构计算服务
人工智能·华为·harmonyos
AI浩2 小时前
Python包离线下载
开发语言·人工智能·python·目标检测
草莓熊Lotso2 小时前
Qt 显示与输入类控件进阶:数字、进度、输入框实战攻略
java·大数据·开发语言·c++·人工智能·qt
心枢AI研习社2 小时前
数据库系列3——条件查询:把数据“筛对、排对”(WHERE/逻辑/范围/null/LIKE 一次讲透)
数据库·人工智能·oracle·aigc
jkyy20142 小时前
慢病智能管理+精准营销:健康有益赋能保健品行业价值重构
大数据·人工智能
azoo2 小时前
cv2.mean() 用于计算图像的像素值的平均值
人工智能·opencv·计算机视觉
啵啵鱼爱吃小猫咪2 小时前
机器人几何雅可比与解析雅可比
人工智能·学习·算法·机器学习·matlab·机器人