创建CUDA11.8环境部署DeepSeek-OCR

完整部署步骤:Linux下保留系统CUDA12.6,通过Conda创建CUDA11.8环境部署DeepSeek-OCR

核心逻辑:利用Conda环境隔离性,在新环境中安装CUDA11.8 toolkit,系统CUDA12.6完全不受影响,所有依赖均在隔离环境内安装。

步骤1:安装/验证Conda(Anaconda/Miniconda)

如果已安装Conda,跳过此步;未安装则执行:

下载Miniconda(Linux x86_64)

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

执行安装(按提示操作,建议同意将conda加入PATH)

bash Miniconda3-latest-Linux-x86_64.sh

刷新环境变量

source ~/.bashrc

验证conda

conda --version

步骤2:创建Conda隔离环境(CUDA11.8 + Python3.12.9)

1. 创建环境(名称:deepseek-ocr,Python3.12.9)

conda create -n deepseek-ocr python=3.12.9 -y

2. 激活环境

conda activate deepseek-ocr

3. 安装Conda版CUDA11.8 toolkit(仅环境内生效,不影响系统CUDA12.6)

conda install -c conda-forge cudatoolkit=11.8 -y

4. 验证环境内CUDA版本(关键!输出需包含cudatoolkit=11.8)

conda list | grep cudatoolkit

步骤3:克隆DeepSeek-OCR仓库

克隆仓库

git clone https://github.com/deepseek-ai/DeepSeek-OCR.git

进入仓库根目录

cd DeepSeek-OCR

步骤4:安装PyTorch(CUDA11.8版本)

严格匹配仓库要求的torch2.6.0+cu118,指定PyTorch官方cu118源:
pip install torch2.6.0 torchvision0.21.0 torchaudio2.6.0 --index-url https://download.pytorch.org/whl/cu118

验证Torch关联的CUDA版本(必须输出11.8和True)

python -c "import torch; print('Torch CUDA版本:', torch.version.cuda); print('CUDA可用:', torch.cuda.is_available())"

若输出不是11.8,删除环境重新创建,或检查pip源是否被代理干扰。

步骤5:安装vllm 0.8.5+cu118

先下载对应CUDA11.8的vllm whl包,再安装:

下载vllm-0.8.5+cu118适配包(Python3.8+,manylinux1_x86_64)

wget https://github.com/vllm-project/vllm/releases/download/v0.8.5/vllm-0.8.5+cu118-cp38-abi3-manylinux1_x86_64.whl

安装下载的vllm包

pip install vllm-0.8.5+cu118-cp38-abi3-manylinux1_x86_64.whl

若下载慢,可手动从vllm Release页下载对应whl到本地,再执行pip install 本地whl路径。

步骤6:安装其他依赖(requirements + flash-attn)

安装仓库依赖

pip install -r requirements.txt

安装flash-attn 2.7.3(需编译,先装系统编译工具)

sudo apt update && sudo apt install -y gcc g++ build-essential # Ubuntu/Debian

CentOS/RHEL:sudo yum install -y gcc gcc-c++ make

安装flash-attn(关键参数--no-build-isolation)

pip install flash-attn==2.7.3 --no-build-isolation

步骤7:配置运行参数(修改config.py

进入vllm推理目录,修改核心路径和参数:

cd DeepSeek-OCR-master/DeepSeek-OCR-vllm

编辑config.py(用vim/nano/VSCode等)

vim config.py

修改以下关键参数(示例):

模型路径(自动从Hugging Face下载,也可指定本地路径)

MODEL_PATH = 'deepseek-ai/DeepSeek-OCR'

输入路径:改为你的测试文件(图片/jpg/png 或 PDF)

INPUT_PATH = '/path/to/your/test.jpg' # 或 /path/to/your/test.pdf

输出路径:自定义输出目录(自动创建)

OUTPUT_PATH = '/path/to/your/output_dir'

其他参数(按需调整,GPU内存不足时降低)

MAX_CONCURRENCY = 20 # 默认100,低配GPU改为20/10

MAX_CROPS = 4 # 默认6,低配GPU改为4/2

CROP_MODE = True # 保持默认

步骤8:运行测试(图片/PDF推理)

确保始终在deepseek-ocr Conda环境中执行:

激活环境(若已激活可跳过)

conda activate deepseek-ocr

1. 单图片推理(流式输出)

python run_dpsk_ocr_image.py

2. PDF推理(A100-40G约2500tokens/s)

python run_dpsk_ocr_pdf.py

3. 批量评估(基准测试)

python run_dpsk_ocr_eval_batch.py

关键问题解决(CUDA隔离+常见报错)

  1. 解决ptxas路径报错(TRITON_PTXAS_PATH)
    由于系统CUDA是12.6,Conda环境内CUDA11.8的ptxas需手动指定:

修改run_dpsk_ocr_image.py/run_dpsk_ocr_pdf.py的开头CUDA判断逻辑

if torch.version.cuda == '11.8':

自动获取Conda环境内的ptxas路径,无需硬编码

os.environ["TRITON_PTXAS_PATH"] = f"{os.environ['CONDA_PREFIX']}/bin/ptxas"

  1. GPU内存不足

降低config.py中MAX_CONCURRENCY(如10)、MAX_CROPS(如2);

修改脚本中llm = LLM(...)的gpu_memory_utilization为0.8(默认0.9)。

  1. Transformers版本冲突

仓库说明无需担心,但若报错可升级:

pip install transformers==4.51.1 -U

核心说明

CUDA隔离性:Conda环境内的cudatoolkit=11.8仅作用于该环境,系统nvcc --version仍显示12.6,完全不影响其他应用;

模型下载:首次运行会自动从Hugging Face下载deepseek-ai/DeepSeek-OCR模型,需保证网络通畅;

环境复用:后续使用只需执行conda activate deepseek-ocr即可,无需重复安装依赖。

相关推荐
ai_coder_ai11 小时前
如何使用ocr来实现自动化脚本?
ocr·autojs·自动化脚本·冰狐智能辅助·easyclick
虚幻如影12 小时前
Tesseract-OCR 引擎安装
python·ocr
一顿能吃五大海碗啊啊啊1 天前
OCR大模型如何解决多页文档的问题
ocr·ocr大模型·ocr长文档·ocr大模型面试
专家大圣1 天前
告别付费 OCR!PaddleOCR-VL + cpolar,打造专属便携识别工具✨
网络·ocr·内网穿透·cpolar
AI人工智能+1 天前
网约车运输证识别技术:深度融合计算机视觉与自然语言处理技术,实现对运输证全字段的高精度定位、识别与结构化提取
深度学习·计算机视觉·ocr·网约车运输证识别
Pyeako1 天前
基于Qt和PaddleOCR的工业视觉识别报警系统开发
人工智能·python·深度学习·数码相机·opencv·ocr·pyqt5
guslegend2 天前
DeepSeek-OCR-2快速入门
ocr
hsling松子2 天前
基于 PaddleOCR-VL 与 PaddleFormers 的多模态文档解析微调项目
人工智能·计算机视觉·语言模型·自然语言处理·ocr
旗讯数字2 天前
智破纸质壁垒 赋能医药合规——旗讯数字医药注册批件纸质文档智能识别与结构化提取对接解决方案
数据结构·ocr·合规审查
百度智能云2 天前
OmniDocBench 93.12分!百度千帆发布端到端文档智能模型Qianfan-OCR
百度·ocr