SGLang v0.3发布!SGLang邀请您参与开发者会议
青稞SGLang v0.3发布,它带来了显著的性能提升和对新模型架构的扩展支持:
- DeepSeek V2 MLA 相比 vLLM 提升 7 倍吞吐
- 在小 batch size 上使用 torch.compile 提升 1.5 倍 decoding speed
- 支持 LLaVA-OneVision(注:LLaVA-OneVision
官方团队第一时间提供的支持)
- Gemma 2 支持 interleaved window attention,支持 8k context Gemma
2(注:vLLM 最新 0.6.0 是 4k context)
DeepSeek多头潜在注意力(MLA)吞吐量优化
多头潜在注意力(MLA)是DeepSeek团队引入的一种新的注意力变体,旨在提高推理效率。由于它与标准注意力机制的不同,现有的开源库尚未完全优化此操作。在SGLang
v0.3中,我们为MLA实施了各种优化,包括权重吸收、分组解码内核、FP8批MatMul和FP8
KV缓存量化。基准测试结果显示,SGLang
v0.3通过MLA优化实现了比基线系统高达3到7倍的吞吐量。
基准测试测量了这些模型在H100
GPU上的峰值输出吞吐量(对于轻量级模型,张量并行性=1,对于大型模型,张量并行性=8)在ShareGPT数据集上的BF16和FP8。可复制的指令在附录中。虽然令人鼓舞,但仍有很大的改进空间。我们正在积极工作,以完全复现DeepSeek论文中的结果。

Torch.compile延迟优化
Torch.compile是PyTorch 2.0的一个主要功能。在NVIDIA
GPU上,它执行积极的融合并生成高效的Triton内核。我们将torch.compile集成到SGLang中,用于线性/规范/激活层,结合FlashInfer注意力和采样内核。我们为批量大小1到32启用torch.compile,我们观察到在这些批量大小下加速效果最明显。通过这种组合,SGLang在批量大小1时比gpt-fast更快,并支持所有在线服务功能,包括连续批处理和用于前缀缓存的RadixAttention。我们正在积极与torch.compile和torchao团队合作,将他们的最新优化集成到SGLang中。要在SGLang中使用torch.compile,请在启动服务器时添加--enable-torch-compile。SGLang
w/ torch.compile在以下基准测试中实现了高达1.5倍的加速。
可复制的指令在附录中。

支持交错文本、多图像和视频的LLaVA-OneVision
LLaVA-OneVision是第一个在三个重要的计算机视觉场景中实现最先进性能的开放模型:单图像、多图像和视频任务。我们与LLaVA团队合作,将这些功能集成到SGLang
v0.3中。您可以启动服务器并使用OpenAI兼容的视觉API查询它,它支持交错文本、多图像和视频格式。使用细节在这里。作者验证了模型的准确性,并在VideoDetailDescriptions和LLaVA-in-the-wild数据集上报告了基准测试结果。SGLang比作者的原始实现在HuggingFace/transformers上快了高达4.5倍。
支持交错窗口注意力的Gemma-2
Google的Gemma-2模型使用交错窗口注意力来减少长上下文的计算复杂性,在每层交替使用局部滑动窗口注意力(4K上下文长度)和全局注意力(8K上下文长度)。我们增强了SGLang
v0.3以完全支持8K上下文长度,利用FlashInfer内核优化的窗口注意力内核(它跳过计算而不是掩蔽)并改进了我们的KV缓存管理器。缺乏此功能的其他库只能以4K上下文长度运行。您可以使用以下命令启动模型:
1
| python3 -m sglang.launch_server --model-path google/gemma-2b
|

附录
DeepSeek MLA基准测试指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| # DeepSeekCoder-V2-Lite (BF16) ## Launch a server python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct --enable-mla --disable-radix --trust-remote-code python3 -m vllm.entrypoints.openai.api_server --model deepseek-ai/DeepSeek-Coder-V2-Lite-Instruct --disable-log-requests --trust-remote-code --max-model-len 4096
## Run benchmark python3 -m sglang.bench_serving --backend sglang --num-prompts 5000 python3 -m sglang.bench_serving --backend vllm --num-prompts 5000
# DeepSeekCoder-V2 (BF16) ## Launch a server python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-Coder-V2-Instruct --disable-radix --tp 8 --trust-remote-code --enable-mla python3 -m vllm.entrypoints.openai.api_server --model deepseek-ai/DeepSeek-Coder-V2-Instruct --disable-log-requests --tensor-parallel-size 8 --trust-remote-code --max-model-len 4096
## Run benchmark python3 -m sglang.bench_serving --backend sglang --num-prompts 5000 python3 -m sglang.bench_serving --backend vllm --num-prompts 5000
# DeepSeekCoder-V2 (FP8) ## Launch a server python3 -m sglang.launch_server --model neuralmagic/DeepSeek-Coder-V2-Instruct-FP8 --enable-mla --quantization fp8 --kv-cache-dtype fp8_e5m2 --disable-radix --tp 8 --trust-remote-code python3 -m vllm.entrypoints.openai.api_server --model neuralmagic/DeepSeek-Coder-V2-Instruct-FP8 --quantization fp8 --disable-log-requests --tensor-parallel-size 8 --trust-remote-code --max-model-len 4096
## Run benchmark python3 -m sglang.bench_serving --backend sglang --num-prompts 5000 python3 -m sglang.bench_serving --backend vllm --num-prompts 5000
|
Torch.compile基准测试指令
1 2 3 4 5 6 7 8 9 10 11 12 13
| # SGLang ## Launch a server python3 -m sglang.launch_server --model meta-llama/Meta-Llama-3-8B --enable-torch-compile
## Run benchmark python3 -m sglang.bench_serving --backend sglang --dataset-name random --random-input-len 128 --random-output-len 512 --random-range-ratio 1 --num-prompts 1
# vLLM ## Launch a server python3 -m vllm.entrypoints.openai.api_server --model meta-llama/Meta-Llama-3-8B --disable-log-requests
## Run benchmark python3 -m sglang.bench_serving --backend vllm --dataset-name random --random-input-len 128 --random-output-len 512 --random-range-ratio 1 --num-prompts 1
|
9月22日上午11点,SGLang社区将组织第一期开发者会议,欢迎大家预约~

议程
11:00 - 11:15 |
SGLang Q4 planning |
SGL Team |
11:15 - 11:40 |
SGLang v0.3 中Deepseek
MLA的优化实现 |
Ke Bao, Yineng Zhang |
11:40 - 12:00 |
关于批处理和专家并行性的讨论 |
Alex Li |
加入SGLang技术交流群
想要进入SGLang技术交流群的朋友,可以添加小助手,回复暗号“SGL“进群!
