尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

TorchAO 源码级拆解:从 Int4WeightOnlyConfig 到 int4 权重存储的完整量化流程

TorchAO 源码级拆解:从 Int4WeightOnlyConfig 到 int4 权重存储的完整量化流程 TorchAO 源码级拆解从 Int4WeightOnlyConfig 到 int4 权重存储的完整量化流程【免费下载链接】Qwen3-VL-8B-Instruct-w4a16-tao-symgroup-torchao-v0.17.0项目地址: https://ai.gitcode.com/hf_mirrors/amd/Qwen3-VL-8B-Instruct-w4a16-tao-symgroup-torchao-v0.17.0想在大模型上实现 4 倍体积压缩、还几乎不掉精度这篇TorchAO 量化教程将以 AMD 发布的Qwen3-VL-8B-Instruct-w4a16-tao-symgroup-torchao-v0.17.0基于 Qwen3-VL-8B-Instruct 的 W4A16 对称按组量化模型为例从Int4WeightOnlyConfig配置出发一步步拆解 int4 权重存储背后的完整量化流程让你看懂 80 亿参数如何从 16GB 压到约 4GB。一、起点Int4WeightOnlyConfig 配置到底写了什么TorchAO 的量化入口是一份配置对象。该模型的配置见仓库根目录的config.json完整记录了量化方案核心参数如下weight_dtype int4权重从 BF16 压到 4 位整数granularity PerGroupgroup_size 128每 128 个权重共享一个缩放因子mapping_type SYMMETRIC对称量化zero_point 恒为 0scale_dtype bfloat16缩放因子仍用 BF16 保存每组建模开销仅约 3%intx_packing_format UNPACKED_TO_INT8int4 以每字节 2 个的方式紧凑存放用代码表示就是 README.md 中给出的Int4WeightOnlyConfig(group_size128, mapping_typeMappingType.SYMMETRIC)。这份配置同时声明了哪些层不量化modules_to_not_convert中排除了lm_head与视觉编码器model.visual只量化文本侧的线性层。二、量化流程第一步权重分块与缩放因子计算拿到 BF16 原始权重后TorchAO 按group_size128把权重矩阵切成一个个连续的块。每一块独立执行对称量化公式Wq round(W / scale)反量化时用 W ≈ Wq × scale对称量化zero_point 0这里scale取该组权重的绝对最大值再归一化是按组共享的128 个 int4 权重 1 个 BF16 的 scale这就是对称按组量化名字的由来。由于 scale 随组变化量化误差被局部限制在组内精度损失远小于全局量化这也是官方评测中近乎无损nearly lossless的原因。三、量化流程第二步int4 权重存储格式的落地量化完成后进入最关键的int4 权重存储环节仓库的config.json通过两个字段控制存储细节UNPACKED_TO_INT8 打包格式TorchAO 会把两个 int4 值打包进一个字节低 4 位 高 4 位相比每个权重独立存 1 字节存储直接减半scale 与权重分开存放所有int4权重集中存放BF16 scale单独保存加载时由框架按组自动还原。最终效果是8B 参数 × 2 字节BF16 约 16GB压缩后权重约 4GB压缩比 16 / 4 4 倍而 scale 带来的额外开销仅约 3%几乎可忽略。四、量化流程第三步存储格式与运行时的反量化模型文件model.safetensors中保存的正是打包后的 int4 权重与 scale。推理时TorchAO 在每层线性运算前执行反量化 低精度计算即 W4A16 中的 4 位权重、16 位激活激活保持 BF16不量化规避了激活量化带来的精度风险权重反量化后直接参与矩阵乘配合 ZenDNN 算子库见 README.md 中的zentorch2.11.0.1实现 CPU 上的高速推理。这种只量化权重的设计让该模型在AMD EPYC CPU 上无需 GPU 即可运行且推理速度优于同尺寸 BF16 模型。五、四倍压缩的真实收益与使用门槛把整条流程串起来收益非常直观对比项BF16 原版W4A16 量化版权重体积约 16GB约 4GB4 倍压缩精度基准近乎无损硬件要求GPU 更佳AMD EPYC CPU 即可推理引擎PyTorchvLLM ZenDNN不过要注意两个使用前提README.md 的 Limitations 已明确该模型仅兼容 TorchAO v0.17.0 PyTorch v2.11.0 ZenDNN v6.0.0的版本组合换版本可能无法加载且它是 CPU 专用优化不面向 GPU 推理。六、小结一条清晰的 int4 量化链路从Int4WeightOnlyConfig出发TorchAO 的完整量化流程可以归纳为四步配置声明 → 按组求 scale → int4 打包存储 → 推理时反量化。如果你想亲自复现可参考仓库中的README.md与config.json按文档配置好版本栈后直接加载该量化模型体验 CPU 推理。对于想自己动手量化的开发者沿着这条链路修改group_size或mapping_type就能快速试验不同精度策略这是理解 TorchAO 源码最好的起点。【免费下载链接】Qwen3-VL-8B-Instruct-w4a16-tao-symgroup-torchao-v0.17.0项目地址: https://ai.gitcode.com/hf_mirrors/amd/Qwen3-VL-8B-Instruct-w4a16-tao-symgroup-torchao-v0.17.0创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表