想象你要出一趟远门,出发前只有一只能装下20公斤行李的旅行箱。原封不动地把所有衣物塞进去显然不行,你必须做出取舍:是只选最必要的几件衣服(粗放压缩),还是用真空压缩袋把全部衣物压得扁扁的(精细压缩)?前者省事但丢掉了许多穿搭可能,后者费工夫但几乎保留了全部选择。大模型部署到手机、耳机、智能摄像头这些“小行李箱”设备上时,面临的正是同样的问题。模型量化,就是给模型做“行李压缩”——把原本又大又重的参数(权重)从高精度压缩到低精度。其中8bit量化像是用真空压缩袋:压缩比适中、信息损失小;4bit量化则像是只带核心衣物:压缩更狠、更省空间,但需要更聪明的“折叠技巧”才能不把衣服掏皱。这篇文章,我们就用这只旅行箱,陪你走完4bit与8bit量化方案的选型全程。

岗位关联

掌握4bit/8bit量化方案的原理与选型,是端侧AI工程师的必备技能,助你在手机、IoT等资源受限设备上落地大模型时,做出又快又省又稳的工程决策。

目录
  1. 可视化演示
  2. 量化基础概念
  3. 位宽方案对比
  4. 量化方法解析
  5. 精度与内存平衡
  6. 推理速度对比
  7. 端侧选型指南
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

量化基础概念

出发前整理旅行箱,你得先把所有衣物从衣柜里掏出来:大衣、T恤、牛仔裤、袜子,堆成一座小山。模型的“衣柜”里装的则是成千上万个浮点数——每个参数都是一个像17.32845这样的小数,用16位浮点数(FP16)存放,占2字节。可旅行箱就那么大,装不下这么“高个子”的数值,于是你决定把每件衣服“叠小”:用一个更粗糙的刻度去记录每个数值的大小。这就是量化的本质——给连续的、精细的数值,换一把刻度更稀疏的尺子去测量。

这把尺子有多少刻度,取决于我们用多少位(bit)来表示一个数。8bit量化相当于用有256个刻度的尺子去量每件衣服的长度,4bit量化则只给你16个刻度。刻度越少,量出来的数越不精确——记忆一件衣服的长度,你能想起“大约75厘米”,但很难记得“75.3厘米”,这就是量化误差的来源。在AI术语中,原始的高精度参数是FP16或FP32浮点数,量化后变成INT8或INT4整数,映射的过程叫quantization。

量化过程中,关键技术是找到数值的映射关系。假设原始权重分布在[-6.0, 6.0]之间,8bit量化就是把这12个单位的范围均匀分成255格,每个格子的宽度是scale(缩放因子);4bit量化则把它分成15格,格子更宽,误差更大。我们还需要决定zero-point(零点偏移),解决原始分布不对称的问题。校准(calibration)则是从一批样本数据中观察真实的数值范围,让尺子的量程贴合实际,避免“刻度浪费”。

这段旅程告诉我们,量化就是给模型参数换一把更粗的尺子。8bit的尺子有256个刻度,4bit只有16个——尺子越粗,行李叠得越狠,但也越容易把衣服量走样。理解了这个基础,再看4bit和8bit的差异就有了坐标系。

q=round(rΔ)+z,Δ=rmax⁡−rmin⁡2b−1\displaystyle q = \text{round}\left(\frac{r}{\Delta}\right) + z, \quad \Delta = \frac{r_{\max} - r_{\min}}{2^{b} - 1}
公式中,\( r \) 是原始高精度参数,\( q \) 是量化后的整数,\( \Delta \) 是刻度宽度(scale),\( b \) 是位宽(8或4),\( z \) 是零点偏移。位宽 \( b \) 越大,\( \Delta \) 越小,量化越精细。
  1. 确定刻度宽度原始参数的范围 \([r_{\min}, r_{\max}]\) 除以刻度总数 \(2^{b}-1\),得到每个格子代表的数值宽度。
    Δ=rmax⁡−rmin⁡2b−1\Delta = \frac{r_{\max} - r_{\min}}{2^{b} - 1}
  2. 计算量化值原始值 \( r \) 除以刻度宽度后四舍五入,再加上零点偏移 \( z \),得到整数 \( q \)。
    q=round(rΔ)+zq = \text{round}\left(\frac{r}{\Delta}\right) + z
  3. 反量化还原推理时用整数 \( q \) 乘回刻度宽度,得到近似原始值的浮点数 \( \hat{r} \)。
    r^=(q−z)×Δ\hat{r} = (q - z) \times \Delta

