qidao123.com技术社区-IT企服评测·应用市场

标题: SGLang 实战介绍 (张量并行 / Qwen3 30B MoE 架构摆设) [打印本页]

作者: 汕尾海湾    时间: 2025-5-9 21:43
标题: SGLang 实战介绍 (张量并行 / Qwen3 30B MoE 架构摆设)
一、技能配景

随着大语言模子(LLM)的飞速发展,如何更高效、更灵活地驾驭这些强大的模子天生我们期望的内容,成为了开发者们面临的重要课题。传统的通过拼接字符串、管理复杂的状态和调用 API 的方式,在处理复杂任务时显得力有未逮。正是在如许的配景下,SGlang (Structured Generation Language) 应运而生,它旨在成为连接用户意图与 LLM 天生能力之间的桥梁,提供一种更高效、更具控制力的 LLM 交互方式
二、SGlang 介绍

2.1 核心概念

SGLang 的核心概念围绕着如何将复杂的 LLM 天生任务分解和控制:

2.2 组成部分

一个典型的 SGLang 系统通常包含以下几个关键组成部分:

2.3 关键技能

SGLang 的实现依赖于以下一些关键技能:

2.4 优势与价值

SGLang 为开发者和应用带来了明显的优势和价值:

2.5 SGLang vs vLLM


三、SGlang 实战

3.1 基础情况配置

服务器资源申请请参考:
Qwen2.5 7B 极简微调练习_qwen-7b练习-CSDN博客文章欣赏阅读310次,点赞4次,收藏6次。实现 qwen 2.5 7b 模子微调实行,并打包好模子最后发布到 huggingface_qwen-7b练习
https://blog.csdn.net/weixin_39403185/article/details/147115232?spm=1001.2014.3001.5501
  1. sudo apt update && upgrade -y
  2. sudo apt install build-essential cmake -y
复制代码
  1. # 安装 conda
  2. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /data/Miniconda3.sh
  3. bash /data/Miniconda3.sh -b -p /data/miniconda3
  4. echo 'export PATH="/data/miniconda3/bin:$PATH"' >> ~/.bashrc
  5. source /data/miniconda3/bin/activate
  6. source ~/.bashrc
  7. # 安装 conda 训练环境
  8. conda create -n llm python=3.10 -y
  9. conda activate llm
  10. echo 'conda activate llm' >> ~/.bashrc
  11. source ~/.bashrc
复制代码
  1. pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
  2. pip install "sglang[all]"
复制代码
3.2 SGlang 单机摆设测试

服务器申请: 一台 A10 先显卡的服务器即可
a) 基础情况配置

参考 3.1
b) 模子预备

  1. mkdir -p /data/models
  2. huggingface-cli download Qwen/Qwen3-8B --resume-download --local-dir /data/models/qwen3-8b
复制代码




c) 单机摆设

  1. python -m sglang.launch_server \
  2. --model-path /data/models/qwen3-8b \
  3. --port 8000 --host 0.0.0.0
复制代码


d) 测试推理模子

  1. curl http://localhost:8000/v1/completions \
  2.   -H "Content-Type: application/json" \
  3.   -d '{
  4.     "model": "Qwen/Qwen2-7B-Instruct",
  5.     "prompt": "你好,请介绍一下你自己以及 SGLang。",
  6.     "max_tokens": 150,
  7.     "temperature": 0.7
  8.   }' | jq
复制代码
  1. <img alt=""  src="https://i-blog.csdnimg.cn/direct/361cd8a87975486bb962fa4f6ef4c626.png"  />
复制代码
  1. watch -n 0.5 nvidia-smi
复制代码


3.3 SGlang 推理模子张量并行

服务器申请: 2台 A10 先显卡的服务器即可
详情可以参考:
a) 基础情况配置

参考 3.1
b) 模子预备

参考 3.4 模子预备
c) 张量并行摆设

  1. # te1 节点执行
  2. python -m sglang.launch_server \
  3.     --model-path /data/models/qwen3-8b \
  4.     --host 0.0.0.0 \
  5.     --port 8000 \
  6.     --log-level info \
  7.     --trust-remote-code \
  8.     --dtype auto \
  9.     --mem-fraction-static 0.85 \
  10.     --tensor-parallel-size 2 \
  11.     --nnodes 2 \
  12.     --node-rank 0 \
  13.     --dist-init-addr "te1:29500" \
  14.     --dist-timeout 600
复制代码
  1. # te2 节点执行
  2. python -m sglang.launch_server \
  3.     --model-path /data/models/qwen3-8b \
  4.     --host 0.0.0.0 \
  5.     --port 8001 \
  6.     --log-level info \
  7.     --trust-remote-code \
  8.     --dtype auto \
  9.     --mem-fraction-static 0.85 \
  10.     --tensor-parallel-size 2 \
  11.     --nnodes 2 \
  12.     --node-rank 1 \
  13.     --dist-init-addr "te1:29500" \
  14.     --dist-timeout 600
复制代码
te1 日志

te2 日志

d) 测试推理模子




3.4 SGlang MoE 推理模子



服务器申请: 4台 A10 先显卡的服务器即可
a) 基础情况预备

参考 3.1

b) 模子预备 (MoE 架构的 Qwen3 -30B)

Qwen/Qwen3-30B-A3B 模子预备:
模子很约莫 60Gi 要下载很久很久。
  1. mkdir -p /data/models
  2. huggingface-cli download Qwen/Qwen3-30B-A3B --resume-download --local-dir /data/models/Qwen3-30B-A3B
