GLM-5.3-w4a4c8-mxfp4 的 Flex SmoothQuant 原理norm-linear 与 ov 互逆缩放如何破解低比特量化难题GLM-5.3-w4a4c8-mxfp4是基于 GLM-5.3BF16用 msModelSlim 量化的 W4A4 低比特模型MoE 专家走 MXFP4、注意力与主干 MLP 走 MXFP8。而它能在 4-bit 下保持精度的关键之一就是Flex SmoothQuant中norm-linear 与 ov 子图上的互逆缩放技巧——本文用尽量少的公式把这个原理讲清楚。一、先搞懂问题W4A4 量化最怕什么把线性层Y X·W量化到低比特时真正的风险来自激活离群值个别通道的激活幅度比其他通道高几十甚至上百倍。低比特格式如 MXFP4的动态范围有限一个巨无霸通道就会把整组的量化刻度撑大让其余通道挤进极窄的格子里精度随之崩塌。GLM-5.3 的结构特点让这个问题更突出hidden_size 6144MoE 256 专家 top-8前 3 层为 dense见 config.json每层线性层的输入大多来自RMSNorm的输出而 RMSNorm 本身会保留、甚至放大离群通道专家层被压到W4A4是对激活最苛刻的一档。所以量化的核心矛盾是激活在线、幅度不受控而权重离线、可以反复打磨。二、互逆缩放一次不改变输出的等价变换SmoothQuant 的核心只有一句话激活除以 s权重乘以 s数学上严格等价Y X · W (X / s) · (W · s)这个s是按通道统计得到的缩放因子激活侧被除小 → 离群值被压平分布变平滑在线量化更从容权重侧被乘大 → 代价转移到离线侧权重落盘前可以重新做高精度量化几乎无损。这就是把激活的难等价地搬给权重。在 GLM-5.3-w4a4c8-mxfp4 中这一步对应配置项flex_smooth_quant位于 GLM-5.3_best_practice.yaml- type: flex_smooth_quant alpha: null beta: null enable_subgraph_type: - norm-linear - ov include: - *alpha: null / beta: null表示缩放强度由工具结合校准数据GLM-5.3_best_practice.yaml 中的qwen3_cot_w4a4.json自动搜索确定——这正是 Flex 的由来不写死平滑系数而是按数据找最优平衡点。三、两种子图norm-linear 与 ov 分别管什么Flex SmoothQuant 不是对全部算子一刀切而是只在两类被验证有效的子图上施加互逆缩放3.1 norm-linear掐断离群值的传送带RMSNorm → Linear这是 Transformer 中离群值最集中的路径Norm 输出直接喂给线性层。互逆缩放就卡在这两者之间——激活Norm 输出除以s线性层权重乘以s输出不变但送入低比特线性层的激活幅度被显著拉平。对 256 个 MoE 专家的入口激活而言这一步几乎就是 W4A4 的保命操作。3.2 ovoutlier variation按通道差异动态施力ov子图关注通道间的幅度差异模式工具统计各通道激活的离群程度对差异大的通道给出更强的缩放、对已平滑的通道少动甚至不动避免为了压离群值把整体都压小了这种矫枉过正。可以把它理解为更精细的按通道自适应平滑。两者分工互补子图类型作用位置解决的问题norm-linearNorm 到 Linear 的衔接处阻断离群值向低比特线性层的传导ov通道幅度差异显著的子图按通道自适应分配缩放强度兼顾平滑度与信噪比⚠️ 注意范围控制配置中include: [*]只是候选全集最终平滑范围还受保护对象约束——gate、kv_b_proj、indexer 的wk/weights_proj以及首尾敏感层都被排除在低比特量化之外见 README.md 的保护对象清单。平滑参数与量化器、位宽强耦合自定义层范围后建议重新执行参数搜索。四、在完整量化流水线中的位置在 GLM-5.3_best_practice.yaml 中量化流水线按固定顺序执行quarot → flex_smooth_quant(norm-linear / ov) → fa3_quant(indexer / knope) → linear_quant ×3Flex SmoothQuant 处于中游上游先有QuaRot 正交旋转旋转矩阵见 rot.safetensors可选增强见 optional/quarot.safetensorsQuaRotW′ QᵀWX′ XQQ 为正交阵QᵀQ I计算严格等价把集中在少数通道的离群值旋转分散到更多通道Flex SmoothQuant在 norm-linear / ov 子图上做X′ X/s、W′ W·s的互逆缩放把残余的激活幅度等价迁移到权重侧linear_quant*mlp.experts.*压到MXFP4per_blockgroup_size32*self_attn*与其余*mlp*走MXFP8。旋转是打散平滑是搬家两者叠加后激活和权重都落在各自量化工具的动态范围之内——这是 W4A4 能成立的组合拳。五、结果如何落地互逆缩放后的权重与weight_scale按 58,943 组全配对写入 104 个分片单分片 4 GB如 quant_model_weights-00001-of-00104.safetensors逐 tensor 的量化类型W4A4_MXFP4/W8A8_MXFP8/FLOAT等记录在 quant_model_description.json 中供 vLLM-Ascend 等部署侧按图索骥加载分片与张量映射关系由 quant_model_weights.safetensors.index.json 维护。 换句话说你拿到的量化产物里每个权重张量都已经预消化了平滑变换推理时无需任何额外开销——这是 SmoothQuant 类离线等价变换最大的工程价值。六、一句话总结Flex SmoothQuant 的本质是一次零误差的精度再分配用norm-linear / ov两类子图精准定位离群值的高发地用X/s 与 W·s 互逆缩放把在线激活的量化难度等价搬到离线可反复打磨的权重上与QuaRot 旋转、保护对象协同让 GLM-5.3 在W4A4 MXFP4的极限压缩下依然可用。理解了这套互逆缩放技巧你也能看懂绝大多数激活平滑 低比特量化方案的底层逻辑。创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考