位宽方案对比

现在旅行箱前摆着两个压缩方案:方案A是“8bit真空压缩袋”,方案B是“4bit极简折叠法”。压缩袋能把每件衣服压到原来一半体积,但拉链还能顺畅合上;极简折叠法能把体积压到四分之一,但必须仔细挑衣服,否则箱子盖不上。数字上,把FP16(2字节)的参数转成INT8(1字节),内存立刻减半,模型大小直接砍掉50%;转成INT4(0.5字节),内存只剩原来的四分之一,节省75%。这就是4bit方案最大的诱惑——在手机、耳机这类内存以GB甚至MB计算的设备上,差这25%可能就是能否跑得动的分界线。

但省下的每一份空间都有代价。INT8有256个刻度,对大多数模型来说,这把尺子足够精细,精度损失肉眼难辨;INT4只有16个刻度,相当于让裁缝仅凭“短袖、中袖、长袖”三档去报尺寸,关键参数的微小差异可能被抹平。经验数据是:8bit量化通常能将模型精度损失控制在0.5%以内,4bit量化在方法得当时损失约1%-3%,若方法粗糙可能高达5%以上。对文本生成这类任务,5%的损失可能表现为答非所问、逻辑混乱。

用参数量来算一笔账:一个70亿参数的模型,FP16权重占14GB内存,INT8占7GB,INT4只占3.5GB。这意味着INT4让原本只能在服务器上跑的大模型,能塞进一部8GB内存的旗舰手机。

回到旅行箱前:INT8是稳扎稳打的真空压缩袋,多数情况都能安全上车;INT4是激进的极简折叠法,省下的空间令人心动,但你必须学会“聪明地扔衣服”——这正是下一节GPTQ和AWQ要做的事。

Memory_INT4=FP16_Memory4,Memory_INT8=FP16_Memory2\displaystyle \text{Memory\_INT4} = \frac{\text{FP16\_Memory}}{4}, \quad \text{Memory\_INT8} = \frac{\text{FP16\_Memory}}{2}
内存对比公式:INT4内存占用是FP16的四分之一,INT8是二分之一。省下的内存可用于容纳更长的上下文或更多并行任务。
  1. INT8内存计算FP16每个参数占2字节,INT8占1字节,所以内存减半。
    M8=2N2=NM_8 = \frac{2N}{2} = N
  2. INT4内存计算INT4每个参数占0.5字节,内存为FP16的四分之一。
    M4=2N4=0.5NM_4 = \frac{2N}{4} = 0.5N
  3. 节省比例对比INT8省50%,INT4省75%,两者相差25个百分点——这25%是端侧部署的关键抉择空间。
    S8=50%,S4=75%S_8 = 50\%, \quad S_4 = 75\%

量化方法解析

假如你决定用4bit的极简折叠法装箱,问题来了:衣服怎么叠才不会把所有布料都挤出皱纹?直觉答案是——把最厚最占地方的大衣叠得最用心,袜子和T恤随便卷卷就行。GPTQ和AWQ正是给模型做“重点衣物精叠”的两种流派。

GPTQ(Gradient-based Post-Training Quantization)走的是“全局微调”路线。它把量化看作一个优化问题:逐层地对权重做低精度近似,同时用二阶信息(Hessian矩阵)评估“这一步近似,对最终输出的扰动有多大”,然后反向补偿误差。形象地说,GPTQ像一位精算师:每扔掉一件衣服,都立刻算一算“箱子的重心偏了多少”,再调整旁边衣物的位置来补回重心。

