
【免费下载链接】granite-4.0-h-small-w8a8-llmcompressor项目地址https://ai.gitcode.com/hf_mirrors/amd/granite-4.0-h-small-w8a8-llmcompressor点击查看免费下载W8A8量化是指将大模型的权重Weights和激活值Activations同时压缩到 8-bit INT8 的量化技术。本文以 AMD 开源的granite-4.0-h-small-w8a8-llmcompressor模型为例用通俗易懂的方式讲清楚三件事W8A8 到底8了什么、动态激活量化dynamic activation如何工作、以及 RTNRound-to-Nearest就近取整为什么能让量化过程完全不需要校准数据。这个模型将 60 GiB 的 BF16 权重压缩到约 30.4 GiB缩小约 49%而 GSM8K 基准上几乎无损99.65% 精度恢复率是学习 INT8 量化的绝佳样本。一、先看成果量化带来了什么 先看一组来自 README.md 的真实数据项目量化前BF16量化后W8A8磁盘占用60.0 GiB30.4 GiB约 -49%权重精度BF16INT8激活精度BF16INT8动态GSM8K (5-shot)0.86430.8613恢复率 99.65%对于跑在 CPUAMD EPYC ZenDNN上的推理场景体积减半意味着更少的内存带宽压力而 INT8 矩阵乘INT8 GEMM在 CPU 上通常比 BF16 更快——这就是 W8A8 的核心价值。二、拆开名字W8 和 A8 分别指什么W8A8 8-bit Weight 8-bit Activation。它包含两个独立的压缩动作W8权重量化静态权重在量化时就固定下来推理时直接以 INT8 存储和计算本模型采用per-channel逐通道对称量化每一列权重共享一个缩放因子scale对应 config.json 中的配置strategy: channel、symmetric: true、dynamic: falseA8激活量化动态激活值是运行时产生的无法提前压缩只能在前向计算时现算本模型采用per-token逐 token动态量化每个 token 的向量单独求最大值单独生成一个 scale对应配置strategy: token、dynamic: true见 config.json 的input_activations字段为什么激活用动态而不是静态激活值的范围随输入内容剧烈变化静态量化需要先用校准数据集统计范围还可能因输入分布外溢而出错。动态量化在每次前向时按当前 token 的实际最大值量化天然自适应且计算开销很小——这正是免校准的关键。三、RTN 原理为什么不需要校准数据很多量化方案如 GPTQ、AWQ需要喂一批校准数据做反向误差补偿。**RTNRound-to-Nearest就近取整**走的是最朴素的路子对每一个权重值 w用 scale 缩放后取最接近的整数q round(w / scale)整个过程是**数据无关data-free**的只需要权重本身不需要任何校准样本。本模型的量化配方 recipe.yaml 也印证了这一点QuantizationModifier: targets: [Linear] ignore: [lm_head, re:.*block_sparse_moe.router] scheme: W8A8 requires_calibration_data: falserequires_calibration_data: false—— 这就是 RTN 的标志。代价是精度略低于 GPTQ 这类算法但对 INT8 这种8-bit 已经很宽松的场景误差通常可以忽略换来的是一步到位、几分钟完成的量化流程量化代码见 README.md 的 Quantization 小节。 对称量化的数学非常直白scale max(|w|) / 127q round(w / scale)量化值范围 [-127, 127]零点是 0symmetric无需额外存零点四、量化了哪些层哪些保住了BF16granite-4.0-h-small 是一个Mamba-MoE 混合架构40 层中有 4 层是标准注意力36 层是 Mamba 线性注意力每层还带 72 个专家的 MoE 块top-10 路由。量化策略是大头压掉小头保留✅ 被量化为 INT8 的部分占体积的大头全部 72 个路由专家block_sparse_moe.experts.*.{gate,up,down}_proj共享 MLPshared_mlp.{input,output}_linearMamba 投影mamba.{in,out}_proj4 个注意力层的q/k/v/o_proj❌ 保持 BF16 的部分见 config.json 的ignore列表MoE 路由器block_sparse_moe.router它是个很小的 Linear但输出 logits 决定激活哪些专家8-bit 舍入误差可能翻转 top-k 选择导致整个推理路径改变——收益极小、风险极大坚决不压lm_head、embed_tokens、各层 LayerNormMamba 状态空间内部件conv1d、A_log、D、dt_bias等它们不是 Linear 层 这是一条通用经验路由器、归一化层、嵌入层对量化敏感应保留高精度矩阵乘Linear才是体积和计算的主力放心压。五、上手体验3 行代码加载 W8A8 模型模型使用 compressed-tensors 格式int-quantized可直接被 vLLM 加载完整示例见 README.mdfrom vllm import LLM, SamplingParams model LLM( modelamd/granite-4.0-h-small-w8a8-llmcompressor, dtypebfloat16, trust_remote_codeTrue, )环境版本有锁定要求CPU 推理专用栈torch2.13.0.0 zentorch2.13.0.0 vllm0.29.0 llmcompressor0.13.0⚠️ 注意三点限制来自 README.md 的 Limitations 部分版本锁定ZenDNN v6.1.0 / ZenTorch v2.13.0.0 / PyTorch v2.13.0.0其他版本可能无法加载仅 CPU为 AMD EPYC ZenDNN 优化不面向 GPU 推理混合架构Mamba 的递归路径本身保持 BF16INT8 加速只作用于投影、专家和注意力部分六、总结一张表记住 W8A8 动态量化的要点要点本模型的体现W8 怎么做INT8 对称、per-channel 静态量化A8 怎么做INT8 对称、per-token动态量化校准数据不需要RTN 就近取整data-free量化范围专家、共享 MLP、Mamba/注意力投影保留 BF16路由器、lm_head、嵌入、归一化层实测效果体积 -49%GSM8K 恢复率 99.65%一句话理解 W8A8 RTN权重用静态逐通道 INT8 就近取整压一次激活用逐 token 动态 INT8 现算现压全程免校准数据把模型体积和 CPU 计算量同时砍掉一半精度几乎不动。本文参考资料README.md量化方法与评测数据、recipe.yaml量化配方、config.json量化配置详情赞分享【免费下载链接】granite-4.0-h-small-w8a8-llmcompressor项目地址https://ai.gitcode.com/hf_mirrors/amd/granite-4.0-h-small-w8a8-llmcompressor点击查看免费下载相关推荐什么是W8A8动态量化深入解读Qwen3.6-35B-A3B-w8a8-llmcompressor背后的INT8量化原理与CPU加速逻辑什么是W8A8动态量化深入解读Qwen3.6 35B A3B w8a8 llmcompressor背后的INT8量化原理与CPU加速逻辑 W8A8动态量化 是W8A8量化到底是什么gemma-4-26B-A4B-it-w8a8-llmcompressor的INT8权重动态激活原理完全指南W8A8量化到底是什么gemma 4 26B A4B it w8a8 llmcompressor的INT8权重动态激活原理完全指南 gemma 4 26B大模型模型量化本地部署多模态什么是W8A8 INT8量化从Muse-Glimmer-30B-w8a8-llmcompressor看懂模型体积瘦身42%的原理什么是W8A8 INT8量化从Muse Glimmer 30B w8a8 llmcompressor看懂模型体积瘦身42%的原理 Muse Glimmer 3大模型模型量化模型优化本地部署人工智能上一篇SDR 完整指南:免费 SDR 软件,三步把 USB 接收器变成收音机下一篇如何在EtherEx上存取代币approvetransferFrom存款提款流程详解创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考