本地部署时几乎都会撞上同一个岔路口:同一个模型,仓库里挂着原版权重,也挂着一堆量化版本,体积差好几倍。下原版怕显存不够,下量化版又怕变笨。这篇不给你拍板结论,而是把两者的差别拆成可核对的三块——文件与显存、能力掉在哪、怎么自己验一遍,最后给一份按场景选档位的动作清单。
本地部署时几乎都会撞上同一个岔路口:同一个模型,仓库里挂着原版权重,也挂着一堆量化版本,体积差好几倍。下原版怕显存不够,下量化版又怕变笨。这篇不给你拍板结论,而是把两者的差别拆成可核对的三块——文件与显存、能力掉在哪、怎么自己验一遍,最后给一份按场景选档位的动作清单。
先记住一件事:量化不是「同一个模型换了个马甲」,它是拿一点精度换显存和速度的工程折中。折中划不划算,取决于你跑什么任务、机器是什么配置。别人说的「量化没影响」「量化明显变笨」都只是他那台机器上、那个任务上的结论,不能直接搬到你这。
量化到底改了什么:从文件到显存的三级差别
第一级差别最确定也最好理解:原版权重一般用高精度浮点存放,量化版把权重压成低位宽整数,文件体积和加载时的显存占用同步下降。这一级你不需要测,看一眼文件大小和显存峰值就能对上,是纯工程账。
第二级差别藏在推理路径里。有的方案只压权重,计算时再还原;有的连激活和 KV 缓存一起处理。后者在长上下文场景里的显存收益更明显,因为长上下文吃显存的大头往往不是权重,而是缓存。选之前先确认方案压的是什么,别只看权重那部分。
第三级才是效果,而且它不是均匀掉的。常见的说法是知识类问答掉得少、长链推理和代码生成掉得多,但具体幅度取决于模型、量化方法和档位,别拿别人的结论直接套。想看懂格式和档位的术语,可以到 /ai-dict/category/tech 对照;某个模型的规格说明在 /models 里查当时的说明。
| 差别层级 | 看什么 | 确定性 |
|---|---|---|
| 文件与显存 | 文件大小、加载峰值、KV 缓存占用 | 高,基本能直接对上 |
| 推理路径 | 只压权重还是连激活与缓存一起压 | 中,看方案说明 |
| 实际效果 | 指令跟随、长上下文、代码与数学 | 低,必须自己测 |
效果差异通常出现在哪几类任务上
量化带来的误差不会平均洒在所有任务上,它更像是在「精确度要求高、链路长」的地方冒头。知道它常在哪暴露,你就能有针对性地测,而不是漫无目的地聊两句感觉还行就上生产。
- 指令跟随和格式约束:让它严格输出 JSON 或固定字段时,量化版更容易跑偏或漏字段,这里是第一暴露点
- 长上下文与多轮:上下文一长误差被放大,表现是答非所问、把前面的话记串,而不是明显的胡说
- 代码与数学:需要多步精确运算的任务对精度最敏感,档位低时错误率上升会更明显
- 纯闲聊、摘要、简单分类:低档量化和原版在体感上往往分不出,纠结档位不如把提示词写清楚
- 边界情况:如果你的任务本身就是创意生成、容错很高,那纠结档位的收益远不如把输入格式和流程固定下来
怎么在自己机器上验一遍:一套可复用的对照流程
与其信帖子,不如花半天做一次对照实验。核心原则只有一条:同一台机器、同一套推理参数,每次只改模型文件这一个变量。这样你得到的差异才能归到量化上,而不是别的什么。
- 固定测试集从真实业务里挑 20 到 30 条典型请求,覆盖短问、长上下文、需要严格格式三类,存成同一个文件,之后每次都跑它。
- 固定推理参数温度、上下文长度、并发都保持一致,只替换模型文件,其他一律不动。
- 记录三项结果能不能跑起来(显存峰值)、任务通过率(人工看或写规则判)、生成速度(首字延迟和每秒出字)。
- 对比并留档原版和你打算用的量化档位各跑一遍,把结论写下来,之后换模型换机器直接套这套流程。
- 先估再决定显存和并发怎么算,先用 /models/deploy 的部署测算过一遍,再判断要不要为原版加卡。
验完你会得到三个数字:显存峰值、通过率、速度。这三个数字才是你做决定的依据。至于当前各家硬件和方案的参考数字,到 /price-watch 看当时的记录,别拿旧帖子里的当准。
按场景选档位的动作清单
验完之后的动作其实很简单:按你的约束选,而不是按「越高越好」选。下面几条是常见的取舍方向,具体档位数值随模型和方法变化很大,所以这里只说方向。
| 你的场景 | 优先动哪一头 | 理由 |
|---|---|---|
| 显存刚好卡边界 | 先降档位,别急着换小模型 | 同档位下小模型的能力损失通常比大模型量化更大 |
| 长上下文或高并发 | 先看 KV 缓存占用,量化收益主要来自这块 | 权重不是大头,缓存才是 |
| 代码、数学类任务 | 至少留一档余量,宁可选宽一点的显存配置 | 多步精确运算对精度最敏感 |
| 本地知识库问答、摘要 | 低档位通常够用,省下的显存换更长上下文 | 容错高,体感差异不明显 |
最后提醒一句:别死记某个档位数字。同样的档位在不同模型、不同量化方法下差别很大,遇到拿不准的情况,回到上面那套对照流程实测一遍,比查任何攻略都准。部署估算可以配合 /models/deploy 和 /compute/sizing 一起用。
下一步想按自己的机器和任务算一遍再决定,去部署测算页把参数量、上下文长度和并发填进去,对照当时的结果选档位。→常见问题
量化版是不是一定比原版差?
不一定是「差」,而是误差分布变了。低档位下,简单任务经常和原版打平,需要精确多步推理或严格格式输出的任务才容易露馅。所以判断标准应该是「你的任务对精度有多敏感」,而不是「量化等于缩水」。另外推理框架和量化方法也会影响结果,同一档位换个实现可能又不一样。
显存不够,我应该降量化档位还是换个更小的模型?
先看缺多少。缺口小,降一档量化通常比换模型损失更小,因为模型规模带来的能力差距往往比同档量化的精度损失更大。缺口大,硬压档位会拖慢速度还可能跑不稳,这时候换小模型或者上更多卡更实际。具体缺多少、一张卡能跑多长上下文和多高并发,用站内的部署测算和显存估算工具先算一遍再决定。
量化版能用来微调吗,还是只能推理?
要分开看。低位宽权重通常是为推理准备的,直接在上面做微调会受限,很多训练流程要求用原版或高精度权重。如果目的是微调,一般路线是先拿原版或高精度权重训练,训练完再导出量化版本用于部署推理,这样两头都合适。具体某个量化格式支不支持训练,看它自己的说明文档更靠谱。