- 人工智能
- 大模型
- 多模态
- 模型量化
- 本地部署
- 模型推理服务
【免费下载链接】DeepSeek-V4.1-Flash-1017-oQ3e-ngram-mtp
DeepSeek-V4.1-Flash-1017-oQ3e-ngram-mtp是 DeepSeek-V4.1-Flash-1017(552B 多模态 MoE 模型)的 MLX 混合精度量化版本。它采用oQ3e 量化方案,让71.2% 的权重仅用 3 比特存储,整个 763B 参数的 checkpoint 压缩到428.174 GiB,而 Engram N-gram 记忆表则保留原始 FP8 精度、支持 SSD 卸载——本文将带你看懂这份量化报告的每个数字。📦
先搞懂:什么是 oQ3e 混合精度量化?
混合精度量化的核心思想是:不同层对量化的"抗痛能力"不同,精度预算应该花在刀刃上,而不是"一刀切"。
oQ3e(Improved oQe Quantization)由 oQ(oMLX v0.7.1)实现,工作流程可以概括为三步:
- 实测层敏感度:不是拍脑袋决定哪层用几位,而是用校准数据测量每一层降精度后的损失,按敏感度分配比特(配置项
allocation: measured_layer_sensitivity_affine); - 重要性矩阵引导舍入:每个 64 元素的小组(group)在量化时,借助1024 样本 × 512 token 的重要性矩阵(imatrix)决定向哪个量化点舍入,本仓库中有427 个模块应用了这一步;
- 加权最小二乘重拟合:舍入后再对缩放因子(scale)和偏置(bias)做一次加权最小二乘重拟合,把舍入误差再"救回"一些。
最终产物使用affine 量化模式、group_size 64,即每 64 个权重共享一组 scale/bias。
量化报告里的关键参数都写了什么?
打开仓库里的 quantization_report.json,开头几个字段就揭示了预算策略:
| 字段 | 值 | 含义 |
|---|---|---|
oq_level | 3 | oQ 量化档位 |
target_bpw | 3.5 | 目标平均比特/权重 |
hard_cap_bpw | 3.7 | 硬性上限,不允许突破 |
allocation | measured_layer_sensitivity_affine | 按实测敏感度分配比特 |
budget_scope | remaining_weights_excluding_engram | Engram 表不计入比特预算 |
shard_count | 65 | 权重切分为 65 个分片 |
其中budget_scope是一个精妙的设计:196.6B 参数的 Engram N-gram 表被直接排除出量化预算——因为 oMLX 运行时可以把它们从 SSD 按需读取,不占内存,自然也不需要为省空间而牺牲精度。
71% 权重 3 比特的秘密:比特预算分配表
README.md 中给出了完整的比特分布(Logical weights 指逻辑参数量,Tensor storage 是实际占用的磁盘空间):
| 存储格式 | 逻辑权重 | 占比 | 实际存储 | 有效比特/权重 |
|---|---|---|---|---|
| Affine 3-bit,group 64 | 543.582B | 71.224% | 221.484 GiB | 3.50 |
| Affine 4-bit,group 64 | 2.055B | 0.269% | 1.077 GiB | 4.50 |
| MXFP4,group 32 | 13.590B | 1.781% | 6.724 GiB | 4.25 |
| Affine 6-bit,group 64 | 1.258B | 0.165% | 0.952 GiB | 6.50 |
| Affine 8-bit,group 64 | 1.886B | 0.247% | 1.866 GiB | 8.50 |
| MXFP8,group 32 | 0.779B | 0.102% | 0.748 GiB | 8.25 |
| BF16 | 3.399B | 0.445% | 6.332 GiB | 16.00 |
| FP32 | 0.042B | 0.006% | 0.158 GiB | 32.00 |
| Engram MXFP8,group 32 | 196.614B | 25.762% | 188.833 GiB | 8.25 |
| 合计 | 763.205B | 100% | 428.174 GiB | 4.819 |
💡 注意"有效比特/权重"比名义值高一点(如 3-bit 实际是 3.50):这就是 group 64 中 scale/bias 分摊下来的量化开销,32 个权重才为一组存一组参数,摊薄后每个权重多花约 0.5 bit。
剔除 Engram 表后,平均只有 3.629 bit/weight——非常接近 3.5 的目标值,说明预算控制相当精准,没有突破 3.7 的硬上限。
比特都花在哪了?拆解各层级的保护策略
从 config.json 的omlx_deepseek_v41.quantized_modules段(460 个模块)可以看到非常清晰的"分级保护":
- 路由专家(ffn.experts.w1/w2/w3):40 个主层全部压到3-bit,是 71% 占比的主力。MoE 路由专家单次只激活 6/384 个,单专家出错的影响被稀释,是量化收益最大的部分;
- 共享专家(ffn.shared_experts):全部保持8-bit。共享专家每个 token 都参与,没有容错余地;
- 注意力投影(wq_a/wq_b/wkv):大部分层4-bit,少数敏感层升到8-bit;
- 输出投影(wo_b):敏感度驱动下的典型混合精度样本——敏感层用8-bit,其余层6-bit,两种精度各占 13 层和 30 层,完全没有"一刀切"。
另外有503 个模块被明确豁免量化,报告中按原因分类:
precision_policy(196 个):整个视觉编码器 + aligner,按精度策略整体保留;ineligible_shape(183 个):norm 等形状不适合分组的模块;uncalibrated(122 个):没有进入校准流程的模块(如 3 层 MTP 头、词表 embedding、gate 等);outside_layer_sensitivity(2 个):Engram 层的 wkv。
Engram N-gram 表:为什么 196B 参数坚持用 FP8?
这个模型带有一个Engram 条件记忆模块:两张 N-gram 表(engram_num_embeddings各约 3.84 亿行,最大 n-gram 大小为 4),总计196.614B 参数,占全模型 25.8%。
N-gram 表本质是查表记忆——存的不是"可平滑的权重",而是离散的 n-gram 索引映射。对这类结构做低位量化,丢掉的不是噪声而是"事实",效果损失不可逆。因此:
- 保留源模型的FP8(MXFP8,group 32)格式,E4M3 数值 + 每 32 通道一个 E8M0 缩放因子;
- 不计入量化比特预算,交给 oMLX 的SSD 卸载机制从磁盘按需读取。
结果就是:内存里跑的是"轻量化"语言主干,硬盘上放的是"满精度"记忆库,两者互不挤占。
存储结构与仓库文件一览
整个 checkpoint 按unified_safetensors_index布局切分为65 个分片,可通过索引文件定位任意张量:
| 文件 | 作用 |
|---|---|
| model.safetensors.index.json | 2282 个张量到 65 个分片的映射索引 |
| config.json | 模型结构 +omlx_deepseek_v41量化模块清单 |
| quantization_report.json | 完整量化报告(预算、分配、豁免模块) |
| model-00001-of-00065.safetensors 等 | 65 个权重分片(Git LFS 存储) |
| tokenizer.json / tokenizer_config.json | 分词器(129280 词表) |
| LICENSE | MIT 许可证 |
按组件拆分:语言主干 230.9 GiB、Engram 表 188.8 GiB、视觉编码器 0.9 GiB、MTP 头 7.5 GiB。
如何下载并在 MLX 上运行
权重文件由 Git LFS 托管,需要git-lfs拉取真实数据:
git clone https://gitcode.com/hf_mirrors/mlx-community/DeepSeek-V4.1-Flash-1017-oQ3e-ngram-mtp⚠️ 磁盘至少预留450 GB(428.174 GiB 权重 + 文件系统开销)。由于是 MoE 架构(384 个路由专家、每 token 激活 6 个),推理时激活参数远小于总量,配合 MTP 推测解码(
num_nextn_predict_layers: 3)与 1M 上下文的 YaRN 外推,这套权重面向的是 Apple 生态下的高效本地推理场景。
总结:oQ3e 做对了哪三件事?
- 按敏感度花钱:用实测数据把 3-bit 预算集中砸在 MoE 路由专家上,换来 71.2% 权重的 3-bit 存储,平均 3.629 bit/weight 逼近 3.5 目标;
- 按重要性舍入:imatrix + 加权最小二乘重拟合,让低位量化的舍入方向"朝着对输出影响最小的方向"走;
- 不量化不该量化的:Engram 表保 FP8 走 SSD、共享专家保 8-bit、norm 和 gate 整体豁免——该省的省,该保的一个 bit 都不丢。
这就是 oQ3e 混合精度量化能让 552B 主干"瘦"下来的完整逻辑:不是简单地少存 bit,而是让每一个 bit 都花在模型最需要的地方。
- 人工智能
- 大模型
- 多模态
- 模型量化
- 本地部署
- 模型推理服务
【免费下载链接】DeepSeek-V4.1-Flash-1017-oQ3e-ngram-mtp
相关推荐
KOReader KOSync 阅读进度同步配置:5 步在多台设备间无缝续读
KOReader KOSync 阅读进度同步配置:5 步在多台设备间无缝续读 在 Kindle、Kobo 和安卓手机上同时跑 KOReader 的人都知道一个痛
嵌入式桌面应用oQ3e-mtp还是ngram-mtp?DeepSeek-V4.1-Flash-1017-oQ3e-ngram-mtp版本差异对比与选型清单
oQ3e mtp还是ngram mtp?DeepSeek V4.1 Flash 1017 oQ3e ngram mtp版本差异对比与选型清单 本文讲清楚 Dee
人工智能大模型多模态模型量化本地部署模型推理服务进阶教程:如何用oMLX自量化,复现DeepSeek-V4.1-Flash-1017-oQ3e-mtp级混合精度检查点
进阶教程:如何用oMLX自量化,复现DeepSeek V4.1 Flash 1017 oQ3e mtp级混合精度检查点 本教程以 DeepSeek V4.1 F
大模型模型量化本地部署多模态
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考