👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>
背景信息
DeepSeek-V3
DeepSeek-V3-0324
DeepSeek-R1
软件要求
NVIDIA驱动:
运行环境:
操作步骤
步骤一:准备环境
创建GPU计算型实例。
配置项 | 推荐配置 |
基础配置 | |
计算规格 | ecs.hpcpni3ln.45xlarge 说明 ecs.hpcpni3ln.45xlarge规格实例正在邀测中,如需试用,请提交工单或联系客户经理申请。 |
镜像 | Ubuntu 22.04 with GPU Driver 535.161.08 and doca 说明 若您选用其他发行版本的镜像,需在创建实例后自行安装GPU驱动。 |
实例数量 | 2 说明 本文创建的两台GPU实例,分别作为“节点0”、“节点1”。 |
存储 |
说明 本文使用的DeepSeek-R1/DeepSeek-V3模型参数量均为671 B、DeepSeek-V3-0324模型参数量为685 B,您可以根据实际部署的模型参数量级,调整云盘容量。 |
网络配置 | |
私有网络 | 两台实例需处于同一私有网络。 |
公网IP | 勾选“分配弹性公网IP”。 |
安装依赖的软件、工具。
分别登录购买的两台GPU实例。了解更多。
在两台实例中分别执行如下命令,安装、配置Docker。
sudo apt updatesudo apt install ca-certificates curl gnupg lsb-releasesudo mkdir -p /etc/apt/keyringscurl -fsSL https://mirrors.ivolces.com/docker/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ivolces.com/docker/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt updatesudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
在两台实例中分别执行如下命令,安装NVIDIA Container Toolkit。
curl -s https://mirrors.ivolces.com/nvidia_all/ubuntu2204/x86_64/3bf863cc.pub | sudo apt-key add -cat <<EOF >/etc/apt/sources.list.d/nvidia.listdeb http://mirrors.ivolces.com/nvidia_all/ubuntu2204/x86_64/ /EOFapt updateapt install nvidia-container-toolkit -y
在两台实例中分别执行如下命令配置Docker,使容器可以使用实例的GPU资源。
sudo nvidia-ctk runtime configure --runtime=dockersudo systemctl restart docker
(可选)初始化本地盘。
mkfs -t ext4 /dev/nvme0n1mount -t ext4 /dev/nvme0n1 /data01
请将/dev/nvme0n1替换为实际本地盘名称。
请将ext4替换为您期望使用的文件系统。
步骤二:部署、运行模型
分别登录购买的两台GPU实例。了解更多。
在相应节点的实例中启动Docker容器和模型服务。
“节点0”实例
华北2(北京)
docker run -d --network host --privileged --gpus=all --ipc=host -v /data01:/data -v /var/run/nvidia-topologyd/:/var/run/nvidia-topologyd/ -e MODEL_NAME=DeepSeek-R1 -e MODEL_LENGTH=131072 -e TP=16 -e TOTAL_RANKS=2 -e RANKS=0 -e RANK0_ADDR=192.168.0.2:10240 -e PORT=8080 ai-containers-cn-beijing.cr.volces.com/deeplearning/sglang:0.4.2.iaas
华东2(上海)
docker run -d --network host --privileged --gpus=all --ipc=host -v /data01:/data -v /var/run/nvidia-topologyd/:/var/run/nvidia-topologyd/ -e MODEL_NAME=DeepSeek-R1 -e MODEL_LENGTH=131072 -e TP=16 -e TOTAL_RANKS=2 -e RANKS=0 -e RANK0_ADDR=192.168.0.2:10240 -e PORT=8080 ai-containers-cn-shanghai.cr.volces.com/deeplearning/sglang:0.4.2.iaas
“节点1”实例
华北2(北京)
docker run -d --network host --privileged --gpus=all --ipc=host -v /data01:/data -v /var/run/nvidia-topologyd/:/var/run/nvidia-topologyd/ -e MODEL_NAME=DeepSeek-R1 -e MODEL_LENGTH=131072 -e TP=16 -e TOTAL_RANKS=2 -e RANKS=1 -e RANK0_ADDR=192.168.0.2:10240 -e PORT=8080 ai-containers-cn-beijing.cr.volces.com/deeplearning/sglang:0.4.2.iaas
华东2(上海)
docker run -d --network host --privileged --gpus=all --ipc=host -v /data01:/data -v /var/run/nvidia-topologyd/:/var/run/nvidia-topologyd/ -e MODEL_NAME=DeepSeek-R1 -e MODEL_LENGTH=131072 -e TP=16 -e TOTAL_RANKS=2 -e RANKS=1 -e RANK0_ADDR=192.168.0.2:10240 -e PORT=8080 ai-containers-cn-shanghai.cr.volces.com/deeplearning/sglang:0.4.2.iaas
环境变量 | 说明 | 取值样例 |
MODEL_PATH | 容器内模型存储路径,默认值 /data/models。 | /data/models |
MODEL_NAME | 部署的模型名称。取值:
| DeepSeek-R1 |
MODEL_LENGTH | 模型的最大长度(Token数),默认值 131072。 | 131072 |
TP | Tensor Parallelism 并行度,默认值 16。 | 16 |
TOTAL_RANKS | 总节点数,默认值 1。 | 2 |
RANKS | 指定当前节点的Rank号,默认值 0。 | 0 |
RANK0_ADDR | 配置访问Rank号为0的节点其IP地址与端口号,格式为 IP地址:端口号。
| 192.168.0.2:10240 |
PORT | 服务监听的端口号,默认值 8080。 | 8080 |
CMD_ARGS | 指定SGLang框架启动的额外参数。格式为 -e CMD_ARGS="<参数 参数值>"。例如: 添加--mem-fraction-static与--disable-cuda-graph两个参数时,可追加参数:-e CMD_ARGS="--mem-fraction-static 0.95 --disable-cuda-graph" | "--mem-fraction-static 0.95" |
通过命令启动容器时,会自动拉取推理引擎镜像和权重文件,由于模型文件较大,安装过程相对耗时,请耐心等待。
若您需要自行下载推理引擎与模型文件,参考附录进行下载。
在两台实例中分别执行如下命令,通过Docker日志确认容器及模型是否成功启动。
查看容器ID。
docker ps
查看对应容器的运行日志。
docker logs --since 30m <CONTAINER_ID>
步骤三:调用模型
登录“节点0”实例。
执行如下命令调用模型,确保部署的模型可以正常进行推理。
curl -X POST http://0.0.0.0:8080/v1/chat/completions -H "Content-Type: application/json" -d '{"model": "/data/models/DeepSeek-R1","messages": [{"role": "user","content": "请证明一下黎曼猜想"}],"max_tokens": 100,"temperature": 0.7}'
参数名 | 说明 | 取值样例 |
model | 使用的模型。 | /data/models/DeepSeek-R1 |
messages | 对话的消息列表。
| - |
max_tokens | 指定一次请求中模型生成Completion的最大Token数。取值:
| 100 |
temperature | 采样温度,值越高(例如1)会使输出更随机,而值越低(例如0.2)会使其更加集中和确定。取值:介于 0 和 2 之间。 | 0.7 |
常见问题
服务报错“torch.distributed.DistStoreError: Time out after 601 seconds waiting for clients.”如何处理?
问题原因:
解决方案:
确保启动Docker容器和模型服务的命令中各参数均配置正确。
尽快在不同node实例中执行启动Docker容器和模型服务的命令,避免超时。