AWQ(Activation-aware Weight Quantization)则换了个角度。它发现:模型权重虽然量大,但不同权重对激活值(activations)的贡献并不平等——少数重要通道(channels)对输出影响巨大,就像行李箱里的羽绒服,塞得好不好直接影响全箱空间。AWQ的做法是:先观察每个通道的激活值大小,找出重要通道,然后只保护这些通道的量化精度(用较小的scale),次要通道则放心大胆地量化。

GPTQ和AWQ就像两位手艺不同的收纳师:GPTQ全局精算、误差补偿,适合追求极致压缩的场景;AWQ识别重要、重点保护,方法更轻量、速度快。两者都能让4bit“折叠法”接近8bit的精度,但复杂度和校准成本各有不同。

GPTQ: min⁡W^∥WX−W^X∥22+λR(W^),AWQ: s∗=arg⁡min⁡s∥diag(s)⋅W−Q(diag(s)⋅W)∥F\displaystyle \text{GPTQ: } \min_{\hat{W}}\| WX - \hat{W}X \|_2^2 + \lambda R(\hat{W}), \quad \text{AWQ: } s^* = \arg\min_s \| \text{diag}(s) \cdot W - Q(\text{diag}(s) \cdot W) \|_{F}
公式中,GPTQ目标是最小化量化前后输出的误差(权重W乘以输入X);AWQ目标是为权重缩放(乘以系数s)后再量化,使得量化误差最小——缩放s就是给重要通道“加保护垫”。
  1. GPTQ的误差目标量化后的权重 \(\hat{W}\) 乘以输入 \(X\) 应尽量接近原始输出 \(WX\),最小化它们的二范数误差。
    min⁡W^∥WX−W^X∥22\min_{\hat{W}}\| WX - \hat{W}X \|_2^2
  2. AWQ的缩放保护给权重矩阵 \(W\) 乘以通道级缩放因子 \(s\)(重要通道的 \(s\) 更接近1),再量化,使整体误差最小。
    s∗=arg⁡min⁡s∥diag(s)W−Q(diag(s)W)∥Fs^* = \arg\min_s \| \text{diag}(s)W - Q(\text{diag}(s)W) \|_F
  3. 校准数据的作用计算缩放因子和误差补偿需要一批“观查样本”(calibration data),告诉方法哪些通道真正重要。
    Dcal={x1,x2,…,xn}D_{\text{cal}} = \{x_1, x_2, \dots, x_n\}

精度与内存平衡

行李箱的终极矛盾:带得越少,路上越可能缺东西;带得越全,箱子又装不下。量化中这个矛盾具象化为精度(模型智商)与内存(箱子容量)的博弈。8bit方案站在“保守”端——精度几乎无损,但内存节省有限;4bit方案站在“激进”端——内存大幅下降,但精度损失需要精密方法去弥合。

精度损失并非均匀分布。实验表明,4bit量化后,模型的困惑度(perplexity,衡量文本生成质量,越低越好)可能从FP16的10.2上升到11.5左右,而8bit只上升到10.4。用旅行箱的话说:8bit压缩后衣服只是多了几条折痕,穿出去看不出差别;4bit压缩后有些衣服可能皱了、变形了,特殊场合(复杂推理、多轮对话)就可能露馅。模型越大,冗余参数越多,4bit量化越安全;3B以下的小模型,4bit量化后精度悬崖风险显著上升。

解决之道之一是“混合精度”:像行李箱中分层放置一样,对关键层(embedding层、注意力层)保留8bit精度,对次要层(FFN层)用4bit——既压了箱,又保了质量。另一个技术是调整“组粒度”:量化不是对整个权重矩阵选一把尺子,而是按每128个参数一组选一把尺子,组粒度越小,尺子越贴合局部分布,精度越高,但需要额外存储scale参数。

选型的本质是找到“箱子容量”与“出行品质”的切点。8bit像是“多带一件外套”的稳妥之选,4bit则是“精打细算换更大活动空间”的进取之选。精明的做法不是二选一,而是像混合精度那样,在关键位置保留余地。

