【免费下载链接】Llama-3.2-3B-Instruct_rai_1.8.0_npu_4K
Llama-3.2-3B-Instruct_rai_1.8.0_npu_4K是 AMD 为 Ryzen AI NPU 优化的 3B 指令微调模型,采用AWQ + UINT4 分组量化策略,将权重压缩到 4-bit 以在端侧 NPU 上流畅运行 4K 上下文。本文带你读懂它的量化配置、参数含义与精度取舍。
一、先认识这个模型:它是怎么来的?
这个模型并非直接下载即用的原始权重,而是一条完整的工业化流水线产物 🏭:
原始 Llama-3.2-3B-Instruct(BF16) ↓ Quark 量化(AWQ / Group 128 / UINT4) ↓ OGA Model Builder(编排图) ↓ NPU 部署后处理(Full Fusion 4K 上下文) model.onnx + NPU 元数据文件README.md 中一句话概括了它的量化策略:
AWQ / Group 128 / Asymmetric / BFP16 activations / UINT4 Weights
基础架构参数可以从 params.json 和 config.json 中确认:
| 项目 | 数值 | 说明 |
|---|---|---|
| 参数量级 | 3B | 端侧部署的"甜点"规模 |
| 隐藏层数 | 28 | num_hidden_layers |
| 隐藏维度 | 3072 | hidden_size |
| 注意力头 | 24(KV 头 8) | GQA 结构,省 KV 缓存 |
| 词表大小 | 128256 | vocab_size |
| 上下文长度 | 131072(RoPE 扩展后) | 部署侧限制为 4K |
二、为什么选 AWQ?🤔
AWQ(Activation-aware Weight Quantization,激活感知权重量化)是目前 4-bit 量化的主流方案之一,核心思想很直白:
- 观察激活分布:统计输入激活,找出哪些权重通道"重要"(对应激活幅度大)
- 保护重要权重:对这些"salient weights"施加缩放保护,让它们在量化后误差更小
- 免 QAT:不需要昂贵的量化感知训练,只需校准数据集即可,工程成本极低
对比其他路线:
| 方案 | 精度表现 | 训练成本 | 推理加速 | 适合场景 |
|---|---|---|---|---|
| 全精度 BF16 | 基准 | 无 | 无 | 显存充足 |
| GPTQ | 好 | 需校准 | 高 | GPU 生态 |
| AWQ | 好 | 需校准 | 高 | 端侧 / NPU 部署 |
| RTN(随机截断) | 一般 | 无 | 高 | 快速实验 |
AWQ 的优势在于:精度接近 GPTQ,但只依赖激活统计,与硬件友好的静态量化天然契合——这正是 NPU 部署最需要的特性。
在本项目中,AWQ 的具体配置写在 config.json 的algo_config里。可以看到它按模块精细划定了"被保护"的权重组:
| 输入层(inp) | 受保护权重层 | 上游操作(prev_op) |
|---|---|---|
self_attn.q_proj | q_proj / k_proj / v_proj | input_layernorm |
self_attn.o_proj | o_proj | self_attn.v_proj |
mlp.gate_proj | gate_proj / up_proj | post_attention_layernorm |
mlp.down_proj | down_proj | mlp.up_proj |
也就是说,Attention 与 FFN 的每一路投影都纳入了 AWQ 的保护范围,量化误差被系统性压低。
三、逐条解读 UINT4 量化参数 🔍
config.json 的global_quant_config.weight字段,是理解这个模型精度策略的"钥匙":
| 参数 | 取值 | 含义 |
|---|---|---|
dtype | uint4 | 权重以4-bit 无符号整数存储 |
group_size | 128 | 每128 个权重为一组,组内共享缩放 |
qscheme | per_group | 分组量化(比整层量化更精细) |
symmetric | false | 非对称量化:带零点偏移,更贴合真实分布 |
round_method | half_even | 银行家舍入,减小系统性偏差 |
observer_cls | PerGroupMinMaxObserver | 每组按 min/max 计算缩放因子 |
scale_type | float | 缩放因子以浮点存储,无损还原精度 |
几个关键取舍值得展开说说:
1. Group 128:精度与开销的平衡点
- 组越大 → 缩放参数越少 → 存储越省,但组内权重分布差异被"摊平",误差变大
- 组越小 → 越精确 → 但 scale/zero-point 开销占比上升
- 128 是业界验证过的常用值(LLaMA 系列 AWQ 的典型配置),兼顾两者
2. 非对称量化:为歪斜分布留足空间
权重分布往往不以 0 为中心对称。非对称方案(ASymmetric)通过零点(zero-point)把 0~15 的 4-bit 区间完整映射到权重的实际 min~max 范围,比对称量化多"用好"了约一半的表示区间,这是精度上的一项关键增益。
3. BFP16 激活:只压权重,不压激活
注意量化策略是UINT4 权重 + BFP16(Brain Float 16)激活。KV 缓存与中间激活保持 16-bit,而 config.json 中kv_cache_quant_config为空——KV Cache 未被量化。这一"只压权重"的路线是精度损失最小的选择,代价是 KV Cache 仍占用一定内存。
四、UINT4 带来的量化收益与代价 ⚖️
收益面
- 体积:BF16 权重约 6 GB → UINT4 约 1.5 GB(压缩约 4 倍),再加上组 scale 的少量开销。这让 3B 模型轻松装进 NPU/内存受限的端侧设备
- 速度:权重读取带宽需求下降,NPU 上 decode 阶段吞吐显著提升
- 内存压力:为 4K 上下文的 KV Cache 腾出了宝贵空间
代价面(精度权衡)
- 4-bit 表示精度有限,单权重最多 16 档,必须靠分组 + 非对称 + AWQ 保护"三件套"组合才能把误差控制在可接受范围
- 该模型尚未公布基准评测分数(README.md 中标注Benchmark scores not yet available),建议实际业务中自行用目标场景校验
is_dynamic: false表明采用静态量化:量化参数在编译期固定,推理零校准开销,但分布漂移场景下灵活性略低
一句话总结这套权衡:用 AWQ 校准 + 分组非对称把 4-bit 的精度损失压到最低,换取 4 倍体积缩减与 NPU 硬件友好的静态量化——这是端侧部署场景下性价比最高的组合。
五、"4K" 从何而来?NPU 部署细节 🎯
名字里的npu_4K指在 NPU 上做了4096 上下文的全融合(Full Fusion)优化:
- rai_config.json 按 Ryzen AI 运行时版本规定了最大提示长度:1.6.0 及以上为4096
- genai_config.json 中可见
hybrid_opt_token_backend: npu,token 级推理交给 NPU 加速,并配置了temperature: 0.6 / top_k: 50 / top_p: 0.9等采样参数 - 目录下的
dd_metastate_Llm_Prefill_*/dd_metastate_Llm_Token_*系列文件(如 dd_metastate_Llm_Prefill_modellayers.0input_layernormMLADFRMSNORM_sequence_length_padded_4096_.meta)是 NPU 的调度元数据,按 128~4096 分档缓存了不同序列长度下 Prefill 与 Token 阶段的编译状态——这正是"4K 全融合"的落点:常见长度全部预编译,免去运行时等待
六、如何获取这个模型?🚀
若需要完整权重文件,可直接克隆本仓库(模型大文件由 LFS 管理,见 .gitattributes):
git clone https://gitcode.com/hf_mirrors/amd/Llama-3.2-3B-Instruct_rai_1.8.0_npu_4K核心文件清单:
| 文件 | 作用 |
|---|---|
| model.onnx / model.onnx.data | 量化后的推理图与权重数据 |
| config.json | 模型结构 + 完整量化配置 |
| genai_config.json | ONNX Runtime GenAI 会话与采样参数 |
| tokenizer.json / tokenizer.model | 分词器 |
| chat_template.jinja | 对话模板 |
| rai_config.json | 各版本最大提示长度 |
七、总结:三个问题快速回顾 ✅
- 为什么选 AWQ?激活感知、免 QAT、静态量化友好,是端侧 4-bit 部署精度与成本的最优解
- UINT4 怎么保证精度?Group 128 分组 + 非对称 + half-even 舍入 + AWQ 通道保护,四管齐下
- "4K" 是什么?NPU 侧 4096 上下文全融合,配预编译的分档调度元数据,保证端侧低延迟运行
对希望在 Ryzen AI 设备上本地跑 Llama 指令模型的用户来说,这个仓库把量化、图构建、NPU 调优全部"打包完成",直接部署即可,是研究AWQ + UINT4 端侧量化策略的绝佳样本。
【免费下载链接】Llama-3.2-3B-Instruct_rai_1.8.0_npu_4K
相关推荐
为什么又小又快?Llama-3.2-3B-Instruct_rai_1.8.0_npu_16K的AWQ+UINT4量化策略详解
为什么又小又快?Llama 3.2 3B Instruct_rai_1.8.0_npu_16K的AWQ+UINT4量化策略详解 Llama 3.2 3B Ins
AWQ量化终极指南:深度剖析Llama-3.2-3B-Instruct_rai_1.8.0_hybrid的UINT4权重+BFP16激活策略
AWQ量化终极指南:深度剖析Llama 3.2 3B Instruct_rai_1.8.0_hybrid的UINT4权重+BFP16激活策略 Llama 3.2
Llama-3.2-3B AWQ+UINT4 量化实战:AMD Ryzen AI NPU 上 Quark 量化策略完整指南
Llama 3.2 3B AWQ+UINT4 量化实战:AMD Ryzen AI NPU 上 Quark 量化策略完整指南 Llama 3.2 3B_rai_1
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考