搬家时你会怎么做?大多数人会先分类物品:祖传的瓷器、重要证件要用气泡膜层层包裹、单独装箱;而普通衣物、旧书刊随便塞进大纸箱凑合。如果空间实在有限,非要压缩物品体积,你是把瓷器压扁,还是把旧衣服抽真空?答案不言而喻。AWQ(Activation-aware Weight Quantization,激活感知权重量化)就是给大模型“搬家打包”的智慧:模型里的权重参数就像家里的物品,有的“贵重”得很,对模型的智能表现至关重要;有的“普通”得很,压一压无伤大雅。AWQ通过观察数据的激活值——就像观察哪些物品日常被频繁使用——识别出这些“贵重”权重,在把模型整体压缩到 4bit(存储量仅为原来的四分之一)的同时,给“贵重”权重留足保护,让大模型在手机、车载等端侧设备上又快又省地运行,还不掉链子。

岗位关联

掌握 AWQ,你可以在手机、智能音箱、车载中控等边缘设备上高质量部署大模型,这是端侧 AI 工程师最实用的模型压缩利器,也是从“能跑”到“跑得好”的关键一跃。

目录
  1. 可视化演示
  2. 1. AWQ核心思想:给权重划等级
  3. 2. 激活感知原理:观察生活轨迹
  4. 3. 缩放因子搜索:挑选保护箱
  5. 4. 权重量化流程:抽真空装箱
  6. 5. 精度性能权衡:不压碎瓷器的极限
  7. 6. 边缘部署应用:大模型住进小房车
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示读写冲突与写写冲突两种并发事务冲突场景,动态演示事务时间线上操作交叉导致的脏读、不可重复读和丢失更新问题。

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

读写冲突场景 T1读取数据A后T2修改A T1再次读取A得到不同值 R-W-R 不可重复读异常

1. AWQ核心思想:给权重划等级

搬家第一件事是什么?不是找箱子,而是全家分工给所有物品划等级:祖传的瓷器、户口本、电脑硬盘是“A 级传家宝”,必须由主人亲手打包;当季衣物、常用厨具是“B 级日用品”,细心装箱即可;旧报纸、过季衣物是“C 级压仓货”,怎么省事怎么来。没有这个分级,你只能对每件物品平均用力——要么全都精包细裹导致装不下,要么全都乱塞一气砸碎传家宝。

大模型的权重矩阵也面临同样的搬家困境。训练好的模型中,不同权重对输出的影响力极不均衡。AWQ 的核心突破在于用一个朴素而深刻的标准给权重分级:不看权重本身的数值大小,而看它所服务的通道在真实数据上的激活幅度。就像判断一件物品重不重要,不看它体积大不大,而看它被使用的频次。数值大的权重未必重要,激活值大的通道对应的权重才是“传家宝”。

定义第 \(i\) 个输入通道的重要性为激活值绝对值的期望:

这个统计量需要在少量校准数据上前向传播得到——选几百条有代表性的文本或图片喂给模型,记录每一层每个通道的激活值,再逐通道求平均。

这与搬家分级如出一辙:跑数据就是“观察生活轨迹”,通道重要性就是“使用频率排行榜”。排行榜靠前的通道,其权重就是 A 级传家宝——接下来的一切操作,都围绕“保护它们”展开。

Ii=E[∣Xi∣]\displaystyle \mathcal{I}_i = \mathbb{E}\left[ |X_i| \right]
  1. 期望符号\(\mathbb{E}[\cdot]\) 表示对校准数据集中所有样本求平均,消除单条样本的偶然抖动。
    E[∣Xi∣]=1D∑d=1D∣Xi(d)∣\mathbb{E}\left[|X_i|\right] = \frac{1}{D}\sum_{d=1}^{D} \left|X_i^{(d)}\right|
  2. 绝对值运算\(|X_i|\) 对第 \(i\) 个激活通道的取值取绝对值,防止较大的正负激活互相抵消,导致“看似很小实则很活跃”。
    ∣Xi∣=Xi2|X_i| = \sqrt{X_i^2}
  3. 通道下标 \(i\)\(X_i\) 表示第 \(i\) 个激活通道(对应权重矩阵的第 \(i\) 行),逐通道独立统计,互不干扰。
    i∈{1,2,…,din}i \in \{1, 2, \dots, d_{\text{in}}\}