QLoRA: loss(y,y^)=1N∑i=1Nℓ(yi,y^i),perplexity=exp⁡(−1N∑i=1Nlog⁡P(yi))\displaystyle \text{QLoRA: } \text{loss}(y, \hat{y}) = \frac{1}{N}\sum_{i=1}^{N} \ell(y_i, \hat{y}_i), \quad \text{perplexity} = \exp\left(-\frac{1}{N}\sum_{i=1}^{N}\log P(y_i)\right)
公式中,困惑度是量化精度评估的核心指标,它度量模型对下一个词的预测概率是否稳定。困惑度越低,代表量化后模型“语感”保持得越好。
  1. 预测概率对数平均对每个词 \(y_i\),模型给出预测概率 \(P(y_i)\),取对数后求平均,再取负值。
    −1N∑i=1Nlog⁡P(yi)-\frac{1}{N}\sum_{i=1}^{N}\log P(y_i)
  2. 指数还原对上述平均值取指数,得到困惑度。理想情况下困惑度无限接近1,量化后通常会升高。
    exp⁡(−1N∑i=1Nlog⁡P(yi))\exp\left(-\frac{1}{N}\sum_{i=1}^{N}\log P(y_i)\right)

推理速度对比

行李箱上了飞机,真正决定“旅途是否顺畅”的,往往是过安检和登机的速度。对端侧AI来说,这个“安检口”就是内存带宽。推理时,模型参数要不停从内存搬运到计算单元,内存带宽已经取代算力成为主要瓶颈。想象你要把旅行箱里的所有衣服一件件拿出来过安检——衣服数量越多、每件越大,过检时间越长。同理,INT4权重比INT8小一半,搬运时间几乎减半,在相同内存带宽下,推理速度显著提升。

具体数值上,同一模型在同一芯片上,4bit量化通常比8bit量化快40%-60%。乍看很不直观:4bit的精度明明更差,为何更快?因为速度瓶颈不在“计算有多精确”,而在“数据搬得有多快”。用旅行箱比喻:你收拾行李时分别叠得好不好(精度)影响的是“到达后衣服是否能穿”;而箱子大小(内存占用)决定的是“过安检时每一件衣服要花多少时间”。4bit箱子更小,安检自然更快。

不过端侧还有另一个约束:算力支持度。很多端侧芯片对INT8有专门的加速指令,对INT4却只能靠软件模拟,反而可能更慢。这就像机场新开了“全员快速通道”,但你的旧箱子却不支持刷脸——硬件不配合,省下的空间并不能换成速度。所以选择位宽前必须先查芯片的量化指令支持情况。

4bit的“快”不是因为它更聪明,而是因为它的行李箱更轻。但若遇到不支持的硬件,这份轻便反而成了累赘——选位宽前,先查清楚目标设备的“安检通道”支持哪种箱子。

Tokens/s=BmemParam_Bytes×Total_Params,ΔT4/8=0.5 bytes−1 byte1 byte=−50%\displaystyle \text{Tokens/s} = \frac{B_{\text{mem}}}{\text{Param\_Bytes} \times \text{Total\_Params}}, \quad \Delta T_{4/8} = \frac{0.5\text{ bytes} - 1\text{ byte}}{1\text{ byte}} = -50\%
公式中,推理吞吐量(每秒生成的token数)约等于内存带宽除以每次生成需要搬运的参数字节数。4bit比8bit少搬运50%的数据,理论吞吐量翻倍。
  1. 吞吐量计算内存带宽 \(B_{\text{mem}}\)(字节/秒)除以单次推理需读取的总字节数。
    Tokens/s=BmemParam_Bytes×Total_Params\text{Tokens/s} = \frac{B_{\text{mem}}}{\text{Param\_Bytes} \times \text{Total\_Params}}
  2. 传输量差异4bit每参数0.5字节,8bit为1字节,差值占8bit的50%。
    ΔT4/8=0.5−11=−50%\Delta T_{4/8} = \frac{0.5 - 1}{1} = -50\%

端侧选型指南

行程最后,回到起点:你该如何决定这次出发用哪种打包方案?端侧部署的量化选型,同样是系统工程,需要按部就班地把“旅行计划”捋清楚。

