SGLang 量化栈重构:打造更清晰架构

SGLang 量化栈重构:打造更清晰架构

量化已从高级特性演变为高吞吐 LLM 服务的重要组成部分。随着检查点格式、模型架构和硬件后端不断增加,量化栈维护难度日益增大。

本文解析 SGLang issue #15194 中提出的架构变更。新设计将检查点解释、参数注册、权重加载、后处理和内核执行拆分为专注、可复用的组件。

1. 为什么这项工作重要?

生产级服务引擎无法再依赖单一低比特内核,必须处理 AWQ、GPTQ、Compressed-Tensors、ModelSlim 和 Quark 等多样检查点格式,以及稠密与 MoE 权重、KV 缓存格式、注意力内核,并支持 CUDA GPU、Ascend NPU、CPU 等硬件后端。

当格式解析、参数注册、权重加载、后处理、平台检查和内核执行全部集中在一个类中时,每新增一种格式或后端都会增加耦合,导致代码难以审查、测试、复用和扩展。

Before and after quantization architecture

旧设计中,单一量化方法往往掌控整个路径:定义参数、加载权重、变换布局、选择后端并启动内核。支持新平台需在同一面向格式的类中添加分支,即使硬件逻辑本可复用。

量化直接影响部署规模与服务性能。低比特权重可减少权重带宽受限场景下的内存流量,尤其在解码阶段。端到端收益取决于内核效率、量化开销及预填充/解码工作负载混合。

ModelQuant SchemeE2E(s)TTFT(ms)ITL(ms)Accuracy(%)Weights size(GB)
Qwen3-30B-A3BBF1657.122084.4126.2391.161.08
Qwen3-30B-A3BW8A854.942553.0624.6090.831.29
Qwen3-30B-A3BW4A4_W8A852.972299.5123.8489.421.59

2. 基于 Scheme 的量化架构

重构将量化路径划分为四层:

  • Quant Config:解析检查点元数据并选择量化路径。
  • Linear/MoE Method:适配 SGLang 层接口并委托操作。
  • Scheme:定义格式与层特定参数、形状及加载行为。
  • Kernel:执行后端特定权重变换与运行。
Scheme-based quantization architecture

Scheme 与 Kernel 之间的边界至关重要。Scheme 描述检查点如何映射到 SGLang 层,而 Kernel 实现特定后端的操作。这使得多种检查点格式可共享同一内核,并将硬件特定逻辑隔离在面向格式的代码之外。

3. 优势:更快开发与更广复用

新架构使检查点格式与硬件后端可独立演进。多个格式可复用同一硬件内核,减少重复代码。

Multiple quantization schemes reusing shared hardware kernels
  • 变更更小、更易审查
  • 测试更聚焦
  • 代码重复减少
  • 可扩展至 MoE、注意力、KV 缓存等

4. 未来工作

路线图重点包括完成 Config → Method → Scheme → Kernel 重构、扩展 W8A8/W4A4/MXFP 支持,以及评估 MXFP6 等新低比特方法。

5. 致谢

感谢华为 Ascend 团队与 SGLang 社区贡献者。

附录

复现命令见原文。