复制代码


c) SGLang 摆设 MoE Qwen3 30B

  1. # te1 节点执行
  2. python -m sglang.launch_server \
  3.     --model-path /data/models/Qwen3-30B-A3B \
  4.     --host 0.0.0.0 \
  5.     --port 8000 \
  6.     --log-level info \
  7.     --trust-remote-code \
  8.     --dtype auto \
  9.     --mem-fraction-static 0.85 \
  10.     --attention-backend flashinfer \
  11.     --tensor-parallel-size 4 \
  12.     --nnodes 4 \
  13.     --node-rank 0 \
  14.     --dist-init-addr "te1:29500" \
  15.     --dist-timeout 600 \
  16.     --enable-ep-moe \
  17.     --ep-size 4
复制代码
  1. # te2 节点执行
  2. python -m sglang.launch_server \
  3.     --model-path /data/models/Qwen3-30B-A3B \
  4.     --host 0.0.0.0 \
  5.     --port 8000 \
  6.     --log-level info \
  7.     --trust-remote-code \
  8.     --dtype auto \
  9.     --mem-fraction-static 0.85 \
  10.     --attention-backend flashinfer \
  11.     --tensor-parallel-size 4 \
  12.     --nnodes 4 \
  13.     --node-rank 1 \
  14.     --dist-init-addr "te1:29500" \
  15.     --dist-timeout 600
  16.     --enable-ep-moe \
  17.     --ep-size 4
复制代码
  1. # te3 节点执行
  2. python -m sglang.launch_server \
  3.     --model-path /data/models/Qwen3-30B-A3B \
  4.     --host 0.0.0.0 \
  5.     --port 8000 \
  6.     --log-level info \
  7.     --trust-remote-code \
  8.     --dtype auto \
  9.     --mem-fraction-static 0.85 \
  10.     --attention-backend flashinfer \
  11.     --tensor-parallel-size 4 \
  12.     --nnodes 4 \
  13.     --node-rank 2 \
  14.     --dist-init-addr "te1:29500" \
  15.     --dist-timeout 600
  16.     --enable-ep-moe \
  17.     --ep-size 4
复制代码
  1. # te4 节点执行
  2. python -m sglang.launch_server \
  3.     --model-path /data/models/Qwen3-30B-A3B \
  4.     --host 0.0.0.0 \
  5.     --port 8000 \
  6.     --log-level info \
  7.     --trust-remote-code \
  8.     --dtype auto \
  9.     --mem-fraction-static 0.85 \
  10.     --attention-backend flashinfer \
  11.     --tensor-parallel-size 4 \
  12.     --nnodes 4 \
  13.     --node-rank 3 \
  14.     --dist-init-addr "te1:29500" \
  15.     --dist-timeout 600
  16.     --enable-ep-moe \
  17.     --ep-size 4
复制代码
te1 节点上运行日志 


te2,te3,te4节点上日志都差不多 我就保留了 te2 的运行情况 


d) 测试推理模子

  1. curl http://localhost:8000/v1/completions \
  2.   -H "Content-Type: application/json" \
  3.   -d '{
  4.     "model": "Qwen/Qwen2-7B-Instruct",
  5.     "prompt": "请介绍一下自己",
  6.     "max_tokens": 150,
  7.     "temperature": 0.7
  8.   }' | jq
复制代码

e) locust 性能测试


  1. <img alt=""  src="https://i-blog.csdnimg.cn/direct/7bf05501fbff4b48968d6e9311e1456a.png"  />
  2. <strong>模拟 30 并发:</strong>
复制代码



模拟 100 并发:



补充代码:
  1. ## 调试专用
  2. ## te1
  3. watch nvidia-smi
  4. kill -9 pid
  5. netstat -tulnp | grep :8000
  6. netstat -tulnp | grep :29500
  7. ## te2
  8. nvidia-smi
  9. kill -9 pid
  10. netstat -tulnp | grep :8001
复制代码
四、小结

SGlang技能还是相称成熟的,使用下来根本上没有什么 bug 或者莫名的报错,显存管理控制也是非常好。测试调试最顺畅的一次。针对SGlang摆设推理模子 单机版,张量并行和 MoE 情势的都提供了完备的示例。最后也提供了性能测试的相关内容。
参考:

Server Arguments — SGLang
https://docs.sglang.ai/backend/server_arguments.htmlGitHub - sgl-project/sglang: SGLang is a fast serving framework for large language models and vision language models.SGLang is a fast serving framework for large language models and vision language models. - sgl-project/sglang
https://github.com/sgl-project/sglangLarge Language Models — SGLang
https://docs.sglang.ai/supported_models/generative_models.htmlhttps://huggingface.co/Qwen/Qwen3-30B-A3B
https://huggingface.co/Qwen/Qwen3-30B-A3B大语言模子中的MoE - 哥不是小萝莉 - 博客园1.概述 MoE代表“混合专家模子”(Mixture of Experts),这是一种架构计划,通过将差异的子模子(即专家)联合起来举行任务处理。与传统的模子相比,MoE布局可以大概动态地选择并激活此中一部分专家,从而明显提升模子的服从和性能。尤其在计算和参数规模上,MoE架构可以大概在保持较低计算开销的同
https://www.cnblogs.com/smartloli/p/18577833
https://huggingface.co/blog/zh/moe
https://huggingface.co/blog/zh/moe


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4