☰
MXFP4 + AttnFP8混合量化原理解析:GLM-5.3-Quark-MXFP4-AttnFP8如何兼顾显存与精度
2026/10/19 1:56:37 网站建设 项目流程
  • 人工智能
  • 大模型
  • 基础模型
  • 模型量化
  • 模型优化

【免费下载链接】GLM-5.3-Quark-MXFP4-AttnFP8

项目地址:https://ai.gitcode.com/hf_mirrors/amd/GLM-5.3-Quark-MXFP4-AttnFP8
点击查看免费下载

GLM-5.3-Quark-MXFP4-AttnFP8 是 AMD 官方发布的 GLM-5.3 大语言模型量化版本:它使用 AMD-Quark 工具链将模型的 MoE 专家层量化为 MXFP4(4 位微缩放格式),同时把注意力层单独量化为 FP8,形成一套"混合量化"方案。对正在为大模型显存压力发愁的工程师来说,这套方案几乎以可忽略的精度损失换来了约 4 倍的权重压缩,是理解大模型量化落地的一篇典型样本。

一、为什么大模型需要"混合量化" 🎯

大模型推理的第一道门槛是显存:以 bf16(16 位)存储的 GLM-5.3 拥有 78 层、每层 256 个路由专家(每 token 激活 8 个)的 MoE 架构,完整权重动辄数百 GB,单卡难以承载。

**量化(Quantization)**就是答案:用更少的比特表示权重和激活。但这里有个两难:

方案压缩比风险
全部保持 bf161×显存吃紧
全部压到 4 位(MXFP4)~4×敏感层精度骤降,输出质量崩坏
混合量化(本仓库做法)接近 4×敏感层留"后路",精度损失可控

混合量化的核心思想很简单:不是所有层都一样"耐压缩"。MoE 专家层参数数量庞大但单参数贡献分散,是压缩收益最大的地方;而注意力、路由等层数量少却直接影响语义表达,需要更高精度保护。

二、MXFP4:4 位权重是怎么做到的

MXFP4 属于MX(Microscaling)格式家族,可以理解为"带共享标尺的 4 位数":

  • 每 32 个数值为一组(group_size: 32),组内共享一个指数标尺(scale_format: e8m0,即 8 位纯指数)
  • 组内每个数值只用 4 位存储,精度损失由共享标尺"兜底"
  • 权重与激活统一采用该格式,推理时无需反量化到高精度

这套配置的完整定义可以直接在 config.json 的global_quant_config中查看:dtype: fp4、group_size: 32、scale_format: e8m0、round_method: half_even。

按 4 位计,MXFP4 权重体积约为 bf16 的1/4——这正是"显存减半再减半"的来源。

三、AttnFP8:注意力层为什么单独用 8 位

打开 config.json 的layer_quant_config,可以看到共439 个注意力投影层被单独配置为fp8_e4m3(8 位浮点,按 128×128 分块量化),覆盖:

  • q_a_proj/q_b_proj/kv_a_proj_with_mqa/kv_b_proj:Query 与 Key/Value 投影
  • o_proj:注意力输出投影
  • indexer.wq_b/indexer.wk:稀疏注意力索引器中的投影层

FP8 相比 FP4 多出 4 位动态范围,对数值波动敏感的注意力点积运算更友好;而它相比 bf16 仍能再省一半显存,且 MI350/MI355 上的矩阵核有原生 FP8 加速。这就是命名中"Quark-MXFP4-AttnFP8"的含义:主体 4 位 + 注意力 8 位的双轨制。

四、被"豁免"的层:哪些保持原始精度

并非所有层都参与量化。config.json 的exclude列表列出了保持 bf16 原精度的层:

层作用为什么保留高精度
lm_head输出词表投影直接影响最终 token 概率分布
embed_tokens词嵌入输入侧锚点,误差会被全网络放大
mlp.gateMoE 路由门控路由是离散决策,4 位量化极易"选错专家"
eh_proj、indexer.weights_proj嵌入头与索引器投影辅助索引计算,对精度敏感

这种"重灾区压、敏感区保"的分层策略,是混合量化方案敢把主体压到 4 位的底气。

五、量化是怎么执行的:一键脚本

该模型由 zai-org/GLM-5.3 出发,通过 AMD-Quark 的 PTQ(训练后量化)脚本quantize_quark.py生成,核心参数见 README.md:

  • --quant_scheme mxfp4:全局 MXFP4 方案
  • --exclude_layers:排除*self_attn*、*lm_head、*embed_tokens、*eh_proj、*mlp.gate(注意力层随后单独走 FP8 分块量化)
  • --file2file_quantization:按 safetensors 文件逐一转换,141 个分片对应输出 model-00001-of-00141.safetensors 等权重文件,映射关系记录在 model.safetensors.index.json 中

六、精度实测:GSM8K 掉分不到 1 个点 📊

量化是否"翻车",看基准评测最直观。AMD 使用lm-evaluation-harness在 GSM8K 上对比了原模型与量化模型(README.md):

模型GSM8K (flexible-extract)精度恢复率
GLM-5.3(原模型)91.89—
GLM-5.3-Quark-MXFP4-AttnFP891.2899.34%

以 4 位权重换 0.61 个点的数学基准损失,基本可以认为是量化方案的"免费午餐"。复现命令与所需环境变量(VLLM_ROCM_USE_AITER=1等)完整记录在 README.md。

七、部署要点:vLLM + AMD MI350 系列

模型面向AMD MI350/MI355硬件,基于 ROCm 7.1.1 与 vLLM 推理引擎部署,加载时指定quantization=quark即可让 vLLM 自动识别仓库中的量化配置:

export VLLM_ROCM_USE_AITER=1 export VLLM_ROCM_USE_AITER_FP8BMM=0 export VLLM_ROCM_USE_AITER_FP4BMM=0

关键加载参数:pretrained=amd/GLM-5.3-Quark-MXFP4、tensor_parallel_size=4、quantization=quark、max_model_len=32768。采样参数(如temperature: 1.0、top_p: 0.95)定义在 generation_config.json。

八、文件导读:快速定位关键资料

  • 项目说明与量化/部署流程:README.md
  • 量化配置核心(全局 MXFP4 + 逐层 FP8 + 豁免清单):config.json
  • 权重分片索引:model.safetensors.index.json
  • 生成参数:generation_config.json
  • 对话模板:chat_template.jinja

总结

GLM-5.3-Quark-MXFP4-AttnFP8 给出的是一套清晰的工程范式:

  1. 大参数量的 MoE 专家层 → MXFP4,拿到接近 4 倍的显存压缩;
  2. 敏感注意力层 → AttnFP8,8 位精度保住语义表达;
  3. 路由、嵌入、词表投影 → 原精度豁免,守住质量底线。

三层各司其职,最终在 GSM8K 上保留了 99.34% 的精度——如果你也在评估 AMD GPU 上的 MoE 大模型量化方案,这套"MXFP4 + AttnFP8"组合值得直接参考。

  • 人工智能
  • 大模型
  • 基础模型
  • 模型量化
  • 模型优化

【免费下载链接】GLM-5.3-Quark-MXFP4-AttnFP8

项目地址:https://ai.gitcode.com/hf_mirrors/amd/GLM-5.3-Quark-MXFP4-AttnFP8
点击查看免费下载
上一篇:Rivet Rust SDK 数据节点查询指南:使用 DatacentersApi 的 datacenters_list 接口
下一篇:k-skill bunjang-search 第三方商标使用法律声明解读:功能描述性使用与商标侵权的边界

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询