- 人工智能
- 大模型
- 模型量化
- 模型优化
- 本地部署
【免费下载链接】Agents-A1-OptiQ-4bit-REAP-19B
更正标题笔误:# Agents-A1-OptiQ-4bit-REAP-19B文件结构全解:safetensors、kv_config与optiq_metadata完全清单
Agents-A1-OptiQ-4bit-REAP-19B是运行在 Apple Silicon(MLX)上的 19B 级 MoE 多模态模型:它把父模型的 35.1B 参数剪枝到 18.8B,磁盘占用从 21.5 GB 降到12.3 GB,运行仅需约 14.5 GB 内存。本文带你逐个读懂仓库里的 11 个文件——从safetensors权重分片、model.safetensors.index.json索引,到kv_config.json、optiq_metadata.json两大量化元数据,一次看清这套模型包的完整结构。
📦 一眼看懂:这套模型文件是干什么的
先记住这张"身份卡",后面每个文件都能对号入座:
| 属性 | 数值 | 出处 |
|---|---|---|
| 架构 | Qwen3_5MoeForConditionalGeneration(MoE 多模态) | config.json |
| 总参数量 | 18.8B(父模型 35.1B,−47%) | README.md |
| 磁盘大小 | 12.3 GB(父模型 21.5 GB,−43%) | README.md |
| 量化方案 | OptiQ 4bit 混合精度,实际约 4.51 bpw | optiq_metadata.json |
| 专家剪枝 | REAP:每层 256 → 128 个专家,top-8 路由不变 | optiq_metadata.json |
💡 关键机制一句话:剪掉的只是"没被路由选中的专家",每个 token 激活的专家数仍是 8 个——所以模型变小了,速度却不变慢。
🗂️ 文件完全清单:11 个文件各管一摊
| 文件 | 角色 | 一句话说明 |
|---|---|---|
| model-00001-of-00003.safetensors 等 3 个分片 | 权重本体 | 语言模型 1757 个张量,约 12.3 GB |
| model.safetensors.index.json | 权重索引 | 2090 个张量 → 分片位置的对照表 |
| optiq/optiq_vision.safetensors | 视觉侧车权重 | 333 个张量,bfloat16 原精度保留 |
| config.json | 架构 + 量化配置 | 40 层、128 专家、逐层混合位宽 |
| kv_config.json | KV Cache 量化清单 | 10 个全注意力层的 4/8bit 配置 |
| optiq_metadata.json | 量化/剪枝元数据 | 混合精度位图 + REAP 剪枝全过程记录 |
| tokenizer.json、tokenizer_config.json | 分词器 | Qwen2Tokenizer,支持 262144 上下文 |
| chat_template.jinja | 对话模板 | 定义消息如何拼进模型 |
| README.md | 模型卡片 | 压缩比、剪枝方法与使用示例 |
| .gitattributes | LFS 规则 | 声明大文件走 Git LFS 下载 |
🧱 safetensors 权重分片:12.3 GB 如何切成 3 块
三个model-000XX-of-00003.safetensors分片按张量切分存放语言模型权重,分布并不均匀:
- 第 1 分片:553 个张量(含
embed_tokens、前部网络层) - 第 2 分片:712 个张量(最重的中间层段)
- 第 3 分片:492 个张量(含
lm_head等尾部权重)
三个分片合计1757 个张量,总字节数12,355,664,128(约 12.3 GB),这个数字就写在 model.safetensors.index.json 的metadata.total_size里。
另外注意:*.safetensors和tokenizer.json都在 .gitattributes 中被声明为Git LFS文件。如果你在本地 mirror 里看到它们只有 100 多字节,那是 LFS 指针文件——用git lfs pull或git lfs install后重新 clone 即可拉到真实权重。
optiq_vision.safetensors:视觉塔为何单独存放
optiq/optiq_vision.safetensors 是一个侧车(sidecar)文件,存放视觉编码器(vision tower)的全部333 个张量,以bfloat16 原精度保留、不参与 4bit 量化。索引表中它们同样登记在册,例如:
vision_tower.blocks.0.attn.qkv.weight→optiq/optiq_vision.safetensorsvision_tower.blocks.27.attn.proj.bias→optiq/optiq_vision.safetensors
这种"语言侧量化、视觉侧保精度"的拆分,正是 OptiQ 多模态模型的典型做法,配置入口在 config.json 的optiq_vision字段(sidecar: optiq/optiq_vision.safetensors)。
🗺️ model.safetensors.index.json:张量分布速查表
这个 206 KB 的 JSON 是整个权重包的"目录页",两大块内容:
{ "metadata": { "total_size": 12355664128 }, "weight_map": { "language_model.model.embed_tokens.weight": "model-00001-of-00003.safetensors", "...共 2090 个张量条目..." } }张量名本身也透露了量化细节:每个量化矩阵都拆成三份——
| 张量后缀 | 含义 |
|---|---|
.weight | 4bit/8bit 量化后的主权重 |
.scales | 每组 64 个元素的缩放因子(affine 模式) |
.biases | 偏置项(注意力投影层才有) |
比如language_model.model.layers.0.linear_attn.in_proj_a.weight / .scales / .biases三个张量同属第 0 层的线性注意力输入投影。
⚙️ config.json:架构与混合精度配置
config.json(约 116 KB,大部分篇幅是逐层量化位宽)顶层关键字段:
architectures:Qwen3_5MoeForConditionalGeneration——带视觉/视频 token 的 MoE 生成模型(image_token_id: 248056、video_token_id: 248057)text_config:40 层(num_hidden_layers: 40)、隐藏维度 2048、词表 248320;剪枝后num_experts: 128,num_experts_per_tok: 8- 注意力混合:
layer_types中 30 层是linear_attention,每 4 层插一层full_attention(即第 3、7、11…39 层) quantization:默认bits: 4, group_size: 64, mode: affine,再用 500 多条逐层覆写把敏感层提到 8bit
📌 剪枝痕迹就藏在
num_experts:父模型每层 256 个专家,这里只剩 128——-19B这个名字由此而来。
🔢 kv_config.json:KV Cache 量化清单(仅 10 行配置)
kv_config.json 很小,却直接决定长上下文的内存开销。它只列出全注意力层(线性注意力层不需要 KV Cache)的缓存量化位宽:
| layer_idx | bits | layer_idx | bits |
|---|---|---|---|
| 3 | 4 | 23 | 4 |
| 7 | 4 | 27 | 4 |
| 11 | 8 | 31 | 4 |
| 15 | 8 | 35 | 4 |
| 19 | 4 | 39 | 4 |
规律一目了然:8 个层用 4bit KV,仅第 11、15 层用 8bit 保精度,全部group_size: 64。推理框架读到这个文件,就会对相应层的 K/V 缓存按位宽压缩,显著降低长对话的显存压力。
🧾 optiq_metadata.json:量化与剪枝的"完整档案"
optiq_metadata.json(约 122 KB)是理解这个模型为什么是现在这个样子的核心档案,分四块:
1️⃣ 混合精度总览
| 字段 | 值 | 说明 |
|---|---|---|
method | optiq_mixed_precision_transferred | 位宽图从同架构模型迁移而来 |
base_model | InternScience/Agents-A1 | 原始基础模型 |
target_bpw/achieved_bpw | 4.5 /4.513 | 目标与实际比特数(bits per weight) |
n_high_bits/n_low_bits | 397 / 113 | 8bit 层 397 个,4bit 层 113 个 |
threshold | 0.0 | 敏感度判定阈值 |
即:绝大多数张量压到 4bit,397 个对精度敏感的张量(如各层注意力投影、共享专家、lm_head)保留 8bit,最终平均4.513 bpw。
2️⃣ per_layer:510 条逐张量位宽表
per_layer按层号.模块名给出每个张量的bits与group_size,与 config.json 的quantization一一对应,例如:
"language_model.model.layers.39.mlp.shared_expert_gate": { "bits": 8, "group_size": 64 }3️⃣ expert_pruning:REAP 剪枝全程记录
- 方法:
reap(路由器权重 × 专家输出范数的条件均值排序,保留排名靠前的专家) - 规模:每层
256 → 128(uniform_retention: true),top_k: 8路由不变 - 体积:专家权重从19.6 GB 砍到 9.8 GB(
expert_bytes_before/after) - 校准:optiq 六领域混合 8 个样本,
seed: 42,专家覆盖率下限 0.9766 retained_experts:逐层列出被保留的 128 个专家编号,可复现验证
参考同架构的验证结论:50% 保留率下 KL 散度仅0.077(明显退化的剪枝模型 >1.0),生成质量在人工评审中难以区分。详见 README.md。
4️⃣ 与 config.json 的对应关系
optiq_metadata.json是制作过程档案(谁做的、怎么选的),config.json的quantization是运行时配置(加载时真正读取的位宽)。两者数值一致,修改模型行为时以config.json为准。
🗣️ 推理三件套:tokenizer、模板与加载方式
| 文件 | 要点 |
|---|---|
| tokenizer.json | Qwen2Tokenizer 词表本体(LFS 大文件),含图像/视频/音频特殊 token |
| tokenizer_config.json | model_max_length: 262144(256K 上下文)、tool_parser_type: qwen3_coder |
| chat_template.jinja | Jinja 对话模板,定义 system/user/assistant 的拼装格式 |
在装有mlx-lm的环境里,两条命令即可跑起来:
pip install mlx-optiq optiq serve --model mlx-community/Agents-A1-OptiQ-4bit-REAP-19B或直接用mlx_lm加载(权重、分词器、kv_config.json都会按上文结构自动解析)。
✅ 文件结构检查清单(下载后核对)
model.safetensors.index.json的total_size=12355664128字节 ✅- 3 个 safetensors 分片共1757张量 + 侧车333张量 =2090✅
- config.json 中
num_experts为128(而非 256)✅ - kv_config.json 恰好10条全注意力层记录 ✅
- optiq_metadata.json 的
achieved_bpw ≈ 4.513✅
全部对上,说明权重包完整无损,可以安心部署到 Apple Silicon 上体验这个"更小不更慢"的 19B 专家剪枝模型了。
- 人工智能
- 大模型
- 模型量化
- 模型优化
- 本地部署
【免费下载链接】Agents-A1-OptiQ-4bit-REAP-19B
相关推荐
为什么Agents-A1-OptiQ-4bit-REAP-19B变小却不更慢?MoE专家剪枝技术REAP完整解析
为什么Agents A1 OptiQ 4bit REAP 19B变小却不更慢?MoE专家剪枝技术REAP完整解析 Agents A1 OptiQ 4bit RE
人工智能大模型模型量化模型优化本地部署如何 3 步用 abogen 把 EPUB 变有声书:开源文本转语音工具上手指南
如何 3 步用 abogen 把 EPUB 变有声书:开源文本转语音工具上手指南 abogen 是一款开源的文本转语音工具,能把 EPUB、PDF 和纯文本变成
人工智能大模型模型量化模型优化本地部署14.5GB内存跑大模型:Agents-A1-OptiQ-4bit-REAP-19B部署与内存优化终极指南
14.5GB内存跑大模型:Agents A1 OptiQ 4bit REAP 19B部署与内存优化终极指南 Agents A1 OptiQ 4bit REAP
人工智能大模型模型量化模型优化本地部署
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考