2. 激活感知原理:观察生活轨迹

怎么知道收藏柜里哪个手办最容易磕坏?光看它摆得高不高不够,得看你平时多久摸一次它。AWQ 的“摸”就是前向传播:取一小批校准数据(常见规模是 128 条样本),喂给模型,逐层记录输入的激活值,然后对每个激活通道计算均值等统计量。

这里的关键是“激活感知”这个词——感知的对象不是权重,而是数据流经模型时产生的激活。权重是静态的“物品”,激活是动态的“使用行为”。AWQ 用动态的使用行为给静态的权重分级,这是它与许多传统权重量化方法(只盯着权重数值本身)的本质区别。没有校准数据,就无法感知哪些通道真正“活跃”。

为了让不同层、不同通道的重要性可以横向比较、方便设阈值,需要把通道重要性归一化:

归一化后,重要性落在 \([0, 1]\) 区间。例如设定阈值 0.9,超过即为显著通道;也可以按比例选出前 1% 的通道作为保护对象。

这一步相当于把“使用频率排行榜”换算成 0 到 1 的“贵重指数”。指数超过 0.9 的通道,直接贴上“A 级传家宝”标签——哪几个是显著通道,一目了然。

I^i=Iimax⁡jIj\displaystyle \hat{\mathcal{I}}_i = \frac{\mathcal{I}_i}{\max_{j} \mathcal{I}_j}
  1. 分子 \(\mathcal{I}_i\)第 \(i\) 个通道的原始重要性,即上一节算出的激活绝对值均值。
    Ii=E[∣Xi∣]\mathcal{I}_i = \mathbb{E}\left[|X_i|\right]
  2. 分母 \(\max_j \mathcal{I}_j\)在所有通道中找出最大的重要性值,作为归一化基准,把不同层、不同量纲的数值拉到同一尺度。
    max⁡jIj=max⁡(I1,I2,…,Idin)\max_j \mathcal{I}_j = \max\left(\mathcal{I}_1, \mathcal{I}_2, \dots, \mathcal{I}_{d_{\text{in}}}\right)
  3. 比值含义\(\hat{\mathcal{I}}_i\) 越接近 1,说明该通道越接近“全场最活跃”,越值得重点保护。
    I^i∈[0,1]\hat{\mathcal{I}}_i \in [0, 1]

3. 缩放因子搜索:挑选保护箱

传家宝确定之后,搬家师傅要做的是给它挑合适的保护箱。保护箱太薄,磕碰依旧;太厚,占地方。AWQ 中的“保护箱”就是缩放因子 \(s\)——一个与输入通道一一对应的正数。

量化时,显著通道的权重先乘以大于 1 的 \(s\),把数值“撑开”,让量化步长相对这些权重变得更密(相对误差更小);同时激活除以 \(s\) 抵消影响;量化完成后权重再除以 \(s\) 还原。整个过程中模型权重不需要任何梯度更新,只靠几百条校准数据前向传播即可完成。

缩放因子并非拍脑袋定,而是搜索出来的。AWQ 论文给出了逼近最优解(最小化量化输出误差)的闭式表达式:

其中 \(\alpha\) 是 0 到 1 之间的超参数,控制缩放强度,默认取 0.5;\(W_{ij}\) 是权重矩阵第 \(i\) 行第 \(j\) 列的数值。该式对每个通道 \(i\) 独立计算,一次前向即可得到全部缩放因子,复杂度极低。

这个公式就像给传家宝选箱子:越经常用(激活大)、体积越娇贵(权重均幅小)的物品,配越厚的保护箱。而 \(\alpha\) 就是“细致程度”的旋钮,旋到 0.5 恰好是性价比之王。