第一步,评估任务复杂度。如果模型只做简单的中文分词、关键词提取、轻量分类,4bit量化绰绰有余——这趟旅行只在市区转转,带两三件换洗衣物就好。但如果模型要做数学推理、代码生成、复杂多轮对话,精度敏感度极高,建议从8bit起步——这趟旅行要登山涉水,衣物的完好比箱子空间更珍贵。第二步,做好硬件内存摸底。查清目标设备的可用内存、芯片型号、是否支持INT4/INT8加速指令,别让“软件支持了4bit、硬件却拖后腿”的尴尬重演。

第三步,制定精度回退策略。稳妥的工程实践是:先用8bit量化跑通全流程,得到基准精度;再尝试4bit量化,对比关键指标(如困惑度、下游任务准确率);若4bit精度损失超标,退回8bit或采用混合精度方案(关键层8bit+次要层4bit)。最后,必须做全链路实测——在真实设备上跑完整推理流程,而不是只看量化工具报告的指标。行李箱装得再整齐,也得真拉到机场过一遍安检才算数。

| 选型维度 | 建议选择 | 决策依据 |

|---------|---------|---------|

| 任务简单/内存紧张 | 4bit + AWQ/GPTQ | 大幅省内存,推理更快 |

| 任务复杂/精度敏感 | 8bit | 精度稳,兼容性好 |

| 设备不支持INT4 | 8bit | 硬件无加速,4bit反而慢 |

| 折中方案 | 混合精度 | 关键层8bit,次要层4bit |

选型没有标准答案,只有基于场景的最优解。把“4bit还是8bit”的问题转化为“我的旅行性质是什么”——短途轻装用4bit,长途重装用8bit,长途轻装用混合精度。量化的本质,就是让模型学会在有限的行囊里装下尽可能多的智慧。

AI 应用场景

移动端智能助手App部署

阶段:端侧推理优化

解决的问题:传统云端大模型推理需要网络往返,延迟高且隐私风险大。将70B模型通过4bit量化(配合GPTQ方法)压缩至3.5GB装入手机端,首次打开App即可离线运行,避免“对话内容上传云端”的隐私担忧。这是传统方式(纯云端推理)无法做到的本地化部署需求。

具体案例:某健康管理App需要部署一个7B医疗问答模型的端侧版本。工程师先用8bit量化跑通基准(内存占用7GB,超过目标设备6GB内存),改用AWQ 4bit量化后内存降至3.5GB成功落地。实测推理速度从8bit的12 tokens/s提升至4bit的19 tokens/s,但专业术语回答准确率下降了2.1%。最终采用混合精度:关键医疗实体层保留8bit,其余层用4bit,内存4.2GB,准确率仅下降0.6%。

智能摄像头端侧模型升级

阶段:模型部署与推理优化

解决的问题:智能摄像头对实时性要求极高,模型推理必须在50ms内完成。原始FP16模型推理耗时120ms,无法满足实时检测要求。通过分析内存带宽发现瓶颈在参数搬运,改用INT4量化后推理耗时降至58ms,再配合硬件优化达成目标。

具体案例:安防场景的入侵检测模型通过4bit量化从80MB压缩至20MB,不仅推理速度快了2.1倍,还能腾出内存运行额外的视频编码任务。实际测试中目标检测精度mAP从78.4%降至76.9%,损失1.5个百分点,在可接受范围内。

大模型推理服务降本增效

阶段:推理成本优化

解决的问题:云端推理集群的显存成本和带宽成本极高。一款对话产品日均调用百万次,FP16模型需要8张A100;改用8bit量化后模型显存占用减半,只需4张卡,成本下降50%且精度几乎无损。

具体案例:某SaaS公司的LLM服务从FP16切换到W8A8(权重8bit+激活8bit)方案,首令牌时延(TTFT)从850ms降至520ms,吞吐量从15 req/s提升至32 req/s,而客户可感知的回答质量无显著下降。

Python 演示

