技术指南

模型量化

模型量化通过将数字存储在更少的位中来缩小神经网络,因此相同的模型可以在更小的硬件上运行得更快。

阅读时间:2分钟最后更新

概述

It is the main reason large models can fit on a single GPU, a laptop, or even a phone.

深入探讨

经过训练的模型通常将每个权重存储为 32 位或 16 位浮点数。量化取代了 8 位整数 (INT8) 或 4 位值 (INT4) 等低精度格式,从而将内存节省了大约 4 到 8 倍。一个 700 亿参数的模型在 16 位下需要大约 140GB,在 4 位下则需要大约 35GB,适合一个消费级 GPU。问题在于准确性:将大范围的值压缩到 256 或 16 个桶中会丢失细节。 GPTQ、AWQ 和 QLoRA 中使用的 NF4 格式等现代方法选择智能缩放因子并保护最敏感的权重,因此质量损失通常很小。量化是 llama.cpp 和 Ollama 等工具无需数据中心即可在本地运行强大模型的原因。

技术洞察

量化使用标度和零点将实数值映射到小整数网格:stored_int = round(value / scale) + Zero_point。选择好尺度就是整个游戏的关键。每通道或每组缩放为权重矩阵的切片保留单独的缩放,从而在重要的地方保持精度。训练后量化只是转换完成的模型,而量化感知训练会在训练期间模拟舍入,以便网络学会容忍它,通常会提供更好的低位精度。

战略影响

成本与预算

多年来,架构决策决定着性能和运营成本。

更清晰的判决

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

质量控制

更好的工程选择可以减少生产中的可靠性事故。

模型量化的未来

预计越来越低的精度将成为常态。研究正在推动可靠的 4 位、2 位甚至二进制权重,以及保持敏感层更高的混合精度方案。硬件如下:GPU 和手机芯片现在包含原生 INT8、INT4 和 FP8 数学单元。 FP8 和 MXFP4 等格式旨在将浮点数的范围与整数的大小结合起来。与 QLoRA 等技术相结合,量化将不断降低前沿模型在日常设备上运行和微调的成本。

现实世界的实施

使用 llama.cpp 或使用 4 位 GGUF 文件的 Ollama 在笔记本电脑上运行 7B 或 13B Llama 模型。

QLoRA 通过将基本权重冻结在 4 位 NF4 中来微调单个 GPU 上的大型模型。

在具有设备运行时的手机上部署 INT8 模型,以便助手可以离线且私密地工作。

为更便宜的 API 端点提供服务,其中 INT8/FP8 量化使吞吐量大致翻倍并降低内存成本。

风险与防护栏

优化一项基准测试可以隐藏更广泛的系统弱点。

基础设施和维护成本常常被低估。

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

2

在实际负载和数据条件下进行基准测试。

3

仪器监控错误、漂移和用户影响。

4

在扩展之前准备回滚和事件响应路径。

不断探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Model Quantization quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

开始测验

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一个指南

模型注册表

常见问题

What is Model Quantization?

模型量化通过将数字存储在更少的位中来缩小神经网络,因此相同的模型可以在更小的硬件上运行得更快。这是大型模型可以安装在单个 GPU、笔记本电脑甚至手机上的主要原因。

模型量化主要改变神经网络的什么?

量化以更少的位存储相同的参数(例如 INT8 或 INT4,而不是 16 位或 32 位浮点数),从而减少内存并加快数学运算速度。

将模型从 16 位转换为 4 位大约可以节省多少内存?

从每个权重 16 位变为 4 位,存储空间减少了约四倍,这就是为什么大型模型可以安装在单个 GPU 上的原因。

激进的低位量化的主要缺点是什么?

将广泛的值映射到几个离散的级别会丢失细节,这会降低质量,除非智能缩放可以保护敏感权重。

量化感知训练与训练后量化有何不同?

量化感知训练将舍入误差构建到训练循环中,因此网络可以适应并通常在低位宽下保持更高的准确性。

哪种技术使用 4 位量化来在一个 GPU 上实现大型模型的微调?

QLoRA 将基本模型保持在 4 位 NF4 格式中并训练小型适配器权重,从而使大型模型可以在适度的硬件上进行微调。