si∗=(E[∣Xi∣])αmeanj(∣Wij∣)\displaystyle s_i^* = \frac{ \left( \mathbb{E}\left[ |X_i| \right] \right)^\alpha }{ \text{mean}_j \left( |W_{ij}| \right) }
  1. 分子 \(\left(\mathbb{E}[|X_i|]\right)^\alpha\)激活幅度均值的 \(\alpha\) 次幂。\(\alpha\) 越大,缩放因子对激活大小的响应越激进;\(\alpha=0.5\) 时对应均方误差意义下的近似最优。
    α∈[0,1],αdefault=0.5\alpha \in [0, 1], \quad \alpha_{\text{default}} = 0.5
  2. 分母 \(\text{mean}_j(|W_{ij}|)\)第 \(i\) 行权重绝对值的平均值,用来稳定数值范围,防止某些通道因权重本身过大导致缩放因子失衡。
    meanj(∣Wij∣)=1dout∑j=1dout∣Wij∣\text{mean}_j\left(|W_{ij}|\right) = \frac{1}{d_{\text{out}}} \sum_{j=1}^{d_{\text{out}}} |W_{ij}|
  3. 比值含义激活大、权重小的通道会获得较大的缩放因子,正是“越常使用、越娇贵,保护箱越厚”的数学表达。
    si∗∝激活幅度α权重幅度s_i^* \propto \frac{\text{激活幅度}^\alpha}{\text{权重幅度}}

4. 权重量化流程:抽真空装箱

保护箱套好之后,正式装箱。跟搬家用抽真空袋一样,量化要把连续的数值塞进有限档位——INT4 只有 16 个档位。对称量化是其中最常用的“抽真空机”。

设缩放后的权重为 \(w_s = w \times s_i\),量化步长为 \(\Delta = \dfrac{\max |w_s|}{2^{N-1} - 1}\),则对称量化过程为:

反量化时 \(\hat{w}_s = q \times \Delta\),最后除以 \(s_i\) 还原得到 \(\hat{w}\)。整个过程端到端一致:缩放、量化、反缩放,数学上保证 \(W \cdot X \approx \hat{W} \cdot X\)。量化误差主要来自取整时丢掉的“零头”。

抽真空只抽普通衣物,传家宝的箱子里塞满气泡膜。缩放让显著通道在量化时“档位更密”,普通通道则大胆压缩——两者最终都变成 INT4 的小箱子,但瓷器完好无损。

q=clamp(⌊wsΔ⌉,  −2N−1,  2N−1−1)\displaystyle q = \text{clamp}\left( \left\lfloor \frac{w_s}{\Delta} \right\rceil, \; -2^{N-1}, \; 2^{N-1} - 1 \right)
  1. 量化步长 \(\Delta\)决定一个档位代表多大数值。\(\lfloor \cdot \rceil\) 表示四舍五入取整到最近整数档位。
    Δ=max⁡∣ws∣2N−1−1,N=4⇒Δ=max⁡∣ws∣7\Delta = \frac{\max |w_s|}{2^{N-1} - 1}, \quad N = 4 \Rightarrow \Delta = \frac{\max |w_s|}{7}
  2. 四舍五入取整\(\left\lfloor \frac{w_s}{\Delta} \right\rceil\) 把连续值映射到最近的整数档位,是量化误差的主要来源。
    round(1.3)=1,round(1.8)=2\text{round}(1.3) = 1, \quad \text{round}(1.8) = 2
  3. 钳制 clamp把结果限制在 \([-2^{N-1},\, 2^{N-1}-1]\) 内,防止越界。INT4 范围为 \([-8, 7]\),共 16 个档位。
    clamp(x,a,b)=min⁡(max⁡(x,a),b)\text{clamp}(x, a, b) = \min(\max(x, a), b)

5. 精度性能权衡:不压碎瓷器的极限

搬家最怕什么?箱子塞得满满当当,结果瓷器碎了。量化也一样:位宽越低体积越小,但取整丢掉的“零头”会累积成可见的精度损失。AWQ 的价值在于把误差按在正确的地方——让误差集中在无关紧要的通道上。

量化误差真正的影响不是权重数值的偏差,而是权重偏差经过激活放大后的输出偏差:

分子是量化前后模型输出的平方误差(激活加权后的误差),分母是原始输出的能量,用于归一化。由于显著通道的激活幅度大,同样的权重偏差在那里会被放大成更大的输出偏差——AWQ 正是通过缩放把这些“大头”压下去,把有限的量化误差预算留给普通通道。

实验表明,4bit AWQ 在 LLaMA-7B 等模型上困惑度仅上升不到 1%,下游任务能力保持 95% 以上,同时模型体积缩小到四分之一,自回归解码速度提升 2 到 3 倍。这就是“压缩到极限但不碎”的平衡点——位宽与精度的权衡,就像搬家箱的纸板厚度与容积的权衡。AWQ 不做极端者,它用最小代价的“局部加强”(缩放显著通道),换取整体“不出大事”。

