概述
这就是为什么您可以在单个消费级 GPU 而不是数据中心机架上运行功能强大的模型。
深入探讨
训练后量化 (PTQ) 无需重新训练即可压缩完成的模型,将高精度权重映射至 4 位,大约占用四分之一的内存。挑战在于在不破坏准确性的情况下做到这一点。 GPTQ(OBQ 的改进)逐层量化权重,使用来自小型校准数据集的二阶信息来调整剩余权重并补偿每个舍入误差。 AWQ(激活感知权重量化)采取不同的角度:它观察到一小部分权重通道异常重要,通过查看激活幅度来识别,并通过缩放而不是积极量化它们来保护这些显着通道。两者都允许像 Llama 这样的模型以 4 位运行,而 vLLM、llama.cpp 和 AutoGPTQ 等工具使它们成为本地且经济高效的推理的主流。
现实世界的实施
使用 4 位 GPTQ 权重在单个 24 GB 消费级 GPU 上运行 700 亿参数的 Llama 模型。
AWQ 量化模型在 vLLM 中以高吞吐量提供服务,以实现经济高效的生产 API。
llama.cpp 使用量化的 GGUF 权重在笔记本电脑 CPU 上本地运行语言模型。
Hugging Face 的 AutoGPTQ 和 AutoAWQ 库让开发人员可以用几行代码量化下载的模型。
GPTQ 和 AWQ 训练后量化的未来
量化正在将 4 位以下推向 3 位、2 位和混合精度方案,通常与稀疏性相结合。期望与服务引擎更紧密地耦合,以便量化、KV 缓存压缩和推测解码一起工作。对 NVFP4 和 MXFP4 等低位格式的硬件支持正在成熟,自动化工具将越来越多地选择每层位宽度。总体目标是将近乎无损的 4 位(及更低位)作为默认值,使强大的模型能够廉价地服务于任何地方。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是 GPTQ 和 AWQ 训练后量化?
GPTQ 和 AWQ 是将已训练的语言模型缩小到 4 位精度的两种领先方法,以便它们在更便宜、更小的硬件上运行。这就是为什么您可以在单个消费级 GPU 而不是数据中心机架上运行功能强大的模型。
“训练后量化”是什么意思?
训练后量化会降低最终模型权重的精度(例如,降低到 4 位),而无需从头开始重新训练。
GPTQ 在量化时使用哪些信息来补偿舍入误差?
GPTQ 使用近似 Hessian 矩阵来了解量化一个权重如何影响损失,然后调整剩余权重进行补偿。
哪些关键洞察推动了 AWQ(激活感知权重量化)?
AWQ 使用激活幅度识别显着权重通道,并通过缩放来保护它们,因为少数通道的重要性不成比例。
与 16 位权重相比,4 位量化大约可以节省多少内存?
每个权重从 16 位变为 4 位,将权重内存减少到大约四分之一,大约减少了 4 倍。
为什么 GPTQ 和 AWQ 通常都会量化权重但保持激活精度更高?
权重是主要的内存成本,而激活对精度损失更敏感,因此仅权重量化是常见的最佳点。