概述
这很重要,因为大模型中的激活包含通常会破坏低精度数学的极端异常值,而 SmoothQuant 可以驯服它们。
深入探讨
当您将模型从 16 位浮点数缩小到 8 位整数时,权重很容易压缩,但激活却很麻烦:某些通道携带的值比其他通道大 10 到 100 倍,并且强制它们进入粗略的整数网格会破坏准确性。 SmoothQuant,由Xiao等人介绍。在 2022 年,观察到权重是平滑且易于量化的,而激活是尖峰的。因此,它在数学上转移了难度:它将激活通道除以每个通道的比例,并将相应的权重乘以相同的比例。这两个操作取消,使模型输出保持不变,但现在两个张量都处于友好的范围内。结果是 W8A8(8 位权重和激活)推理,精度损失接近于零,加速速度提高了大约 2 倍,并节省了内存。
现实世界的实施
通过将内存和矩阵乘法成本减半,在 W8A8 上使用更少的 GPU 提供 70B 参数 LLM
在 NVIDIA Hopper/Blackwell 张量核心上启用 INT8 推理,原生加速 8 位整数数学
在成本受限的云端点上部署聊天模型,其中吞吐量加倍可直接削减每个令牌的费用
压缩 Transformer 编码器以实现设备上语音或翻译,其中 8 位内核运行得更快、更凉爽
SmoothQuant 和激活量化的未来
SmoothQuant 确定激活异常值是可迁移的而不是不可避免的,并且该想法现在支持生产 INT8 和 FP8 服务。期望平滑与更细粒度的方案相结合,例如每组量化、学习缩放和 4 位激活研究(例如异常值感知方法)。随着 FP8 硬件(Hopper、Blackwell)的成熟,平滑式平衡将继续融入编译器和推理引擎管道中,因此量化几乎保持免费。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是 SmoothQuant 和激活量化?
SmoothQuant 是一种技术,可以将大型语言模型的权重和激活压缩为 8 位整数,而无需重新训练。这很重要,因为大模型中的激活包含通常会破坏低精度数学的极端异常值,而 SmoothQuant 可以驯服它们。
SmoothQuant在低精度推理中具体解决什么问题?
SmoothQuant 的目标是某些激活通道中出现的大异常值,否则当激活量化为 8 位时,这些值会破坏准确性。
SmoothQuant 如何使激活更容易量化?
它将激活通道除以每个通道的尺度,并将匹配权重乘以该尺度,因此乘积不变,但两个张量都变得更容易量化。
W8A8 符号是什么意思?
W8A8 表示权重 (W) 和激活 (A) 的 8 位量化,SmoothQuant 能够以最小的精度损失实现该机制。
为什么 SmoothQuant 的缩放基本上不会增加运行时开销?
平滑尺度提前折叠到前一层的权重或融合运算中,因此推理时不会发生额外的计算。
alpha 超参数在 SmoothQuant 中起什么作用?
Alpha(通常为 0.5)平衡平滑因子,决定将多少量化难度从激活转移到权重上。