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

相关推荐
alvinToffler1 天前
kkocr简单好用的ocr文字表格识别工具
ocr·文字识别·表格识别·表格按列选择
秋氘渔2 天前
使用Ollama部署DeepSeek-OCR模型:从零开始的完整指南
ocr·ollama·deepseek-ocr
weixin_462446232 天前
DeepSeek-OCR:下一代智能文档识别与转换技术详解(复杂表格精准解析)
ocr·deepseek-ocr
山顶夕景3 天前
【VLM】Format Decoupled Reinforcement Learning for Document OCR
大模型·llm·ocr·多模态·文档智能·vlm
熊明才3 天前
modelscope 上PaddleOCR-VL 部署(2026年1月17日亲测可用)
ai·ocr
张3蜂3 天前
PaddleOCR:全面解析百度开源的OCR王者
百度·开源·ocr
AI人工智能+4 天前
表格识别技术:实现复杂表格内容的精准解析与表格结构的版面还原,推动档案管理从数字化存储向智能化服务转型
深度学习·ocr·表格识别
天聚数行4 天前
OCR+翻译二合一!天聚数行图片翻译API实测体验
ocr·api接口·天聚数行
旗讯数字4 天前
角标识别 + 系统对接一体化 旗讯 OCR 纸质报告数字化解决方案
ocr