创建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即可,无需重复安装依赖。

相关推荐
Sinosecu-OCR19 小时前
OCR技术路线怎么选?Pipeline OCR与End-to-End大模型OCR全面比较
ocr·ocr识别·ocr识别系统
五花马印务20 小时前
家谱数字化:老谱扫描 OCR 识别的实用方法
ocr·家谱数字化·老铺修复技术·家谱制作
楚识科技3 天前
定制 OCR 服务:非标证件与表格的 XML 字段映射实践
xml·ocr
土星云SaturnCloud3 天前
超轻量 OCR 实战:PP-OCR 边缘部署实践
服务器·人工智能·ai·ocr·边缘计算
AI人工智能+3 天前
通用表格识别技术:突破传统OCR只能提取零散文本、却读不懂表格行列结构与合并单元格的局限性
深度学习·ocr·表格识别
AI人工智能+4 天前
银行回单识别系统融合计算机视觉、深度学习和自然语言处理三大AI技术,实现银行回单自动转化为可直接入账的结构化数据
深度学习·ocr·银行回单识别
HZZD_HZZD5 天前
远传水表系统技术选型:大口径物联网水表与 OCR 摄像水表对比
物联网·ocr
聚美智数5 天前
快递面单信息识别-快递面单OCR-快递面单OCR图片文字识别-快递面单OCR识别
ocr
楚识科技6 天前
银行单据OCR识别:非结构化金融数据的结构化治理路径
金融·ocr