华为推出 SINQ:助力高效运行大语言模型的开源量化方法

阅读约需 6 分钟
华为推出 SINQ:助力高效运行大语言模型的开源量化方法

SINQ为何对日常部署大语言模型至关重要

大语言模型对内存的需求很高。这也是运行先进模型往往需要高端数据中心 GPU 和昂贵云端节点的原因之一。华为苏黎世计算系统实验室推出了 SINQ,这是一种旨在改变这一现状的新量化方法。该方法名为 Sinkhorn 归一化量化,目标是在尽量减少输出质量损失的同时降低内存占用,并以 Apache 2.0 许可证开源。团队称,SINQ 速度快、无需校准,而且易于集成到现有模型工作流中。

目录
  1. SINQ为何对日常部署大语言模型至关重要
  2. SINQ与以往量化方法有何不同
  3. 测试中的内存节省、速度与质量
  4. 对硬件和云成本的影响
  5. 开发者现在可以使用什么
  6. 技术亮点解读
  7. 双轴缩放
  8. Sinkhorn-Knopp 归一化
  9. 无需校准的设计
  10. 局限与实践注意事项
  11. 为何其意义不止于一家企业
  12. 要点

量化会减少表示模型权重所用的位数。从 16 位或 8 位浮点数改为 4 位整数,内存占用可减少一半以上。但要实现这样的节省而不损失准确率并不容易,尤其是在低于 8 位时。SINQ 的核心优势在于,即使精度低至 4 位,某些情况下甚至低至 3 位,也能保持较高的质量,同时比许多已知方法应用起来更快。

根据作者对多种模型和架构的测试,SINQ 可将内存占用减少约 60% 至 70%。如此大幅的降幅让许多模型可以在单张消费级 GPU 上运行,例如配备 24 GB 内存的 Nvidia GeForce RTX 4090,而无需使用 A100 或 H100 等企业级 GPU。对于云端工作负载,价格较低的实例也能处理长时间运行的推理任务,长期下来可节省数千美元。对实验室、初创公司和本地开发者而言,在工作站上运行高性能模型的门槛也随之降低。

广告

SINQ与以往量化方法有何不同

目前大多数大语言模型量化方法只量化权重。权重是模型各层中经过学习的参数,也是模型体积的主要组成部分。激活值也可以量化,但通常会增加复杂度并影响运行时间。许多广泛使用的方法会在称为校准的准备阶段投入计算时间,寻找能将量化误差降至最低的缩放因子。校准需要使用一组样本数据,并对模型进行额外遍历。虽然它有助于提升质量,但需要耗费时间、谨慎选择提示词,也会让工作流变得复杂。

SINQ 采用了不同的方法。它引入了两个相互关联的思路,旨在将权重舍入到低精度格式之前,让权重分布保持良好状态。首先,双轴缩放会沿权重矩阵的行和列分别应用缩放向量。与针对整个张量或每个通道使用单一缩放因子的做法相比,这种方法能进行更精细的控制。它以一种降低离群值和局部失衡影响的方式分散误差。

其次,SINQ 使用了受 Sinkhorn-Knopp 归一化启发的流程。该算法交替进行简单的归一化,以平衡行和列的统计特征。在 SINQ 中,这种方法会对行和列的标准差进行归一化,避免权重矩阵的任何部分占据主导地位。这一平衡步骤能改善权重对量化的适应性,并在无需耗费大量成本获取逐层校准数据的情况下,降低整体误差。

广告

测试中的内存节省、速度与质量

作者报告称,与全精度权重相比,SINQ 可稳定减少 60% 至 70% 的内存占用,并且在多种架构上的准确率接近原始模型。实际上,原本需要 60 GB 以上内存的模型,所需内存可降至约 20 GB。在普通 GPU 上,这一变化可能决定模型能否完整载入内存,还是会溢出到速度较慢的主机 RAM。

无论是在研究还是生产环境中,量化速度都很重要。据报告,SINQ 的模型量化速度约为 HQQ 的两倍,超过 AWQ 的 30 倍。对于需要反复迭代模型的团队而言,这样的时间差异可以将数小时的预处理缩短为更快的一步,使其能够纳入开发循环。

质量通过困惑度和翻转率等指标进行评估。困惑度衡量语言模型预测文本的能力;翻转率则统计量化后排名靠前的词元发生变化的频率。在多项基准测试中,与其他无需校准的基线方法相比,SINQ 的困惑度更低,翻转率也更低,表明输出更加稳定。该方法也适用于非均匀量化方案,还可以与校准结合使用,以进一步提升准确率。

广告

对硬件和云成本的影响

推理成本随内存需求而变化。能够装入单张 GPU 的模型无需昂贵的模型并行配置,也能避免网络开销。SINQ 降低内存占用后,许多中大型模型都能在一张大显存消费级显卡上运行。对于此前依赖 A100 或 H100 节点的运营方,改用价格更实惠的 GPU 提供服务,可以降低月度账单,并将高端硬件腾出来用于训练。

云服务用户可以选择规格更小的 GPU 实例,或在每个节点上同时运行更多模型。对于聊天助手或检索增强生成服务等长时间运行的任务,改用成本较低的 GPU,数周或数月下来可节省数千美元。对于希望将数据保留在内部的团队而言,规模更小的本地集群也变得切实可行。

