跳到主内容
快讯直播
AI智模界
AI 词典

量化(Quantization):把 16 位压到 4 位,省下了什么、损失了什么

一句话定义

量化(Quantization)就是用更少的比特数来表示模型里的数字:把常见的 16 位浮点(FP16)权重和激活值,压成 8 位整数(INT8)甚至 4 位整数(INT4)。核心是牺牲一点数值精度,换更小内存、更快速度和更低功耗。

打个比方

16 位精度像用毫米尺量身高,能记录 173.2cm;4 位精度像只分“矮、中、高、很高”四档,173.2cm 和 173.8cm 可能都被记成“高”。记录省地方、搬运快,但细节变粗。

原理不复杂

模型里的数原本是浮点数,有符号、指数、尾数。量化要找一个缩放因子(scale)和零点(zero-point),把真实值映射到整数区间:

q = round(x / scale) + zero_point

反量化时再近似还原:x ≈ (q - zero_point) * scale。4 位整数只有 16 个格子,能表示的档位很少;8 位有 256 个格子,就细一些。为了减少误差,通常不会全模型共用一个 scale,而是按通道(per-channel)或按组(per-group)分别量化。

按时机分,常见有训练后量化(PTQ)和量化感知训练(QAT)。PTQ 快,但激活值动态范围大、异常值多时容易掉点;QAT 让模型在训练时“习惯”低精度,效果更稳,但成本更高。

省下了什么

  • 内存和显存:16 位到 4 位,理论上参数占用约为原来的四分之一。
  • 带宽:权重从内存搬到计算单元的次数没变,但每次搬的字节少了。
  • 算力和功耗:低比特整数运算通常比浮点更快、更省电。
  • 部署门槛:大模型更有机会跑在消费级显卡、手机、边缘设备上;长上下文的 KV Cache 也能量化。

损失了什么

损失的是“表示精度”。量化误差、舍入误差会累积;异常值(outlier)会把 scale 拉大,让正常值挤在很小的范围里。激活值比权重更难压,所以常见做法是权重 4 位、激活 8 位或 16 位的混合精度。

实际表现上,低比特版可能在这些地方变差:长尾知识、数学推理、代码生成、多语言、指令遵循稳定性,幻觉也可能增加。校准数据选得不好,效果会更差。通常首尾层、嵌入层、输出层更敏感,需要保留更高精度。

和相邻概念的区别

概念做什么参数量变吗
量化降低每个参数的比特数基本不变
剪枝(Pruning)删掉不重要的连接或结构变少
蒸馏(Distillation)让小模型学大模型换模型
低秩分解把大矩阵拆成小矩阵相乘变少

量化不是 zip 压缩,它改变的是计算时的数值表示,不只是存储格式。

对从业者和普通人的意义

对从业者:部署前先测基线,再试 PTQ,不行再考虑 QAT;重点关注校准集、异常值处理、按通道/按组量化,以及端到端指标,而不是只看模型体积。具体支持哪些量化格式、精度如何,以官方页面和实测为准。

对普通人:量化让手机、笔记本能跑更强的本地模型,也可能降低云端推理成本。但同一个模型的不同量化版本,体验可能明显不同;选型时别只看“4 位”这个标签。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。