python44 行
# -*- coding: utf-8 -*-"""4bit vs 8bit 量化对比示例"""import torchimport torch.nn as nn # 随机生成小型线性层模拟模型权重分布torch.manual_seed(42)weight = torch.randn(256, 256) * 0.5scale_conversion = 1.0 / 255.0 def fake_quantize(tensor, bits):    """模拟对称均匀量化的误差"""    # 计算量化刻度scale和零点zero_point    qmin, qmax = -(2 ** (bits - 1)), 2 ** (bits - 1) - 1    min_val = tensor.min()    max_val = tensor.max()    scale = (max_val - min_val) / (qmax - qmin)    zero_point = qmin - min_val / scale    # 量化-反量化    quantized = torch.round(tensor / scale + zero_point)    quantized = torch.clamp(quantized, qmin, qmax)    dequantized = (quantized - zero_point) * scale    return dequantized def main():    layer = nn.Linear(256, 256)    layer.weight.data = weight    input_tensor = torch.randn(64, 256)     with torch.no_grad():        ref_output = layer(input_tensor)        outputs = {}        errors = {}        for bits in (8, 4):            q_layer = nn.Linear(256, 256)            q_layer.weight.data = fake_quantize(layer.weight, bits)            q_layer.bias.data = layer.bias            outputs[bits] = q_layer(input_tensor)            errors[bits] = (outputs[bits] - ref_output).abs().mean().item()            print(f"{bits}bit 量化误差: {errors[bits]:.6f}", end="")            print(f" | 内存占用: {layer.weight.numel() * (bits / 8) / 1024:.1f} KB") if __name__ == "__main__":    main()
目的:用Python模拟4bit和8bit对称均匀量化,对比量化前后模型输出的误差,直观感受位宽对精度的影响。
  1. torch.min()` / `torch.max()找出权重矩阵的真实数值范围,决定“尺子”的刻度宽度
  2. scale = (max_val - min_val) / (qmax - qmin)计算量化刻度,差值除以刻度总数即每格代表的大小
  3. torch.round(tensor / scale + zero_point)将连续权重映射到整数格子,加zero_point处理非对称分布
  4. torch.clamp(quantized, qmin, qmax)防止极端值超出可表示范围(挤出箱子的“衣服”拦回来)
  5. (dequantized = (quantized - zero_point) * scale)反量化还原近似值,评估误差
  6. errors[bits] = (outputs[bits] - ref_output).abs().mean().item()量化前后输出差值的平均绝对值,即精度损失量化指标

常见误区

误区“4bit量化比8bit量化内存少一半,速度一定快一倍,所以能上4bit就上4bit。”

正解4bit相比8bit确实在权重存储上省一半,但推理速度并非总是快一倍。端侧芯片若没有INT4加速指令,反而需要通过指令模拟,可能更慢。速度提升取决于内存带宽和硬件支持度的共同作用,而非单纯的位宽减半。

为何常见:人们习惯从“数据量减半必然速度加倍”的直觉出发,忽略了硬件执行效率这一关键变量。

误区“8bit量化精度一定高于4bit,所以在乎质量就必须选8bit。”

正解现代量化方法极大缩小了这个差距。GPTQ/AWQ加持的4bit量化在多数任务上能达到8bit的98%以上效果,有时甚至超过粗糙实现的8bit量化。精度高低不仅取决于位宽,更取决于量化方法的精细程度(组粒度、校准数据质量)。

为何常见:错误地将“位宽”与“质量”线性绑定,忽略了量化算法带来的补偿效应。

误区“一旦量化,模型损失就定型了,只能选择接受。”

正解量化后还有多项补救手段:混合精度(关键层保留高精度)、量化感知训练(Quantization-Aware Training,训练时模拟量化误差让模型自适应)、低秩适配器微调(如QLoRA)。实际工程中,量化损失可通过后续优化大幅回补。

为何常见:混淆了“训练后量化”(Post-Training Quantization)与“量化感知训练”的区别,以为量化是单程票。

误区“做量化校准,样本越多越准确。”

正解校准数据的数量并非关键,分布是否贴合真实场景才是关键。用128条精心挑选、覆盖真实分布的样本往往比用10000条随机抓取的数据效果好得多。校准数据的作用是让“尺子的量程”贴合实际,而非让模型重新学习。

为何常见:受“大数据=好模型”的惯性思维影响,忽略了校准数据是“量程设定”而非“训练样本”的本质。

面试题

Q1. 模型量化中,8bit量化相比FP16的权重存储节省多少内存?