ϵ=E[∥X(W−W^)∥2]E[∥XW∥2]\displaystyle \epsilon = \frac{ \mathbb{E}\left[ \left\| X(W - \hat{W}) \right\|^2 \right] }{ \mathbb{E}\left[ \left\| XW \right\|^2 \right] }
  1. 激活加权误差\(X(W - \hat{W})\) 表示量化前后的权重差经过激活矩阵 \(X\) 加权后的真实输出偏差,而非孤立地看权重差。
    Δy=X(W−W^)\Delta y = X(W - \hat{W})
  2. 归一化分母\(XW\) 是量化前的原始输出,用其能量做分母,让误差变成无量纲的相对值,方便跨模型、跨层比较。
    E[∥XW∥2]=1D∑d=1D∥X(d)W∥2\mathbb{E}\left[\|XW\|^2\right] = \frac{1}{D}\sum_{d=1}^{D} \|X^{(d)}W\|^2
  3. 期望 \(\mathbb{E}\)在代表数据集上取平均,保证误差估计稳定、不依赖单条样本。
    ϵ=量化后输出误差原始输出能量\epsilon = \frac{\text{量化后输出误差}}{\text{原始输出能量}}

6. 边缘部署应用:大模型住进小房车

房子换成了小房车,每一寸空间都要精打细算。手机、智能音箱、车载中控就是大模型的“小房车”——内存只有几 GB,内存带宽更是紧张。一个 7B 参数的模型用 FP16 存储需要 14GB,绝大多数端侧设备根本装不下。

模型内存占用与位宽强相关:

其中 \(N\) 为参数量,\(b\) 为量化位宽,\(R\) 为相对 FP16 的压缩倍率。\(b=4\) 时,7B 模型仅需 3.5GB,压缩 4 倍。由于自回归解码是带宽瓶颈型任务,权重读取量直接决定生成速度,INT4 模型的内存读取量降为原来的四分之一,推理速度也接近翻 2 到 4 倍。

实际部署流程为:准备校准数据 → 前向传播统计激活 → 按公式计算缩放因子 → 对每个线性层执行缩放与量化、导出 INT4 权重与缩放系数表 → 在 llama.cpp、MLC-LLM、TensorRT-LLM 等推理框架中加载即可在端侧运行。小房车也能装下七口之家的家当,诀窍不是丢掉家具,而是把吸尘器抽真空、把瓷器包好塞进角落。AWQ 让大模型走出机房,住进每个人的口袋。

M=N×b8 字节,R=16b\displaystyle M = \frac{N \times b}{8} \ \text{字节}, \qquad R = \frac{16}{b}
  1. \(N \times b\)全部参数占用的总位数,参数量乘以每个参数的位宽。
    7×109×4=2.8×1010 bit7 \times 10^9 \times 4 = 2.8 \times 10^{10} \ \text{bit}
  2. 除以 8将比特换算为字节,得到可读的存储大小。
    2.8×1010/8=3.5 GB2.8 \times 10^{10} / 8 = 3.5 \ \text{GB}
  3. 压缩倍率 \(R\)FP16(16bit)与目标位宽的比值,\(b=4\) 时 \(R=4\),即体积缩小为原来的四分之一。
    R=164=4R = \frac{16}{4} = 4

AI 应用场景

手机端大模型助手

阶段:模型压缩与端侧部署

解决的问题:直接在手机上运行 7B 大模型时,FP16 权重占用 14GB 内存,远超手机可用空间;云端调用又存在网络延迟与隐私风险。AWQ 将模型压缩到 INT4(约 3.5GB),使 8GB 内存手机可流畅运行离线对话、摘要写作等能力。

具体案例:某手机厂商在旗舰机型中内置 7B 端侧助手,采用 AWQ 量化后首字延迟从 2.8 秒降至 1.2 秒,显存占用降低 72%,且模型在公开中文问答评测集上得分仅下降 2.3%,实现“没网也能聊”。

智能座舱语音助手

阶段:模型量化与车机集成

解决的问题:地下车库、高速隧道等场景网络不稳定,云端语音助手经常“掉线”。AWQ 量化后的意图识别与语义理解模型可完全离线运行在车机芯片上,保护用户隐私的同时保证毫秒级响应。

