kyrie
kyrie
发布于 2025-11-19 / 48 阅读
0
0

DeepSeek-OCR在wsl中的安装(50系显卡)

一、安装miniconda

打开wsl

# WSL 安装 Miniconda
cd ~
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
conda --version
conda config --set auto_activate_base false
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r

二、安装deepseekOCR相关依赖

# 拉取项目
git clone https://github.com/deepseek-ai/DeepSeek-OCR.git

# 安装docker-ocr 的conda 环境
conda create -n deepseek-ocr python=3.12.9 -y
conda activate deepseek-ocr

# 安装pytorch、cuda12.8
pip install torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu128

# CUDA Toolkit Installer 
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda-repo-ubuntu2204-12-8-local_12.8.0-570.86.10-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-8-local_12.8.0-570.86.10-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8

三、手动编译vllm

由于50系显卡还对vllm版本的不支持,所以需要手动编译来进行适配

git clone https://github.com/vllm-project/vllm.git
cd vllm
git checkout v0.8.5

python use_existing_torch.py
pip install -r requirements/build.txt
pip install setuptools_scm 
MAX_JOBS=6 python -m build --wheel --no-isolation

cd dist
cp dist/vllm-0.8.6*.whl /mnt/e/project/DeepSeek-OCR/
pip install vllm-0.8.6*.whl

四、安装对应flash_attn

官网找对应版本的下载

# 安装 flash_attn-2.8.3+cu12torch2.8cxx11abiTRUE-cp312-cp312-linux_x86_64.whl
pip install flash_attn-2.8.3+cu12torch2.8cxx11abiTRUE-cp312-cp312-linux_x86_64.whl

# 安装项目依赖
pip install -r requirements.txt

五、模型下载

# 下载模型(创建llms文件夹)
pip install modelscope
cd llms 

创建 download.py 并写入后运行 python download.py

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('deepseek-ai/DeepSeek-OCR', cache_dir="/root/llms")

六、部署docker镜像

编写dockerfile(应该可以优化,我这个镜像打包出来40G,太大了)

# 使用带 CUDA 12.8 的 runtime 镜像
FROM nvidia/cuda:12.8.0-runtime-ubuntu22.04

ENV DEBIAN_FRONTEND=noninteractive \
    PYTHONUNBUFFERED=1

# 容器内代码根目录
WORKDIR /workspace

# 1. 安装基础工具 + Python 3.12
RUN set -eux; \
    # 先把 CUDA 的 apt 源干掉(我们不从 apt 装 CUDA)
    rm -f /etc/apt/sources.list.d/cuda* || true; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
    software-properties-common \
    git wget curl build-essential pkg-config \
    libssl-dev libffi-dev && \
    add-apt-repository ppa:deadsnakes/ppa -y || true; \
    apt-get update && \
    apt-get install -y --no-install-recommends \
    python3.12 python3.12-dev python3.12-venv && \
    rm -rf /var/lib/apt/lists/* && \
    ln -sf /usr/bin/python3.12 /usr/bin/python3 && \
    ln -sf /usr/bin/python3.12 /usr/bin/python && \
    curl -sS https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py && \
    python3.12 /tmp/get-pip.py && \
    rm /tmp/get-pip.py

# 2. 安装 PyTorch 2.8.0(cu128,对齐你 WSL 里的版本)
RUN pip install --upgrade pip && \
    pip install \
    torch==2.8.0 \
    torchvision==0.23.0 \
    torchaudio==2.8.0 \
    --index-url https://download.pytorch.org/whl/cu128

# 3. 拷贝项目代码
COPY . /workspace

# 4. 安装你预编译好的 vLLM whl
RUN pip install /workspace/vllm-0.8.6.dev0+gba41cc90e.d20251118.cu128-cp312-cp312-linux_x86_64.whl

# 5. 安装根目录的通用依赖(如果存在 requirements.txt)
RUN if [ -f /workspace/requirements.txt ]; then \
    pip install -r /workspace/requirements.txt; \
    fi

# 6. 安装 flash_attn 的 whl(注意文件名要和你本地的一致)
RUN pip install /workspace/flash_attn-2.8.3+cu12torch2.8cxx11abiTRUE-cp312-cp312-linux_x86_64.whl

# 7. 预创建 vllms 目录(运行时用 -v 挂载覆盖)
RUN mkdir -p /workspace/vllms

# 8. 暴露 HTTP 服务端口(app.py 默认是 8080)
EXPOSE 8000

# 9. 切回 DeepSeek-OCR-vllm 目录,启动服务
WORKDIR /workspace/DeepSeek-OCR-master/DeepSeek-OCR-vllm
CMD ["uvicorn", "ocr_api:app", "--host", "0.0.0.0", "--port", "8000"]

执行打包镜像

cd /mnt/e/project/DeepSeek-OCR
docker build --progress=plain -t deepseek-ocr:latest.

运行镜像(挂载本地模型文件)

docker run --gpus all -v /mnt/e/project/DeepSeek-OCR/vllms/deepseek-ai/DeepSeek-OCR:/workspace/vllms/deepseek-ai/DeepSeek-OCR \
    -e MODEL_PATH=/workspace/vllms/deepseek-ai/DeepSeek-OCR \
    -p 8000:8000 \
    deepseek-ocr:latest


评论