单选题 · easy

  • A.25%
  • B.50%← 正确答案
  • C.75%
  • D.87.5%

答案:B。FP16占2字节,INT8占1字节,1/2=50%。4bit才省75%。类比旅行箱:8bit是真空压缩袋减半,4bit是极简折叠省到四分之一。

Q2. INT4量化的核心挑战是什么?

单选题 · mid

  • A.存储空间严重不足
  • B.推理速度降低
  • C.精度损失较难控制← 正确答案
  • D.需要更大训练集

答案:C。INT4仅有16个刻度,量化误差大,需GPTQ/AWQ等方法补偿。旅行箱只有16格分区的比喻:格子太宽,衣物折叠后变形大。

Q3. 以下哪些属于4bit量化精度补救手段?

多选题 · hard

  • A.混合精度部署← 正确答案
  • B.量化感知训练← 正确答案
  • C.增大模型参数量
  • D.QLoRA微调← 正确答案

答案:ABD。混合精度(关键层8bit+次要层4bit)、量化感知训练(训练时模拟量化误差)、QLoRA(低秩适配器微调)都能补偿4bit损失。增大参数量是改模型结构,与量化本身无关。

Q4. 影响端侧推理速度的首要瓶颈通常是什么?

单选题 · mid

  • A.GPU算力不足
  • B.内存带宽受限← 正确答案
  • C.CPU主频偏低
  • D.网络延迟较高

答案:B。自回归生成逐token读取全部权重,内存带宽成为瓶颈。行李过安检比喻:衣服越多过检越慢,箱子大小比折叠技术更影响速度。

Q5. 端侧部署时,INT4量化相比INT8量化通常带来什么好处?

单选题 · easy

  • A.准确率大幅提升
  • B.内存占用减半← 正确答案
  • C.无需校准数据
  • D.支持所有硬件

答案:B。INT4每参数0.5字节,INT8为1字节,权重存储减半。4bit折扇箱更小,过安检更快,但并非所有硬件都有INT4加速指令。

Q6. GPTQ和AWQ两种量化方法的差异体现在哪些方面?

多选题 · mid

  • A.GPTQ基于二阶梯度信息误差补偿← 正确答案
  • B.AWQ根据激活值识别关键通道← 正确答案
  • C.GPTQ需要校准数据而AWQ不需要
  • D.AWQ对重要通道施加额外保护← 正确答案

答案:ABD。GBTQ用Hessian矩阵做全局误差补偿;AWQ观察激活值找出重要通道并加缩放保护。两者都需要校准数据,C错误。

Q7. 70B模型在4bit量化下权重占多少GB?

单选题 · hard

  • A.17.5GB
  • B.35GB← 正确答案
  • C.70GB
  • D.140GB

答案:B。70B参数量×0.5字节=35GB。FP16为140GB,INT8为70GB。旅行箱的“重量换算”是关键能力。

Q8. 困惑度(perplexity)在量化评估中的含义是什么?

单选题 · easy

  • A.模型推理的速度指标
  • B.模型对下一个词预测的不确定性← 正确答案
  • C.模型参数量大小
  • D.模型训练轮数

答案:B。困惑度越低,模型预测越准、输出越流畅。量化后困惑度上升表示“语感变差”——像行李箱压皱的衣服,穿出去没那么挺括了。

Q9. 4bit量化后精度下降显著时,合理的策略有哪些?

多选题 · hard

  • A.退回8bit量化← 正确答案
  • B.关键层改用8bit混合精度← 正确答案
  • C.增加量化感知训练← 正确答案
  • D.增加模型上下文长度

答案:ABC。精度回退到8bit、混合精度保护关键层、量化感知训练微调都是正确策略。增加上下文长度只是增加内存压力,不解决精度问题。

Q10. 校准数据在量化中的作用是什么?

单选题 · mid

  • A.重新训练模型的参数
  • B.帮助确定权重分布的量程← 正确答案
  • C.提升模型的推理速度
  • D.压缩模型的计算图

答案:B。校准数据用于观察真实输入的激活分布,设定最优scale与zero-point。类比是“量箱子的尺寸”而非“重新叠衣服”,不需要大量数据。