【免费下载链接】Qwen2.5-Coder-7B-Instruct_rai_1.8.0_npu_16K
这个仓库是Qwen2.5-Coder-7B-Instruct_rai_1.8.0_npu_16K,一款为 AMD Ryzen AI NPU 深度定制的 Qwen 代码大模型量化部署包(Ryzen AI 1.8.0、16K 上下文)。本文带你逐个看懂model.onnx、model.pb.bin、model.bin以及一堆dd_metastate_*小文件各自是干什么的,并讲清楚 ONNX 模型与 UINT4 量化权重是如何一步步生产出来的。
📦 一张表看懂:仓库里的文件都是干什么的
先建立整体认知。这个仓库由 AMD 基于官方 Qwen2.5-Coder-7B-Instruct 加工而来,完整流水线是:Quark 量化 → OGA Model Builder 构建 → NPU 后处理(Token Fusion 16K 上下文)(详见 README.md)。
| 文件 | 真实大小 | 作用 |
|---|---|---|
| model.onnx | ≈471 KB | ONNX 计算图(模型"骨架") |
| model.onnx.data | ≈2.2 GB | ONNX 外部权重数据(模型"血肉") |
| model.bin | ≈3.86 GB | NPU 端 UINT4 量化权重主体 |
| model.pb.bin | ≈10 KB | NPU 后端图入口/元数据文件 |
| config.json | 3.5 KB | 模型结构 + 量化参数配置 |
| genai_config.json | 2 KB | onnxruntime-genai 运行时配置 |
| rai_config.json | 230 B | 各 Ryzen AI 版本的最大 prompt 长度 |
cache/ 与dd_metastate_* | 数 KB~1 MB | NPU 部署元数据(16K 上下文缓存) |
| tokenizer.json、vocab.json、merges.txt 等 | 约 4 MB | 分词器全套文件 |
| chat_template.jinja | 2.5 KB | 对话提示词模板 |
| generation_config.json | 242 B | 默认采样参数 |
⚠️新手必看:仓库里的大模型文件用的是 Git LFS(大文件存储)。直接 clone 后看到的只是几 KB 的"指针文件",需要执行
git lfs install和git lfs pull才能拉到 GB 级的真实内容:git clone https://gitcode.com/hf_mirrors/amd/Qwen2.5-Coder-7B-Instruct_rai_1.8.0_npu_16K cd Qwen2.5-Coder-7B-Instruct_rai_1.8.0_npu_16K git lfs pull
🔍 model.onnx 与 model.onnx.data:ONNX 图的"骨架"和"血肉"
genai_config.json 中可以看到运行时的核心线索:
log_id: onnxruntime-genai—— 模型由 AMD 采用的onnxruntime-genai推理框架加载;filename: model.onnx—— 入口计算图就是 model.onnx。
ONNX(Open Neural Network Exchange)是一种通用的神经网络交换格式,可以理解为"用标准格式画出来的电路原理图"。大模型为了不把 GB 级权重塞进单个文件,普遍采用图与数据分离的写法:
model.onnx(仅 471 KB):只存 28 层 Transformer 的算子连接关系、输入输出定义(input_ids、attention_mask、KV Cache 的past_key_values.*等);model.onnx.data(约 2.2 GB):存放真正的张量数值,以"外部数据"形式被图引用。
从 2.2 GB 的体量反推,ONNX 侧主要承载词嵌入(embedding)与输出投影(lm_head)这类 BF16 大矩阵(152064 词表 × 3584 隐层 × 2 字节 × 2 ≈ 2.2 GB),这部分在 CPU 侧完成分词、嵌入和 logits 后处理。
🧠 model.bin 与 model.pb.bin:量化权重"藏"在哪里
这两个文件是理解本仓库的关键,答案就在 genai_config.json 的 RyzenAI Provider 配置里:
hybrid_opt_token_backend: "npu"—— 逐 token 解码的主战场交给 NPU;external_data_file: "model.pb.bin"—— NPU 后端从这个文件读取其专属图数据;fusion_opt_io_bind_kv_cache: "1"—— KV Cache 做了融合绑定优化。
而 model.bin 约3.86 GB,恰好约为 BF16 完整权重(约 15.5 GB)的1/4——这正是 7B 参数被压到4 bit后的体量。结合 config.json 中的量化配置可以确认:它是 UINT4 量化权重的主体存储,供 NPU 以极低显存占用跑完 28 层 Transformer 主干。
一句话总结这套混合(hybrid)部署分工:
CPU 负责分词、词嵌入、logits 与采样(ONNX 侧,BF16);NPU 负责逐 token 的 28 层注意力与 FFN 前向(4-bit 量化,权重在
model.bin,图入口为model.pb.bin)。
📐 量化策略:AWQ + UINT4 如何做到又快又省
README.md 用一行道出了核心策略:AWQ / Group 128 / Asymmetric / BFP16 激活 / UINT4 权重。拆开看 config.json 的global_quant_config:
| 参数 | 值 | 含义 |
|---|---|---|
dtype | uint4 | 权重以 4 bit 无符号整数存储 |
group_size | 128 | 每 128 个权重共享一组缩放参数 |
symmetric | false | 非对称量化,表达能力更强 |
round_method | half_even | 四舍五入取整方式 |
observer_cls | PerGroupMinMaxObserver | 分组统计极值以计算缩放 |
AWQ(Activation-aware Weight Quantization)的巧妙之处在于:它会参考激活值分布,识别出对精度影响更大的"关键权重"并重点保护,从而在 4-bit 极限压缩下尽量保住输出质量。量化由 Quark 工具链(quant_method: quark)完成,这也是 README 中 "created using Quark Quantization" 的由来。
🧬 dd_metastate_* 与 cache/:16K 上下文的幕后功臣
仓库根目录有十几个名字很长的dd_metastate_Llm_Token_Token_modellayers.0input_layernormMLADFRMSNORM_*文件(如.meta、.ctrlpkt、.super、.fconst、.state),配合 cache/ 目录下的Token_..._meta.json与txn_bins.zip,它们是 NPU 后处理阶段的部署元数据:
- 文件名中的
256 / 512 / 1024 / … / 16384是不同序列长度的 attention_mask 预填充形状——NPU 对每种长度都预先缓存了编译产物,运行时按长度直接命中,避免每次重新编译; MLADFRMSNORM记录的是 NPU 上首层 RMSNorm 算子的元信息(输入、常量、算子列表);- 上限 16384(16K)正是仓库名中npu_16K的含义;
- rai_config.json 则规定了不同 Ryzen AI 版本(1.3.1~1.7.1)允许的最大 prompt 长度(2048 或 4096)。
这些文件你不需要修改,运行时会自动读取,它们的存在恰恰说明模型经过了完整的 NPU 部署调优。
🚀 新手上手:三步在 Ryzen AI 上跑起来
- 拉取完整权重:clone 仓库后执行
git lfs pull,确认model.bin达到 3.86 GB; - 准备环境:安装 Ryzen AI 1.8.0 工具链及 onnxruntime-genai,快速开始步骤可参考 README.md 中指向的官方 Quick Start;
- 运行推理:直接以本目录为模型根目录启动,运行时按 genai_config.json 自动加载
model.onnx与 NPU 后端;默认采样参数见 generation_config.json(temperature 0.7、top_k 20、top_p 0.8),最长可生成 16K token(search.max_length: 16384)。
❓ 常见问题 FAQ
- clone 下来为什么文件只有几 KB?大文件走 Git LFS,执行
git lfs pull后才会下载真实内容。 - 7B 模型为什么只有 4 GB 而不是 15 GB?权重已用 AWQ 量化到 UINT4,约为 BF16 的 1/4,这也是它能装进 NPU 小容量内存的原因。
- 非 Ryzen AI 设备能用吗?
model.onnx部分是通用 ONNX 格式,理论上可被 CPU 推理;但model.pb.bin/model.bin及其配套元数据专为 AMD Ryzen AI NPU 编译,建议在 Ryzen AI 平台上按官方混合(hybrid OGA)方式部署。
小结:model.onnx+model.onnx.data是 CPU 侧的 ONNX 计算图与数据,model.bin是 NPU 侧 UINT4 量化权重,model.pb.bin是 NPU 后端入口,dd_metastate_*与 cache/ 是为 16K 上下文准备的部署缓存——读懂了这套文件结构,你就掌握了 Ryzen AI 上本地大模型部署的核心逻辑。
【免费下载链接】Qwen2.5-Coder-7B-Instruct_rai_1.8.0_npu_16K
相关推荐
ONNX模型文件全揭秘:Qwen2.5-7B-Instruct_rai_1.8.0_hybrid中model.onnx与model.pb.bin外部数据机制
ONNX模型文件全揭秘:Qwen2.5 7B Instruct_rai_1.8.0_hybrid中model.onnx与model.pb.bin外部数据机制 本
Mistral-7B-Instruct-v0.2_rai_1.8.0_hybrid文件结构深度解析:model.onnx、model.pb.bin、model.bin到底有何不同?
Mistral 7B Instruct v0.2_rai_1.8.0_hybrid文件结构深度解析:model.onnx、model.pb.bin、model.
Qwen2.5-Coder-0.5B-Instruct_rai_1.7.1_npu_16K 仓库文件全解读:model.onnx、model.pb.bin 与 dd_metastate 到底是什么
Qwen2.5 Coder 0.5B Instruct_rai_1.7.1_npu_16K 仓库文件全解读:model.onnx、model.pb.bin 与
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考