具体案例:某新能源车型在座舱域控制器(8GB 内存)部署 AWQ 量化后的 3B 对话模型,支持导航、空调、车窗等全车控制指令的离线理解,激活词唤醒率保持在 96% 以上,车载场景下平均响应延迟 380ms。

边缘 AI 视觉网关

阶段:边缘推理与模型分发

解决的问题:工厂、园区摄像头每天产生海量视频数据,全部上传云端分析成本高且实时性差。AWQ 量化使视觉语言模型能在 NVIDIA Jetson 等边缘设备上实时运行,支持图文理解、异常事件描述等复杂任务。

具体案例:某智慧园区在 Jetson Orin NX(内存 8GB)上部署 AWQ 量化后的 VILA-7B 视觉语言模型,视频流处理帧率从 2 FPS 提升至 8 FPS,内存占用从 15.6GB 降至 3.8GB,可实时识别烟火、跌倒、违规闯入等事件并生成自然语言告警。

Python 演示

python40 行
import numpy as np class AWQDemo:    def __init__(self, d_in, d_out, seed=42):        np.random.seed(seed)        self.w = np.random.randn(d_in, d_out) * 0.02        self.x = np.random.randn(32, d_in) * 0.5        self.x[:, :4] *= 8  # 前4个输入通道激活幅度大, 对应显著权重     def quantize(self, w, bits=4):        # 对称量化: 求步长 -> 取整 -> 钳制 -> 反量化还原        scale = np.max(np.abs(w)) / (2 ** (bits - 1) - 1)        q = np.clip(np.round(w / scale), -(2 ** (bits - 1)), 2 ** (bits - 1) - 1)        return q * scale     def awq_quantize(self, bits=4, alpha=0.5):        # 1. 激活感知: 按输入通道统计激活幅度均值的 alpha 次幂        act = np.mean(np.abs(self.x), axis=0) ** alpha        # 2. 按输入通道统计权重幅度均值        w_size = np.mean(np.abs(self.w), axis=1)        # 3. 缩放因子 = 激活幅度 / 权重幅度, 归一化到最大值 1        s = act / w_size        s = s / np.max(s)        # 4. 缩放权重 -> 量化 -> 反缩放还原        w_scaled = self.w * s[:, None]        w_q = self.quantize(w_scaled, bits) / s[:, None]        return w_q     def run(self):        w_q_naive = self.quantize(self.w, 4)        w_q_awq = self.awq_quantize(4)        y = self.x @ self.w        err_naive = np.mean((self.x @ w_q_naive - y) ** 2)        err_awq = np.mean((self.x @ w_q_awq - y) ** 2)        print(f"朴素4bit量化输出误差: {err_naive:.6f}")        print(f"AWQ 4bit量化输出误差: {err_awq:.6f}")        print(f"误差下降: {(1 - err_awq / err_naive) * 100:.1f}%") if __name__ == "__main__":    AWQDemo(128, 256).run()
目的:用 numpy 从零实现简化版 AWQ,对比“直接 4bit 量化”与“AWQ 通道缩放 + 4bit 量化”在模拟线性层上的输出误差,直观验证“保护显著权重”的有效性。
  1. self.x[:, :4] *= 8人为放大前 4 个输入通道的激活,模拟真实模型中少数通道激活值显著偏大的现象。
  2. scale = np.max(np.abs(w)) / (2 ** (bits - 1) - 1)计算对称量化的步长,即一个档位代表的数值大小。
  3. np.clip(np.round(w / scale), ...)完成量化核心:四舍五入取整并钳制到 INT4 范围。
  4. act = np.mean(np.abs(self.x), axis=0) ** alpha激活感知的关键:逐通道统计激活幅度,并用 α 控制敏感度。
  5. s = act / w_size缩放因子公式的数值实现:激活大、权重小的通道获得较大保护。
  6. w_scaled = self.w * s[:, None]对权重按输入通道缩放,撑开显著通道的数值范围。
  7. w_q = self.quantize(w_scaled, bits) / s[:, None]量化后除以缩放因子还原,保证输出数学上近似不变。

常见误区

误区AWQ 会不会是把重要的权重保持 FP16,不重要的权重才量化成 INT4?这样是不是一种混合精度存储?

