部署设备:2×8×A100 80G,两台机器,每台机器8张A100。
模型:deepseek-671B-int8
模型下载地址:https://huggingface.co/meituan/DeepSeek-R1-Block-INT8
模型参考:
1、SGLang Docker部署
github地址:sgl-project/sglang:SGLang 是一个用于大型语言模型和视觉语言模型的快速服务框架。
下载 SGLang的docker镜像包,地址:lmsysorg/sglang Tags | Docker Hub,我用的0.4.7这个版本。
docker pull lmsysorg/sglang:v0.4.7-cu124
如果是内网机器,可以将docker镜像打包成.tar文件,传入服务器进行加载即可。
sudo docker load -i sglang_v0.4.7-cu124.tar
2、运行docker镜像
网口号查询,我的设置为ens...p0,大概是这样的。
IP -4 a
export | grep -i socket
在master机器上运行(请将模型放在两台机器的同一位置)
# master
docker run --gpus all \
-d \
-e GLOO_SOCKET_IFNAME=网口号
-e TP_SOCKET_IFNAME=网口号
-e NCCL_SOCKET_IFNAME=网口号
--shm-size 32g \
--network=host \
-p 30000:30000 \
-v 本地模型地址:/root/.cache/huggingface/deepseek \
--name sglang-1 \
--it
--ipc=host \
lmsysorg/sglang:v0.4.7-cu124 \
在cluster机器上运行
#cluster
docker run --gpus all \
-d \
-e GLOO_SOCKET_IFNAME=网口号
-e TP_SOCKET_IFNAME=网口号
-e NCCL_SOCKET_IFNAME=网口号
--shm-size 32g \
--network=host \
-p 30000:30000 \
-v 本地模型地址:/root/.cache/huggingface/deepseek \
--name sglang-2 \
--it
--ipc=host \
lmsysorg/sglang:v0.4.7-cu124 \
3、运行sglang服务
查看docker容器
sudo docker ps -a
在master机器上运行
sudo docker exec -it sglang-1 bash
在cluster机器上运行
sudo docker exec -it sglang-2 bash
在master机器上的docker中运行,记得替换master的IP,如果端口被占用就换个端口:
#master
python3 -m sglang.launch_server \
--model /root/.cache/huggingface/deepseek --tp 16 --dist-init-addr \
MASTER_IP:5000 --nnodes 2 --node-rank 0 --trust-remote-code --enable-torch-compile --torch-compile-max-bs 8
在cluster机器上的docker中运行,记得替换master的IP,如果端口被占用就换个端口:
#cluster
python3 -m sglang.launch_server \
--model /root/.cache/huggingface/deepseek --tp 16 --dist-init-addr \
MASTER_IP:5000 --nnodes 2 --node-rank 1 --trust-remote-code --enable-torch-compile --torch-compile-max-bs 8
这样就可以正常运行起来了,一定要注意参数是否正确。
docker额外操作
暂停所有运行的docker
sudo docker stop $(sudo docker ps -q)
删除docker容器
sudo docker rm -f 容器ID