手里有张 A100 40G,想跑 70B 的模型给内部做问答系统,这大概是最近一年我被问得最多的一个场景。直接上 BF16 权重就要吃掉 140GB 显存,一张卡连零头都不够,于是很自然想到量化——压到 INT4 确实能把权重塞进 40G 里,可你真把服务挂上去,用户第一句话问长一点,回答质量就肉眼可见地往下掉:数字开始乱编、长上下文记不住前面的约束、少样本示例跟着学歪。这不是你调参水平的问题,是位宽压到极限之后的物理代价。这篇文章就从这个真实决策场景出发,把 INT4、INT8、FP8 三条路线的显存、吞吐、精度账一笔一笔算清楚,帮你按精度容忍度和并发量反推该选哪档位宽,而不是无脑压到最低。
很多人判断「能不能跑」只看权重占多少显存,结果上线就 OOM,因为漏了两块大头:KV cache 和激活/临时显存。推理显存要拆成三笔账来算,这个公式不搞懂,后面所有量化对比都是空中楼阁。
权重显存 = 参数量 × 每参数字节数。BF16/FP16 是 2 字节,INT8 是 1 字节,INT4 是 0.5 字节,FP8(E4M3)是 1 字节。所以一个 70B 模型:BF16 约 140GB,INT8 约 70GB,INT4 约 35GB。注意这里说的是「纯权重」,没算推理框架自身(CUDA context、碎片、注意力状态)的固定开销,A100 40G 上这部分通常要预留 3–5GB。
这是第一个信息增量,也是绝大多数部署事故的根源。自回归生成每生成一个 token,都要把历史 K、V 缓存下来,显存随序列长度和并发线性膨胀。单样本单层的 KV 字节数公式为:
KV_cache_单层 = 2(K 和 V)× hidden_dim × 每元素字节(FP16 为 2)
整模型整批次的 KV cache 总量 = 2 × n_layers × hidden_dim × seq_len × batch_size × 2(字节)。套到 70B(80 层、hidden 8192)上,序列 4096、并发 1:2 × 80 × 8192 × 4096 × 2 ≈ 10.7GB。并发拉到 16,光 KV cache 就 170GB,这时哪怕权重压到 INT4 的 35GB,总显存也早超了单卡——所以高并发问答场景,量化权重省下的空间会被 KV cache 吃回去一大半,别只看权重就乐观。
前向计算过程中的中间激活、注意力分数矩阵,在长序列下也不小,通常按权重显存的 10%–30% 估算。把三块加总才是真实占用:真实显存 ≈ 权重 + KV cache + 激活。下表给出常见规模在序列 4k、并发 1 时的估算(不含框架固定开销)。
| 模型规模 | BF16 权重 | INT8 权重 | INT4 权重 + KV cache(4k) |
|---|---|---|---|
| 7B | 约 14GB | 约 7GB | 约 3.5GB + 1.1GB |
| 13B | 约 26GB | 约 13GB | 约 6.5GB + 2.0GB |
| 70B | 约 140GB | 约 70GB | 约 35GB + 10.7GB |
| 8×A100 80G 整机 | 640GB 充裕 | 320GB 充裕 | 约 35GB,可上 INT8 跑满精度 |
把公式落地成选型动作:先定业务约束(模型规模、序列长度、目标并发、精度容忍度),再算总显存,再对卡。举例,70B、序列 4k、并发 8、要求精度高——权重 INT8 约 70GB,KV cache 约 10.7GB×8≈85GB,加激活约 20GB,总显存约 175GB,单卡 A100 40G 无论如何塞不下,至少 4 张 A100 40G(张量并行,月约 ¥1.12 万)或 8×A100 80G 整机(月估 ¥2.5–4 万,预估)。若精度容忍度高、并发低到 4,权重改 INT4 约 35GB,KV cache 约 43GB,总约 80GB,单张 A100 40G 仍显存不够——说明 70B 在 40G 上即便 INT4 也只能并发 1–2,想并发 4 至少双卡。这个反推比「看权重够不够」靠谱得多,也是后面硬件映射段的依据。
INT4、INT8、FP8 不是「越新越好」的升级关系,而是面向不同硬件和精度容忍度的三种取向。选错路,比不选量化更糟。
INT4 把每个权重压到半字节,70B 权重从 140GB 砍到 35GB,是单卡 A100 40G 跑 70B 的唯一现实路径。GPTQ 走后训练量化、按层补偿误差;AWQ(Activation-aware Weight Quantization)的思路更聪明——它发现真正影响输出的只是少部分的「显著权重」(激活值大的通道),只对这些权重做保护、其余正常量化,所以同是 INT4,AWQ 在多数任务上比朴素 GPTQ 掉点少。但 INT4 在数值密集、长上下文、少样本场景的退化是结构性的,后面会单独讲。
INT8 是部署界最老实的方案,权重和激活都按 INT8 算,算力在 A100、T4、3090 上都有现成 Tensor Core 支持。难点在激活量化:Transformer 的激活里有一批离群值(outlier),直接对称量化会把正常区间压成一条直线。工程上用「平滑量化 SmoothQuant」把激活的离群值分摊到权重上,再配合 per-channel 或 per-token 的缩放因子,能让 INT8 在多数业务任务上几乎无损(精度损失通常 <1% 相对 BF16)。代价是显存只省一半,70B 的 INT8 权重 70GB 仍装不进单张 40G。
这是第三个信息增量。FP8 不是「INT8 的另一种写法」,它是浮点格式(E4M3 用于前向、E5M2 用于梯度),动态范围比 INT8 宽得多,对离群值天然友好,校准也比 INT8 省心。但它要靠 H100(Hopper)或 L40S(Ada)的 FP8 Tensor Core 才跑得动,老卡 A100/T4 根本没有 FP8 硬件单元,强行用软件模拟反而更慢。NVIDIA 的 Transformer Engine 会在前向把 BF16 权重和激活转 FP8 做矩阵乘、再回积到 BF16,自动处理缩放因子——这就是 FP8 相对 BF16 的加速来源。公开基准里 H100 在 FP8 下做推理,密集算子的吞吐大约是同精度 BF16 的 1.5–2 倍,相对 A100 的 BF16 推理往往能到 2 倍以上,这也回答了「H100 FP8 比 A100 快多少」:不是简单的代际翻倍,是「FP8 格式红利 × Hopper 带宽红利」叠加,实测常落在 2–3 倍区间,具体看模型形状和批大小。
把三条路线和 BF16 基线放一张表里横评,结论一眼可见。下表「精度损失」指相对 BF16 基线的常见任务(语言理解/生成)得分下滑幅度,属社区基准与论文的中位区间,落到你自己的业务上要用真实评测集复测。
| 量化方案 | 显存占用 | 精度损失 | 吞吐表现 / 适用模型规模 / 月成本性质 |
|---|---|---|---|
| BF16(不量化) | 100%(基线) | 0,精度最优 | 吞吐最低;7B 可上单卡、70B 需 8×A100 80G;成本高,属精度优先型 |
| INT8(SmoothQuant) | 约 50% 权重 | 多数任务 <1% | 吞吐较 BF16 提升约 1.3–1.6×;7B/13B 单卡可跑、70B 需多卡;月成本中等,适合精度敏感业务 |
| FP8(Te/E4M3) | 约 50% 权重 | 约 0.5%–2% | H100 上较 BF16 约 1.5–2×;需 Hopper/Ada 硬件;适合高并发大模型推理,单机成本高 |
| INT4(AWQ/GPTQ) | 约 25% 权重 | 1%–5%,极端任务更高 | 吞吐提升约 2–3×;70B 可塞单卡 A100 40G;月成本最低,属容量优先型 |
量化不是孤立决定的,它和手里的卡强绑定。下面按「我能跑什么」来反推,这也是把方案落到采购/租用预算的硬约束。
A100 40G 是性价比很能打的一张推理卡,月付官网价约 ¥2800(以官网实时价为准)。它在 40G 显存下:7B 用 INT8 约 7GB 权重 + 少量 KV cache,从容跑满;13B 的 INT8 权重 13GB 也塞得下;但 70B 用 INT8 要 70GB,必须降到 INT4 的 35GB 才进得去,剩下的 5GB 出头留给 KV cache 和框架开销,并发只能压到很低(序列 2k 下并发约 4–8)。所以 A100 40G 跑 70B 的本质是「用精度换容量」,不是「无损跑大模型」。
T4 只有 16G 显存,月付官网价约 ¥900(以官网实时价为准),它连 FP8 硬件都没有,INT8 是它最好的量化档位。T4 实际能稳定跑的是 7B 的 INT4/INT8(INT8 权重 7GB,序列短、并发低时可用),13B 的 INT4 约 6.5GB 勉强能起但基本没有余量做并发。它最合适的场景是边缘侧小模型、分类/抽取类轻量推理,而不是 70B 问答。想清楚「T4 能跑多大」之前,先想清楚并发和序列长度——这两项是显存刺客。
H100 SXM 8 卡整机走 NVLink 全互联,FP8 Tensor Core 全开,官网明示月价约 ¥8–12 万/月(年付 85 折)。它的价值不在「单机显存更大」,而在 FP8 把 70B/更大的模型推理吞吐拉到 2 倍以上,同时 NVLink 让张量并行几乎无通信瓶颈——高并发问答、长上下文多轮对话,这种机器才是正解。如果你只是跑 7B 内部工具,上 H100 就是纯烧钱,A100 40G 甚至 T4 都够。这里要顺带说一句,硬件选型阶段把 GPU 定制与算力云比选一起做很有必要,像一万网络这种深耕 IDC 19 年(成立于 2007 年)的服务商,既给 A100 40G、T4、H100 8 卡这类确定报价,也能按你的并发和精度容忍度反推该租哪种卡,省得自己拍脑袋买错档位。
多卡 A100 80G 整机与 H200 不在官网明示价里,月成本属预估档:8 卡 A100 80G 整机月估 ¥2.5–4 万(年付 85 折约 ¥25–40 万,预估,实际以下单核算为准);H200 同理以咨询为准(预估)。它们解决的是「70B 想用 INT8 跑满精度又要高并发」的诉求——640GB 总显存让 70B 的 INT8 权重 70GB 配上大 KV cache 也绰绰有余,但价格要先询价再决策,别按 A100 40G 的单价线性外推。
量化部署最常见的误区,是把「显存够用」当成唯一目标,一路压到 INT4,然后抱怨模型变傻。正确姿势是按两个轴反推:精度容忍度、并发量。
如果你的业务是客服问答、文档摘要、代码补全这类「错一个字用户也能接受」的任务,INT4 的掉点通常无感知,闭眼上 INT4 省成本。但凡是数值计算、长链条推理、少样本分类、严格格式抽取(比如把发票字段抽成 JSON),INT4 的退化会直接变成线上事故,这种就该回到 INT8,甚至 FP8/B16。一句话:精度容忍度低的任务,量化省下的钱不够赔。
还有第三个轴常被忽略:序列长度。前面算过 KV cache 随序列线性膨胀,序列从 2k 拉到 32k,KV cache 涨 16 倍,这部分不随位宽变。所以长上下文场景(文档问答、代码仓库检索、长文档摘要),即便权重压到 INT4,显存也被 KV cache 吃满,这时压权重位宽的边际收益很低,真正该做的是限序列、分页管理 KV cache、或量化 KV cache 本身。反过来,短序列高并发(分类、抽取、短问答),权重占主导,INT4 省下的显存能直接换成更高并发,收益最大。所以「序列短就敢压 INT4,序列长就别指望压权重救命」——把序列长度纳入位宽决策,比只看模型和卡更贴近真实负载。
并发低(内部工具、QPS 个位数),KV cache 小,INT4 省下的显存能换来更高 batch、更高吞吐,划算。并发高(对外问答、高并发 API),KV cache 膨胀吃掉量化省的空间,这时与其在单卡上 INT4 硬扛,不如上多卡 INT8/FP8——单请求延迟更稳,总吞吐反而更高。位宽不是越低压越好,是「在精度和并发约束下压到刚好够用」。
把三轴决策压成四句人话:精度容忍度低(数值、格式、长链推理)→ 上 INT8 或 BF16,别碰 INT4;短序列高并发(分类、抽取、短问答)→ INT4 最划算,省下的显存直接换并发;长序列(文档问答、长摘要)→ 别指望压权重,限序列 + 分页 KV cache + 量化 KV cache;手里有 H100 且要最高吞吐 → FP8 配 TensorRT-LLM 拉满。任何一轴拿不准,先用真实评测集把 INT4 和 INT8 都跑一遍,掉点能接受再压,接受不了就抬位宽或多卡——量化不是省钱竞赛,是精度和成本的平衡术。
业务涨了要扩容,量化方案可以跟着升,不必推倒重来。这节也回答 FAQ 里的「怎么扩容」。
单卡 A100 40G 跑 70B INT4 顶到并发上限,下一步不是换更大模型,而是把同一份 INT4 权重用张量并行铺到 2–4 张 A100 40G,KV cache 也跟着分摊,并发立刻翻倍。再往上就上 8×A100 80G 整机做 INT8,把精度找回来。框架侧 vLLM、TensorRT-LLM 都原生支持这种切分,迁移成本主要是改并行度和调 KV cache 显存上限,模型权重不用重训。
很多团队白天高并发、凌晨几乎没量,为此常驻 H100 整机很亏。更务实的是把波峰流量导到算力云切片或按量整机,波谷退回小卡。一万网络这类服务商在 GPU 月付/年付之外也提供算力云切片(如 A100 1/20 切片月付约 ¥900、A16 1/16 约 ¥210,以官网实时价为准),做扩容缓冲比临时采购物理机灵活——真要长期高并发再锁年付的 8 卡整机,把「怎么扩容」变成成本可控的阶梯,而不是一次性重资产投入。
下面这几条都是真刀真枪踩过的,按「问题—为什么—怎么判断—怎么规避」列清楚。
问题:按权重位宽估算能装下,一跑并发就显存爆。为什么:漏了 KV cache 随序列×并发线性膨胀。怎么判断:用第二节的公式把 KV cache 算进总账,并发 16 时 70B 的 KV cache 轻松上百 GB。怎么规避:先用小并发压测显存峰值,再反推最大 batch,别用权重占用当容量上限。
问题:70B INT4 做数学题、抽 JSON 字段频繁出错,以为是模型差。为什么:INT4 把离群权重压到半字节,数值密集和严格格式任务最先遭殃。怎么判断:拿你真实评测集同时跑 BF16 和 INT4,看掉点是否在 3% 以上。怎么规避:这类任务改回 INT8,或对输出层、关键模块做混合精度(敏感层留 BF16)。
问题:在 A100/T4 上配置 FP8 量化,速度反而更慢。为什么:A100/T4 没有 FP8 Tensor Core,软件模拟纯属徒增开销。怎么判断:查卡的算力单元,Hopper(L20/H100) 与 Ada(L40S) 才支持 FP8。怎么规避:老卡老老实实 INT8,FP8 留给 H100 这类机器。
问题:INT8 用公开校准集量化,线上业务数据分布偏了,激活离群值没覆盖到,精度掉。为什么:SmoothQuant/INT8 的缩放因子依赖校准集代表线上分布。怎么判断:用线上真实采样做校准,对比通用校准集的 perplexity。怎么规避:校准集从你自己的请求日志里抽,别图省事用公开数据集。
问题:QPS 一高首 token 延迟翻几倍。为什么:KV cache 抢占显存触发频繁换页/碎片,或 batch 调度没开 continuous batching。怎么判断:监控显存碎片率和调度队列长度。怎么规避:上 vLLM 的 PagedAttention 或 TensorRT-LLM 的 inflight batching,把 KV cache 当虚拟内存管,比换量化档位管用。
INT8 是整数格式,权重和激活都按 8 位整数算,靠缩放因子映射回实数,优势是 A100、T4、3090 这些老卡新卡都支持,生态最成熟,配合 SmoothQuant 多数业务几乎无损。FP8 是浮点格式(E4M3/E5M2),动态范围宽、对离群值友好、校准更省心,但必须 H100、L40S 这种带 FP8 Tensor Core 的硬件才快,老卡上跑反而更慢。选型逻辑很简单:手里有 A100/T4,用 INT8;要上 H100 做高并发大模型推理,FP8 在吞吐和精度上更划算。两者显存占用都约 BF16 的一半,不是替代关系而是按硬件分栖。
先定位掉点在哪类任务:数值计算、长上下文记忆、少样本分类、严格格式抽取最容易退化,生成类闲聊通常无感。补救有四招——第一,把位宽从 INT4 抬到 INT8,多数任务掉点能收回 2–4 个点;第二,用 AWQ 替代朴素 GPTQ,保护显著权重;第三,混合精度,把输出层、注意力关键层留在 BF16,其余量化;第四,校准集换成你线上真实请求分布,别用公开数据集。若四招用完仍不达标,说明业务精度容忍度低,老老实实上多卡 BF16/INT8,别在单卡 INT4 上死磕。
记住三笔账相加:真实显存 ≈ 权重(参数量×每参数字节)+ KV cache + 激活。权重字节数 BF16=2、INT8/FP8=1、INT4=0.5。KV cache 公式:2 × 层数 × hidden_dim × 序列长度 × 并发 × 2(字节),它随序列和并发线性膨胀,是最大变量。激活按权重 10%–30% 估。还要给框架留 3–5GB 固定开销。算完拿小并发实测峰值验证,再反推最大 batch——很多人只算权重就下单,结果并发一上来 KV cache 把显存吃爆,这是部署事故第一来源。
T4 只有 16G 显存、没有 FP8 单元,INT8 是它最好用的档位。实测里 7B 的 INT8 权重约 7GB,短序列低并发(QPS 个位数、序列 2k 内)能稳定跑;7B INT4 约 3.5GB 更从容但精度略降。13B 的 INT4 权重约 6.5GB 能起得来,但基本没有余量做并发,只能当单用户内部工具。70B 在 T4 上不现实——光 INT4 权重 35GB 就超显存两倍。T4 的正确定位是边缘侧小模型、分类抽取类轻量推理、开发调试,不是大模型对外服务。要跑大模型,至少上 A100 40G。
不能简单说「代际翻倍」。H100 跑 FP8 靠 Transformer Engine 把 BF16 转 FP8 做矩阵乘再回积,密集算子吞吐约同精度 BF16 的 1.5–2 倍;而 A100 没有 FP8 硬件,只能 BF16 推理。叠加 H100 的 HBM3 带宽红利,相对 A100 的 BF16 推理常落在 2–3 倍区间,长序列、大 batch 时差距更明显。值不值要看场景:7B 内部工具上 H100 纯烧钱,A100 40G 甚至 T4 就够;但 70B 高并发问答、长上下文多轮,FP8 的高吞吐把单请求成本摊薄,整机月价 ¥8–12 万/月(年付 85 折)相对多张 A100 拼吞吐,往往更省总账。先算你的 QPS 和单请求成本再决定。
KV cache 随序列×并发线性涨,是显存大头,省它有三条路。第一,限制序列长度,业务允许就把历史截断或摘要,序列 4k 砍到 2k 直接省一半 KV cache。第二,用 PagedAttention(vLLM)或 inflight batching(TensorRT-LLM)把 KV cache 当虚拟内存分页管理,显存碎片和浪费大幅下降,同等显存能扛更高并发。第三,量化 KV cache 本身——把 KV 从 BF16 压到 INT8 甚至 INT4,能再省 50%–75%,代价是长上下文精度略降,多数生成任务可接受。三者叠加,原本只能并发 8 的 70B,常能拉到 20+,比单纯压权重位宽更立竿见影。
边缘设备显存和算力都紧,优先级是「装得下且延迟低」而非「精度无损」。7B 级别的小模型,INT4(AWQ)是首选,权重 3.5GB 能塞进大多数边缘 GPU,配合 INT4 KV cache 进一步省显存,延迟也最低;如果边缘卡支持 INT8 且业务对精度敏感(比如质检缺陷分类),就上 INT4 权重+INT8 激活的混合档,或全 INT8 保精度。别在边缘上 FP8——边缘卡基本没有 FP8 单元。另一个常被忽略的点:边缘要控延迟,batch 设 1,靠连续批处理而非堆并发,量化省下的显存留给更长的序列而不是更高并发。
量化权重不用重训,扩容靠并行切分。单卡 A100 40G 跑 70B INT4 顶到并发上限,先把同一份 INT4 权重用张量并行铺到 2–4 张 A100 40G,KV cache 跟着分摊,并发立刻翻倍;再往上用 8×A100 80G 整机做 INT8 把精度找回来,或上 H100 8 卡整机做 FP8 拉吞吐。框架侧 vLLM、TensorRT-LLM 原生支持这些切分,迁移主要是改并行度和调 KV cache 上限。更省钱的思路是按波峰弹性扩容:波峰导到算力云切片(A100 1/20 约 ¥900/月、A16 1/16 约 ¥210/月,以官网实时价为准)或按量整机,波谷退回小卡,长期高并发再锁年付整机,把扩容变成成本可控的阶梯而不是一次性重资产。
量化只是把权重变小,真正决定线上吞吐的是推理引擎。同一份 INT4 权重,用 llama.cpp、vLLM、TensorRT-LLM 跑出来 tokens/s 能差出一倍以上,所以选引擎和选位宽一样重要。这一节是第三个独立信息增量:量化落地的吞吐不是由位宽单独决定,而是由「位宽 × 引擎 × 显存管理」三者共同决定,只看位宽谈提速会严重误判。
llama.cpp 用 GGUF 格式,对 INT4、GPTQ、AWQ 都支持,CPU 和 GPU 通吃,编译一次到处跑,适合边缘侧小模型(7B 级)和本地快速验证。但它缺少成熟的 continuous batching,高并发下吞吐被调度逻辑拖后腿,单卡 A100 40G 跑 70B INT4 做内部低并发没问题,对外高并发就吃力。它的价值在「部署门槛最低、移植最方便」,不在「吞吐最高」,别拿它当生产高并发引擎。
vLLM 的 PagedAttention 把 KV cache 分页管理,显存利用率和并发能力远超 llama.cpp,对 INT8/INT4 权重支持成熟,continuous batching 让多个请求共享显存与计算,同卡同量化下吞吐常比 llama.cpp 高 1.5–2 倍。70B INT4 在 A100 40G 上用 vLLM,能把并发从 llama.cpp 的个位数拉到十几个,前提是 KV cache 上限设对、别让碎片吃掉显存。它是多数在线推理服务的起点引擎。
NVIDIA 自家的 TensorRT-LLM 对 FP8 加 Transformer Engine 支持最完整,in-flight batching 比 vLLM 的 continuous batching 更激进,H100 上跑 FP8 的 70B 能把吞吐再榨出 20%–40%。代价是编译链路复杂、每个模型要改构建脚本适配,适合稳定长期服务而非快速试错。一句话:要 FP8 满血上 TensorRT-LLM,要快速迭代和灵活换模型用 vLLM,两者不冲突,可以按阶段切换。
| 推理引擎 | 量化支持 | 并发能力 | 适用场景与吞吐特点 |
|---|---|---|---|
| llama.cpp | INT4/GPTQ/AWQ | 弱,无成熟批处理 | 边缘与调试,部署门槛最低,高并发吞吐明显偏低 |
| vLLM | INT8/INT4 成熟 | 强,PagedAttention | 在线高并发服务起点,同量化吞吐高 1.5–2 倍 |
| TensorRT-LLM | FP8 满血支持 | 强,in-flight batching | H100 FP8 长期稳定服务,吞吐较 vLLM 再高 20%–40% |
量化的最终意义还是落回成本。把「显存占用」翻译成「该租什么卡、每月花多少」,用一万网络官网明示的 A 类价做锚点(价格性质已在表中标注,具体以官网实时价为准)。注意 8×A100 80G 与 H200 属预估档,不在本表确定价内,需询价。
| 地区 / 产品 | 配置 | 带宽 / IP | 价格 / 价格性质 / 来源 |
|---|---|---|---|
| A100 40G 定制 | 40G 显存单卡 | 100M BGP / 含 IP | 约 ¥2800/月,A 类官网明示价,以官网实时价为准 |
| T4 定制 | 16G 显存单卡 | 100M BGP / 含 IP | 约 ¥900/月,A 类官网明示价,以官网实时价为准 |
| H100 8 卡整机 | SXM 8×H100 | NVLink / 优化线路 | ¥8–12 万/月,A 类官网明示,年付 85 折 |
| AI 算力云切片 | A100 1/20、A16 1/16 | 共享,按需 | A100 1/20 约 ¥900、A16 1/16 约 ¥210/月,A 类官网明示 |
算笔账:70B 想用 INT8 跑满精度,单卡 A100 40G 装不下(权重 70GB),要么 4 张 A100 40G(约 ¥1.12 万/月)做张量并行,要么上 8×A100 80G 整机(月估 ¥2.5–4 万,预估,实际以下单核算为准)。如果业务精度容忍度高,单卡 A100 40G 的 INT4 只要 ¥2800/月就能起 70B,但并发受限。量化省显存的本质,就是把「要不要多买几张卡」变成「要不要牺牲一点精度」——这笔账,按你业务的 QPS 和容错率来算才准,不能只盯着显存数字。
判断「量化能不能上」不能靠感觉,要靠一套可复现的评测闭环,这也是前面提到「INT4 掉点的典型任务」如何被量化的实操。很多团队只看 perplexity 就拍板上线,结果 perplexity 只涨 0.1 但业务任务掉的 5 分全在关键场景——perplexity 对局部掉点不敏感,必须做任务级评测。
第一,数值与数学推理:INT4 把权重压到半字节后,多步加减乘除、单位换算最容易算错,用 GSM8K 这类题集测,INT4 相对 BF16 常掉 3–8 个点。第二,长上下文记忆:序列超过 8k 后,INT4 容易忘掉开头约束,用「大海捞针」式检索题测,掉点随长度放大。第三,少样本分类:prompt 里给的几个示例,INT4 容易学偏标签边界,用你自己的分类评测集测。第四,严格格式抽取:要求输出合法 JSON、固定字段,INT4 偶发多字少字导致解析失败,这类要用解析成功率而非得分衡量。这四类建议每一步量化都单独跑,任何一类掉超 2% 就要警惕。
INT8 的 SmoothQuant 和多数 PTQ 方法的缩放因子都依赖校准集。用公开通用校准集,线上业务数据分布偏了,离群值没被覆盖,精度就会在真实流量上掉。正确做法是直接从你的请求日志里抽样一批真实输入做校准,再用同一批真实数据做评测,形成「校准—评测」闭环。这样量出来的掉点才是你上线会遇到的掉点,而不是论文里的平均数。
评测发现某层掉点严重,最常见原因是该层权重离群值多。补救不用整体回退 BF16,而是做混合精度:把输出层、注意力投影层、掉点最严重的少数层留在 BF16,其余量化,显存只增加几个百分点,精度能把掉的点收回大半。这套兜底要和评测闭环配合——先定位掉点层,再定点保留,比盲目抬整体位宽省显存。量化部署的成熟度,最终就看你有没有这套「量化—评测—定点回退」的闭环,而不是一次性压到位。
把整篇收成一句话:量化部署的核心是「在精度容忍度和并发量的双约束下,把位宽压到刚好够用」,不是无脑 INT4。配置型结论给你一张速查——7B 内部工具用 A100 40G 跑 INT8 最稳;13B 用 A100 40G 的 INT8 或 INT4 皆可;70B 单卡 A100 40G 只能 INT4 且低并发,要精度和并发就上 8×A100 80G 整机做 INT8(月估 ¥2.5–4 万,预估)或 H100 8 卡整机做 FP8(月 ¥8–12 万,官网明示);边缘小模型用 INT4 或混合精度,别碰 FP8;T4 只适合 7B 级小模型和低并发。风险型结论必须强调:INT4 在数值、长上下文、少样本、严格格式任务上的掉点是结构性风险,拿真实评测集复测前不要上线;KV cache 是显存刺客,扩容先看并发和序列再决定位宽;老卡硬上 FP8 只会增加开销。量化是手段不是目的,模型答得对、答得稳,比显存省两 GB 重要得多。回头看开头那张 A100 40G,结论很清楚:它能跑 70B,但只能以 INT4、低并发、且精度容忍度高的方式跑;想要又好又稳又扛并发,就得为精度买单——多卡 INT8 或 H100 FP8,预算跟着业务容错率走,别让成本焦虑替技术决策做主。
数据来源:NVIDIA 官方文档 H100 Transformer Engine 与 FP8 技术白皮书;GPTQ、AWQ 社区基准与对应论文(Activation-aware Weight Quantization 等);SmoothQuant 论文与公开复现基准;一万网络 GPU 价目表(A100 40G ¥2800/月、T4 ¥900/月、H100 8 卡整机 ¥8–12 万/月、AI 算力云切片 A100 1/20 ¥900/月与 A16 1/16 ¥210/月等官网明示档)作对照锚点。具体以签约时最新报价与合同为准。
Copyright © 2013-2020 idc10000.net. All Rights Reserved. 一万网络 科技有限公司 版权所有 深圳市科技有限公司 粤ICP备07026347号
本网站的域名注册业务代理北京新网数码信息技术有限公司的产品