正解不是。AWQ 中所有权重都会量化到 INT4,没有权重以 FP16 保留。保护显著权重的方式是“通道级缩放”:量化前把显著通道的权重乘以一个大于 1 的缩放因子,让这些数值在量化网格上占据更多档位,从而获得更高的相对精度。整个过程是“均匀压缩、局部保真”,就像同样抽真空打包,但给瓷器多裹了两层气泡膜。

为何常见:因为“保护显著权重”这个说法很容易让人联想到“保留不压缩”,而混合精度(如 LLM.int8() 的做法)确实是把少量异常值通道留成高精度。两种方案常被放在一起讨论,容易混淆。

误区AWQ 名字里有“激活感知”和“量化”,那它是不是把激活值也量化成 INT4 了?

正解AWQ 只量化权重,不量化激活。激活在这里的作用是“探针”或“裁判”:用一小批校准数据前向传播,统计各激活通道的幅度,识别哪些权重通道重要,再据此计算缩放因子。模型推理时激活仍然是 FP16 或 BF16 精度。如果同时量化激活,那就属于“权重-激活量化”(W8A8)的范畴,是另一条技术路线。

为何常见:术语“激活感知”容易被望文生义。实际上“感知”只是获取信息的手段,不是操作对象——就像用体温计测体温,体温计没有变成药。

误区既然缩放因子能保护显著通道,那把缩放因子设得特别大,比如 100,保护效果不是更好吗?

正解缩放因子过大会适得其反。因为缩放因子最终要作用到所有权重上:显著通道乘以 \(s\) 之后,其他通道的数值范围被压缩,它们的量化步长相对变大、误差增大。AWQ 论文证明最优缩放因子与激活幅度的 \(\alpha\) 次方成正比,\(\alpha\) 通常在 0 到 1 之间(默认 0.5),就是为了在这两类误差之间取平衡。保护箱太厚会挤占其他物品的空间,整箱反而塞不下。

为何常见:直觉上“保护越强越好”,但忽略了量化误差是全局耦合的——权重矩阵共享同一个数值范围,挪给显著通道的精度必然来自普通通道。

误区要做这么精细的权重保护,AWQ 是不是需要在训练集上重新训练一遍模型,或者至少做几轮微调?

正解不需要。AWQ 属于训练后量化(PTQ),全程零梯度更新:只需准备几十到几百条校准数据,跑一遍前向传播统计激活,然后用闭式公式算出缩放因子,逐层量化即可。整个过程往往在几分钟内完成,且不需要原始训练数据。这与 QAT(量化感知训练)有本质区别——QAT 需要在训练中模拟量化误差来微调权重。

为何常见:很多人在接触 PTQ 之前先接触了 QAT,形成“量化必须训练”的刻板印象。AWQ 的优雅之处恰恰在于:用数据统计代替梯度优化,依然能逼近微调后的精度。

面试题

Q1. AWQ 判断“显著权重”的主要依据是什么?

单选题 · easy

  • A.权重的绝对数值大小
  • B.对应通道的激活幅度← 正确答案
  • C.权重矩阵的位置编号
  • D.校准数据的采样比例

答案:B。AWQ 的核心洞察是:权重本身数值大不代表重要,真正重要的是它对应通道的激活幅度。激活幅度大的通道,其权重一旦量化出错,输出偏差会被放大。位置编号与数据采样比例与权重重要性无关,故排除 A、C、D。

Q2. AWQ 中对权重按通道缩放后,激活值应如何调整以保持输出近似不变?

单选题 · mid

  • A.激活值保持不变即可
  • B.激活值除以缩放因子← 正确答案
  • C.激活值乘以缩放因子
  • D.激活值加上缩放因子

答案:B。AWQ 的数学技巧是让量化前后 \(W \cdot X\) 近似不变。权重乘以 \(s\) 后,激活必须除以 \(s\) 来抵消,即 \((W \cdot s) \cdot (X / s) \approx W \cdot X\)。加或乘都会破坏等式的量纲一致性。

Q3. 以下哪些是 AWQ 相对于朴素直接量化的改进点?

多选题 · mid

  • A.统计校准数据的激活分布← 正确答案
  • B.识别并保护显著权重通道← 正确答案
  • C.使用通道级缩放因子参与量化← 正确答案
  • D.对模型进行全参数微调恢复精度

答案:ABC。AWQ 做三件事:用校准数据统计激活、按激活幅度识别显著通道、用通道级缩放因子引导量化。它不需要梯度更新和全参数微调,属于训练后量化(PTQ),因此 D 错误。

