X:000 · Y:000SECTOR / AIv0.9.SIGNALNO_ADS // NO_TRACK
CILLIAN.AI
← MEMORY

量化入门:用更少的位数保存权重

FP16、INT8、INT4 差在每个参数用多少位。显存会下降,数值误差和格式稳定性不一定按同样比例变好。验收要用自己的题,不要只看榜。

2 MIN READ~1200 CHARS

量化是把模型权重从较高精度,换成用更少位数表示的格式。目的通常不是「让模型更聪明」,而是让同一张卡放下权重,或在同样显存里留出更多地方给 KV cache 和并发。

位数和常见名字

一个参数占的字节大致是位数除以 8。

格式 大约字节 / 参数 常见用途
FP32 4 训练里的主精度,推理很少整模这样放
FP16 / BF16 2 推理的默认高精度
FP8 1 新卡上的推理或训练混合精度
INT8 1 权重量化,误差通常小于 4 bit
INT4(GPTQ、AWQ 等) 0.5 显存最紧的时候

GPTQ、AWQ 是两种把权重量到大约 4 bit 的算法,差别在校准数据和舍入方式,不是两种完全不同的模型。换算法之后,仍然要用同一组题看效果,不能只看名字。

它省的是什么,不保证省的是什么

权重大小随位数下降,这是稳定的收益。延迟不一定按同样比例下降。量化后的矩阵乘要走另一套 kernel,批量很小、或卡本来就不是算力瓶颈时,延迟可能几乎不变,偶尔还会变慢。

KV cache 是否一起变小,取决于推理引擎。很多部署里量化只动了权重,上下文一长,缓存仍按 FP16 涨。所以「量化之后并发可以翻倍」只在你重新算过 KV 之后才成立。KV 的体积见 KV Cache。

误差出现在哪里

平均分掉零点几,说明不了你的任务。量化误差更常出现在这些地方:

  • 专有名词、型号、数字被写错一个字符
  • 要求输出的 JSON 少字段或类型错了
  • 工具调用的参数名对不上
  • 本该拒答的题,开始用「一般来说」补全

聊天窗口里语气仍然通顺,程序一解析就失败。验收集里要有这些题,而不只是让人眼看「答得还行」。

一组可用的最小题集:

  1. 资料里没有答案、必须拒答的题
  2. 带专有名词和数字、错一字即失败的题
  3. 规定 JSON 字段的题
  4. 规定工具参数的题

条数不必多,几十条、并且是自己的业务句子,比公开榜更有用。FP16 和量化版用同一批题各跑一遍,记下对错、显存和首 token 时间,再决定切不切。

不要量化的东西

做对照的基线、给别的模型打分的裁判模型,留在模型卡要求的精度上。Embedding 模型一旦更换精度或版本,已经写入向量库的向量不能和新查询混用,要重建索引。这件事和 向量库运维 里的版本错配是同一类事故。

小结

量化是用位数换显存。先确认卡是不是放不下权重,再谈要不要降到 8 bit 或 4 bit。延迟和答案对不对,用自己的题和真实上下文测,不从榜单外推。

RELATED

NEXT STEP

本篇已归档到 MEMORY。继续解码相邻信号,或回到档案首页。