DeepSeek-V3/R1是一个具有超过600亿参数的专家混合(MoE)模型,且已开源其模型权重。本文将介绍如何利用SGLang作为DeepSeek模型的推理框架,在一台ebmgn8v实例上构建DeepSeek-V3/R1的推理服务。您无需进行额外配置,即可实现开箱即用。

核心工具介绍

  • NVIDIA GPU驱动:用来驱动NVIDIA GPU的程序,本文以Driver版本 550.127.08为例。

  • SGLang:是一个专为大型语言模型(LLM)和视觉语言模型(VLM)设计的高效服务框架,结合前端结构化编程语言与优化的后端推理引擎,能够实现复杂LLM工作负载的加速,本文以其v0.4.2.post1版本为例。

  • 操作步骤

    步骤一:准备环境

  1. 创建阿里云GPU实例并正确安装驱动。具体操作,请参见创建GPU实例。关键参数说明如下。

  • 实例规格:目前可选的实例规格为ecs.ebmgn8v.48xlarge(内存1024 GiB、GPU显存8*96 GB以及192 vCPU)。更多信息,请参见GPU计算型(gn/ebm/scc系列)

image

  • 镜像:选择公共镜像,本文以Alibaba Cloud Linux 3.2104 LTS 64位版本的镜像为例。

    在GPU实例上部署DeepSeek-V3/R1模型,需要提前在该实例上安装GPU驱动且驱动版本应为550及以上版本,建议您通过ECS控制台购买GPU实例时,同步选中安装GPU驱动。实例创建完成后,会自动安装Tesla驱动、CUDA、cuDNN库等,相比手动安装方式更快捷。

image

  • 系统盘:建议系统盘大小设置200 GiB以上。

  • 数据盘:由于模型体积较大,DeepSeek-R1模型和DeepSeek-V3模型的文件大小分别约为1.3 TiB。建议数据盘的大小预留为模型大小的1.5倍。因此,建议您单独购买用于存储下载模型的数据盘,推荐选择2 TiB以上的数据盘。

  • 公网IP:选中分配公网IPv4地址,带宽计费方式选择按使用流量,建议带宽峰值选择100 Mbps,以加快模型下载速度。

  • 安全组:开放22端口。

2.安装Docker。

3.安装NVIDIA容器工具包。

Alibaba Cloud Linux/CentOS

#配置生产存储库
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
#安装 NVIDIA Container Toolkit 软件包
sudo yum install -y nvidia-container-toolkit
#重启docker
sudo systemctl restart docker

4.执行以下命令,查看Docker是否已启动。

sudo systemctl status docker

如下图回显所示,表示Docker已启动。

running

5.如果购买GPU实例时选择了添加数据盘,则您需要初始化数据盘,并将数据盘挂载到/mnt目录。

6.如果购买GPU实例时未选择添加数据盘,您需要购买数据盘并完成挂载。

由于模型体积较大,DeepSeek-R1模型和DeepSeek-V3模型的文件大小分别约为1.3 TiB。建议数据盘的大小预留为模型大小的1.5倍。因此,建议您单独购买用于存储下载模型的数据盘,推荐选择2 TiB以上的数据盘,并以/mnt作为挂载点。具体操作,请参见挂载数据盘

  • 步骤二:部署和运行DeepSeek模型

1、执行以下命令,拉取推理镜像。

sudo docker pull egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-nv-pytorch:preview-25.02-vllm0.6.4.post1-sglang0.4.2.post1-pytorch2.5-cuda12.4-20250207

2、下载模型文件,您可以访问阿里云魔搭社区Modelscope选择模型,在模型详情页获取名称。

# 定义要下载的模型名称。MODEL_NAME需要访问Modelscope选择模型,在模型详情页获取名称,脚本以DeepSeek-V3为例
MODEL_NAME="DeepSeek-V3"
# 设置本地存储路径。确保该路径有足够的空间来存放模型文件(建议预留模型大小的1.5倍空间),此处以/mnt/V3为例
LOCAL_SAVE_PATH="/mnt/V3"

# 如果/mnt/V3目录不存在,则创建它
sudo mkdir -p ${LOCAL_SAVE_PATH}
# 确保当前用户对该目录有写权限,根据实际情况调整权限
sudo chmod ugo+rw ${LOCAL_SAVE_PATH}

# 启动下载,下载完成后自动销毁
sudo docker run -d -t --network=host --rm --name download \
-v ${LOCAL_SAVE_PATH}:/data \
egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-nv-pytorch:preview-25.02-vllm0.6.4.post1-sglang0.4.2.post1-pytorch2.5-cuda12.4-20250207 \
/bin/bash -c "git-lfs clone https://www.modelscope.cn/models/deepseek-ai/${MODEL_NAME}.git /data"

3、执行以下命令,实时监控下载进度,等待下载结束。

sudo docker logs -f download

4、下载模型耗时较长,请您耐心等待。当下载任务完成后,会停止输出新的日志,您可以随时按下Ctrl+C退出,这不会影响容器的运行,即使退出终端也不会中断下载。

启动模型推理服务。

# 定义要下载的模型名称。MODEL_NAME需要访问Modelscope选择模型,在模型详情页获取名称,脚本以DeepSeek-V3为例
MODEL_NAME="DeepSeek-V3"
# 设置本地存储路径。确保该路径有足够的空间来存放模型文件,此处以/mnt/V3为例
LOCAL_SAVE_PATH="/mnt/V3"

# 定义服务运行时监听的端口号。可以根据实际需求进行调整,默认使用30000端口
PORT="30000"

# 定义使用的GPU数量。这取决于实例上可用的GPU数量,可以通过nvidia-smi -L命令查询
# 这里假设使用8个GPU
TENSOR_PARALLEL_SIZE="8"

# 确保当前用户对该目录有读写权限,根据实际情况调整权限
sudo chmod ugo+rw ${LOCAL_SAVE_PATH}

# 启动Docker容器并运行服务
sudo docker run -d -t --network=host --gpus all \
    --privileged \
    --ipc=host \
    --cap-add=SYS_PTRACE \
    --name ${MODEL_NAME} \
    --ulimit memlock=-1 \
    --ulimit stack=67108864 \
    -v ${LOCAL_SAVE_PATH}:/data \
    egslingjun-registry.cn-wulanchabu.cr.aliyuncs.com/egslingjun/inference-nv-pytorch:preview-25.02-vllm0.6.4.post1-sglang0.4.2.post1-pytorch2.5-cuda12.4-20250207 \
    /bin/bash -c "python3 -m sglang.launch_server \
        --port ${PORT} \
        --model-path /data \
        --mem-fraction-static 0.8 \
        --tp ${TENSOR_PARALLEL_SIZE} \
        --trust-remote-code"

5、运行以下命令,检查服务是否正常启动。

sudo docker logs ${MODEL_NAME}

在日志输出中寻找类似以下的消息,表示服务已经成功启动并在端口30000上监听。

INFO:     Uvicorn running on http://0.0.0.0:30000 (Press CTRL+C to quit)
  • 步骤三:推理测试验证

    执行以下命令,发送推理请求并验证模型的推理结果。

    curl http://localhost:30000/generate \
     -H "Content-Type: application/json" \
     -d '{
      "text": "deepseek中有几个e?",
      "sampling_params": {
      "max_new_tokens": 3000,
      "temperature": 0
     }
    }'

    结果

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