Q4. AWQ 量化技术最典型的应用场景是?

单选题 · easy

  • A.云端高性能 GPU 训练集群
  • B.手机和边缘设备的大模型部署← 正确答案
  • C.大规模训练数据的清洗归档
  • D.特征工程与数据标注流水线

答案:B。AWQ 的诞生背景是端侧部署:把动辄十几 GB 的大模型压缩到 INT4,塞进手机、车载等内存和带宽受限的设备。云端训练集群不依赖这种压缩,数据清洗和特征工程与模型量化无关。

Q5. AWQ 缩放因子公式中 \(\alpha\) 参数的最优取值范围通常是?

单选题 · hard

  • A.0 到 1 之间的超参数← 正确答案
  • B.任意大于 1 的整数
  • C.必须等于 0 的常数
  • D.与模型无关的负数

答案:A。\(\alpha\) 控制缩放强度,AWQ 论文证明最优值在 0 到 1 之间,默认取 0.5。\(\alpha=0\) 时退化为均匀缩放(无保护),\(\alpha>1\) 时会过度放大显著通道,挤压普通通道的精度,反而使总误差上升。

Q6. 将 FP16(16bit)模型量化到 INT4 后,内存理论上节省约多少?

单选题 · easy

  • A.25% 的量级水平
  • B.50% 的量级水平
  • C.75% 的量级水平← 正确答案
  • D.90% 乃至接近 95%

答案:C。INT4 的位宽是 FP16 的 4/16 = 1/4,因此内存占用降为原来的四分之一,节省 75%。计算式:\(R = 16/4 = 4\),即体积缩小 4 倍,对应节省 \(1 - 1/4 = 75\%\)。

Q7. AWQ 的完整量化流程包含以下哪些环节?

多选题 · mid

  • A.校准数据前向传播统计激活← 正确答案
  • B.计算通道级缩放因子← 正确答案
  • C.权重缩放后低位宽量化← 正确答案
  • D.梯度反向传播更新权重

答案:ABC。AWQ 三步走:前向传播拿激活统计、按公式算缩放因子、缩放后量化。全程无反向传播和梯度更新,属于免训练的 PTQ 方案,因此 D 错误。

Q8. AWQ 属于下列哪种量化范式?

单选题 · mid

  • A.训练后量化 PTQ 方法← 正确答案
  • B.训练时量化 QAT 方法
  • C.全精度无损失推理方法
  • D.动态逐层运行时量化

答案:A。AWQ 是经典 PTQ:用少量校准数据前向统计,不需要反向传播微调。QAT 需要在训练中模拟量化噪声更新权重;全精度无损失与量化矛盾;动态量化是推理时逐层实时量化,与 AWQ 的离线权重量化不同。

Q9. AWQ 中缩放因子取激活幅度的 \(\alpha\) 次幂(\(\alpha \approx 0.5\))而非线性值,主要原因是什么?

单选题 · extreme

  • A.量化误差对缩放因子呈二次型,最优解落在 0~1 幂次之间← 正确答案
  • B.激活幅度越大,缩放因子应越接近无穷大
  • C.\(\alpha\) 越小对显著权重的保护越强
  • D.\(\alpha\) 只影响计算速度,不影响精度

答案:A。AWQ 论文从量化误差的二次型形式出发,推导出最优缩放因子与激活幅度的 \(\alpha\) 次方成正比,且二次型最优解对应 \(\alpha=0.5\)。极端线性(\(\alpha=1\))会过度压缩普通通道,而 \(\alpha=0\) 则完全丧失感知能力。B、C、D 与数学推导和实验结论相悖。

Q10. 关于显著权重,下列说法正确的有哪些?

多选题 · hard

  • A.对应通道激活值大的权重更显著← 正确答案
  • B.其量化误差对模型输出的扰动更大← 正确答案
  • C.在 AWQ 中完全不参与量化过程
  • D.通过缩放因子获得更高相对精度← 正确答案

答案:ABD。显著权重由对应通道的激活幅度定义(A 对),由于激活放大器效应,其量化误差对输出扰动更大(B 对)。AWQ 中所有权重都量化到 INT4,显著权重并未豁免量化(C 错),而是通过额外地缩放获得更密的量化档位,从而提升相对精度(D 对)。