此外,延迟和能耗也可能受益。设备数量减少、跨节点调用变少,以及主机与设备之间的内存传输减少,都有助于降低响应时间和功耗。综合来看,服务技术栈会更加精简,涉及的环节也更少。

广告

开发者现在可以使用什么

SINQ 已根据 Apache 2.0 许可证开源。此次发布包含实现代码、从热门模型仓库量化模型的说明,以及保存和重新加载量化权重的工具。软件包还提供评估接口,便于团队在部署前测量困惑度和翻转率,并开放了相关参数,供从业者根据不同硬件和准确率目标进行调节。

作者表示,计划发布预量化模型,并希望将其集成到 Hugging Face Transformers 生态中。这样一来,开发者就能通过熟悉的 API 加载量化检查点,从而简化采用流程。自行管理推理技术栈的团队可以先量化权重,再将结果接入所选运行环境中支持 4 位或 3 位存储格式的内核。

技术亮点解读

SINQ 被设计为模型准备流程中的即插即用步骤。它的目标是调整权重矩阵,使低精度表示能够保留推理所需的结构,然后将调整后的权重映射到紧凑的整数格式。

双轴缩放

传统的逐张量或逐通道缩放只沿一个方向应用单一因子。双轴缩放则会在每个权重矩阵的行和列方向分别应用一个向量。当某些行含有离群值,或某些列的方差较大时,这种做法会更有帮助。通过对两个方向进行归一化,该方法能让量化误差在矩阵中分布得更加均匀,从而减少突出的误差峰值,更好地保留权重之间的相对大小。

Sinkhorn-Knopp 归一化

Sinkhorn-Knopp 是一种经典的迭代流程,通过交替进行简单的归一化来达到平衡状态。在 SINQ 中,目标并不是得到双随机矩阵,而是平衡各行和各列的标准差。算法会反复重新缩放行和列,使其标准差趋近目标值。矩阵达到这种平衡后,量化处理的权重分布极端值更少,从而降低舍入误差。该流程速度快,与耗时更长的校准遍历相比,额外开销很小,而且不需要校准数据集。

无需校准的设计

校准阶段需要选取一组提示词,运行模型以收集统计数据,然后计算缩放因子。这会增加工作流程的复杂性;如果校准集与生产环境的使用情况不匹配,还可能使结果产生偏差。SINQ 直接基于权重统计数据进行处理,跳过了这一步。对许多团队而言,省去校准能让自动化更简单、结果更容易复现。如果项目仍然需要校准,也可以将 SINQ 的权重调整与校准搜索结合,进一步追求最高准确率。

局限与实践注意事项

报告的大部分收益来自仅对权重进行量化。生成过程中,激活值和键值缓存仍会占用内存,尤其是在提示词和输出较长时。有些运行环境支持激活值量化和 KV 缓存压缩,但这些步骤也各有取舍。团队应测量端到端的内存占用和延迟,而不能只看磁盘上的模型大小。

运行环境的支持也很重要。若要在推理时实现加速,内核必须能够高效读取打包后的 4 位或 3 位权重。llama.cpp、TensorRT LLM、vLLM 等热门引擎都在快速发展,但并非所有精度、注意力内核和 GPU 架构的组合都同样成熟。将服务部署到生产环境之前,应针对确切配置测试吞吐量、延迟和稳定性,包括批次大小和上下文长度。

极低精度可能会给某些任务带来压力。代码生成、工具调用和结构化输出,可能比日常聊天更敏感。困惑度等指标很有参考价值,但生产环境测试还应涵盖任务准确率、响应风格和安全检查。如果某个应用场景对质量要求极高,可以采用混合精度,或对敏感层选择更高精度,从而在保留大部分内存节省的同时维持质量。

为何其意义不止于一家企业

量化已成为实际部署大语言模型的基础。快速、无需校准且在低精度下仍有效的开源方法,有助于整个生态的发展。更低的内存占用让教育、公益项目和小型企业也能更广泛地使用高性能模型。这种方法还能缓解高端 GPU 供应紧张的压力,为训练和研究释放算力。

推理工具领域的竞争正在加速。SINQ 等方法可以与高效注意力内核、分页式 KV 缓存和优化调度器配合,以更低成本实现更高的每秒词元数。带来的不仅是更便宜的服务,也让关注隐私、数据本地化和技术栈自主权的团队有了更多选择。

要点

  • 华为的 SINQ 是一种面向大语言模型权重的开源量化方法,采用 Apache 2.0 许可证发布
  • 据报告,SINQ 可减少 60% 至 70% 的内存占用,并在 4 位精度下保持较高质量,某些情况下也支持 3 位精度
  • 该方法无需校准,旨在轻松集成到现有工作流中
  • SINQ 采用双轴缩放和 Sinkhorn-Knopp 风格的归一化来平衡权重矩阵
  • 据报告,量化速度约为 HQQ 的两倍,超过 AWQ 的 30 倍
  • 与基线的免校准方法相比,质量指标有所改善,困惑度和翻转率更低
  • 原本需要 60 GB 以上内存的模型,现在可在约 20 GB 内存上运行,从而能够部署在 RTX 4090 等消费级硬件的单张 GPU 上
  • 后续计划包括集成 Hugging Face Transformers,以及发布预量化模型
分享本文

猜你喜欢