单H200部署1TB模型:INT4 QAT RL端到端实践

受Kimi K2团队启发,SGLang RL团队成功实现INT4 Quantization-Aware Training (QAT)全流程。通过训练阶段的fake quantization和推理阶段的真实W4A16量化,实现了与BF16全精度相当的稳定性和训推一致性。极致INT4压缩让约1TB规模模型单节点H200(141GB)部署,避免跨节点通信瓶颈,大幅提升部署效率。本文详解开源生态下完整pipeline的技术细节,提供高性能低成本的实用参考。项目由SGLang RL、InfiXAI、蚂蚁集团Asystem & AQ Infra、slime和RadixArk团队联合完成,已同步至slime和Miles社区。(128字)

引言

近日,SGLang RL团队在RL训练稳定性、效率和应用场景上取得重大进展,包括:

  • INT4 QAT端到端训练:实现从训练到推理的完整QAT INT4闭环解决方案,并提供详细技术配方,显著提升部署效率和稳定性。
  • 统一多轮VLM/LLM训练:提供VLM多轮采样范式实现博客,开发者只需编写自定义rollout函数,即可轻松启动VLM多轮RL,如同训练LLM。
  • Rollout Router Replay:实现Rollout Router Replay机制,大幅提升MoE模型RL训练稳定性。
  • FP8端到端训练:成功实现RL场景下端到端FP8训练和采样,进一步释放硬件性能。
  • RL中的推测解码:成功实践RL场景下speculative sampling,实现大规模训练无损加速。

在此基础上,我们更进一步:在slime框架上复现并部署端到端INT4 QAT解决方案:INT4 Quantization-Aware Training (QAT)。该方案深受Kimi团队K2-Thinking技术报告及其W4A16 QAT实践启发:W4A16 QAT。为致敬先驱并回馈社区,本文剖析开源生态下构建全pipeline的技术细节,提供兼顾稳定性和性能的实用参考。

关键益处一览:

  • 打破显存瓶颈:权重压缩与低比特量化,让~1TB规模K2类模型压缩至单H200(141GB)GPU,避免跨节点通信瓶颈。
  • 训推一致性:训练采用QAT塑形权重为INT4友好分布;推理使用W4A16(INT4权重、BF16激活),均依赖BF16 Tensor Cores,实现与BF16全精度相当的训推一致性。
  • 单节点效率翻倍:超大模型下,INT4大幅降低显存和带宽压力,部署效率远超W8A8(FP8权重、FP8激活)。

本项目由SGLang RL团队、InfiXAI团队、蚂蚁集团Asystem & AQ Infra团队、slime团队、RadixArk团队联合完成。相关特性和配方已同步至slimeMiles社区,欢迎试用与贡献。我们正进一步挑战MXFP8和NVFP4,并感谢Verda Cloud的算力赞助。

技术概述

整体Pipeline

我们实现了从训练到推理的完整INT4 QAT闭环,如下图所示:

端到端QAT INT4 pipeline

QAT训练阶段,训练侧维护BF16主权重,前向传播通过fake quantization引入量化噪声。“Fake”指不真正将BF16张量转为低精度INT4存储,而是保留浮点计算路径,插入QDQ (Quantize-DeQuantize)操作模拟低精度运算。具体而言,高精度权重先“离散化”至INT4后立即恢复,虽物理dtype仍为浮点,但值精度有效降低。原值与恢复值差异引入量化误差,等价于向网络注入噪声,通过梯度更新迫使模型适应精度损失。

反向传播使用STE (Straight-Through Estimator)绕过量化的不可微性。核心量化操作rounding为阶跃函数,导数几乎处处为0,会阻断梯度流。STE采用“straight-through gradient estimator”策略:反向时将rounding导数定义为1(视作恒等映射),如建桥过崖,让梯度穿越rounding层更新高精度浮点权重,闭合QAT训练循环。

权重转换阶段,导出收敛BF16权重,进行真实量化,转为推理引擎(如Marlin)适配的INT4格式。

RL rollout阶段,SGLang加载INT4权重,运行高效W4A16推理(INT4权重×BF16激活)。生成经验数据回流首阶段,形成自洽闭环。

关键策略选择

量化格式遵循Kimi-K2-Thinking,选用INT4 (W4A16)。相较FP4,INT4在现有硬件(Blackwell前)支持更广,生态有成熟高性能Marlin内核。实验显示,1×32 scale粒度下,INT4动态范围足、精度稳,性能与工具优化到位。作为行业“够用”量化标准,INT4在性能、风险与维护成本间取得理性平衡。未来我们计划在NVIDIA Blackwell GPU上探索FP4 RL。

训练采用经典fake quantization + STE组合:维护BF16主权重,前向模拟量化噪声,反向直传梯度,最大化低精度训练收敛与稳定性。

训练侧:Megatron-LM的Fake Quantization改造

Fake Quantization与STE实现

训练侧Fake Quantization & STE

该阶段核心目标是训练中实时模拟量化误差,迫使模型“学习”适应低精度表示。因此采用fake quantization:权重以BF16存储与更新,前向临时映射至INT4精度范围。

实现上,核心逻辑位于megatron/core/extensions/transformer_engine.py中的_FakeInt4QuantizationSTE类。基于per-group max abs值动态量化,模拟INT4的[-7, 7]范围与裁剪,但仍以BF16计算,仅注入量化误差。关键反向传播引入STE,确保梯度不变穿越量化层更新主权重,保持训练连续性。

Fake Quantization消融实验

为验证QAT必要性并研究训推精度不匹配影响,我们设计两不对称场景消融:

  • QAT INT4训练开启,BF16 rollout
  • QAT训练关闭,直接INT4 rollout

使用log probabilities绝对差(Logprob Abs Diff)衡量训推不一致。

Rollout BF16,训练侧QAT INT4效果对比 Rollout INT4 weight-only,训练侧QAT INT4效果对比

左图显示“QAT INT4训练 + BF16 rollout”(红曲线)。有趣的是,即使用高精度BF16推理,误差仍显著更高。因QAT已通过“补偿”适应INT4量化噪声,若推理移除量化,该补偿转为扰动,导致分布偏移

右图显示“无QAT训练 + 直接INT4 rollout”(红曲线),对应典型post-training quantization (PTQ)场景,结果显示显著训推不一致,验证QAT必要性。