一文部署SGLang GPU版本:A100+cuda12.1+torch2.5

发布于:2025-09-13 ⋅ 阅读:(23) ⋅ 点赞:(0)

部署sglang(预设你已经有cuda和torch的docker了)

docker run \
  --gpus all \
  --name xxxxxxx \
  -v $HOME/model-cache:/root/model_hub \
  -v $HOME/sglang-dev:/root/sglang \
  -e TRANSFORMERS_CACHE=/root/model_hub \
  -e HF_HOME=/root/model_hub \
  -e HF_TOKEN=xxxxx \ #HF的个人token
  -e http_proxy= \ 
  -e https_proxy= \
  --shm-size=16g \
  --ulimit memlock=-1 \
  -td \
  --network host \
  --entrypoint /bin/bash \
 你对应要拉取的docker 我这里是torch2.5-cuda12.1-ubuntu22.04
  
  启动成功有一串hash字符
  
  
  https://docs.sglang.com.cn/start/install.html  参考官网
  docker exec -it xxxxx /bin/bash
  cd /root
  git clone -b v0.4.6.post4 https://github.com/sgl-project/sglang.git sglang
  cd sglang

  pip install --upgrade pip
  pip install -e "python[all]" #这个要巨久 感觉一个小时?你可以另起终端htop看实时,也可以prep相关查看

启动SGlang

放在容器里执行(建议用 tmux/nohup 保留日志)。

# 可选:方便本地缓存 本人没用
# 在挂docker的时候我就把这个映射到本地了 以防容器误删 数据丢失
export HF_HOME=/root/model_hub
export TRANSFORMERS_CACHE=/root/model_hub

# 启动(端口 30000,避免和 vLLM 的 8000 冲突)
python -m sglang.launch_server \
  --model-path /root/model_hub/Qwen__Qwen3-8B \ #这是我模型参数的地址 你也可以根据自己的选
  --dtype bfloat16 \
  --tp 1 \
  --port 30000 #我这个是为了和别的port错开 一般默认好像是8000

启动成功但sglang有个自身warm的阶段,报错了,可能是因为代理的问题

  • 想让容器外访问,当前是 --network host,直接 127.0.0.1:30000 即可;否则加 --host 0.0.0.0

  • 其它高级参数(最大上下文、批量等)在 SGLang 的 flag 命名可能与 vLLM 不同。建议先用最小启动,性能参数逐步加(避免不认识的 flag 报错)。

解决:对本地回环禁用代理
在容器里用下面任一方法重启 SGLang:

解决:对本地回环禁用代理
在容器里用下面任一方法重启 SGLang:

方法 A(推荐):设置 NO_PROXY
# 在容器里
export NO_PROXY="127.0.0.1,localhost,::1"
export no_proxy="$NO_PROXY"

python -m sglang.launch_server \
  --model-path /root/model_hub/Qwen__Qwen3-8B \
  --dtype bfloat16 \
  --tp 1 \
  --port 30000
  
方法 B:仅对这个进程“临时取消”代理
env -u http_proxy -u https_proxy \
python -m sglang.launch_server \
  --model-path /root/model_hub/Qwen__Qwen3-8B \
  --dtype bfloat16 \
  --tp 1 \
  --port 30000

说明:你仍然可以保留 HF_TOKEN 和代理用于 下载模型;只要把 NO_PROXY 配好,本地 127.0.0.1 的健康检查与暖机会绕过代理。


网站公告

今日签到

点亮在社区的每一天
去签到