使用SGLang多机多卡部署满血版Deepseek -R1
介绍sglang
SGLang 是一个专为大型语言模型(LLM)和视觉语言模型(VLM)设计的高性能服务框架,旨在提升模型交互的速度与可控性。它融合了高效的后端执行引擎与灵活的前端编程接口,助力构建更强大、智能的 AI 应用。其主要特点包括:
🚀 高效的后端执行引擎
-
RadixAttention 前缀缓存:加速长文本处理
-
零开销 CPU 调度器 & 连续批处理:最大化硬件利用率
-
分页注意力 & 推测解码:提升响应速度
-
支持张量并行、分块预填充:高效处理大模型推理
-
多种量化方式支持(FP8、INT4、AWQ、GPTQ):压缩模型体积、提升推理效率
-
多 LoRA 模型批处理:轻松部署多种微调模型
🧠 灵活强大的前端语言
-
提供直观的编程接口,适合构建链式调用、复杂提示、多模态输入等场景
-
支持控制流、并发执行、外部服务交互等高级功能
-
让构建 LLM 应用像写 Python 脚本一样简单
🧩 丰富的模型兼容性
-
原生支持 Llama、Gemma、Mistral、QWen、DeepSeek、LLaVA 等主流生成模型
-
同时支持嵌入模型(如 e5-mistral、GTE)和奖励模型(如 Skywork)
-
易于扩展,自定义模型接入门槛低
🌍 开源与社区支持
-
完全开源,拥有活跃的开发社区
-
已被多个企业和研究团队实际采用,社区贡献持续增长
更多详细见sglang官网(https://github.com/sgl-project/sglang)
基于Docker来部署 如果小伙伴不了解docker需要学一下docker
要在每台服务器上先安装docker 然后拉取镜像
docker pull lmsysorg/sglang:latest
拉取完镜像 docker run 镜像名称 在四台服务器上分别进行这步骤
docker run -itd \
--name sglang_multinode1 \
--gpus all \
--shm-size 32g \
--network=host \
-v /xxx/xxx:/root/.cache/huggingface \ #-v后面接模型的本地地址需要自己下载模型 指定地址
-e "GLOO_SOCKET_IFNAME=eth10" \ #需要自己去看网口是否启动 来进行选择哪个网口
-e "NCCL_SOCKET_IFNAME=eth10" \
--rm \
--env "HF_TOKEN=$HF_TOKEN" \
--ipc=host \
lmsysorg/sglang:latest
-e NCCL_DEBUG=info:info级别输出日志
-e NCCL_NET=ib:使用ib网络
-e NCCL_P2P_DISABLE=0 强制使用单节点GPU间p2p数据传输
-e NCCL_CHECKS_DISABLE=1 禁用检查
-e NCCL_IB_TIMEOUT=180 设置ib超时时间
-e NCCL_IB_HCA=mlx5_10 使用mlx5_10 ib设备
-e NCCL_PROTO=LL 延迟优先
也有一些参数适量加
然后在每个服务器上进入到docker内部环境进行操作 这只是第一台服务器的
docker exec -it sglang_multinode1 bash
进入docker环境之后检查自己的模型是否挂载在docker环境里
cd /root/.cache/huggingface
看看和自己路径里面的是否一样
进行py脚本运行
python3 -m sglang.launch_server
--model-path /root/.cache/huggingface/deepseek
--tp 32 --dist-init-addr xxxx --nnodes 4
--node-rank 0 --trust-remote-code --host 0.0.0.0 --port 4000
#--model-path /root/.cache/huggingface/deepseek 路径名称
#--tp 需要被模型头整除 模型头数量可以在模型文件config.json中查看
#--dist-init-addr 无需改 主机地址
#--nnodes 4 有几个节点
#--node-rank 第几个节点 从0开始
#--host 0.0.0.0 --port 4000 模型访问端口
在每台机器都运行这个py脚本 后面只需要改--node-rank 第几个节点就完事啦
最后祝大家工作顺利 小白制作不易 喜欢的话点个赞吧 谢谢咯!!!
更多推荐

所有评论(0)