【免费下载链接】DeepSeek-V4.1-Flash-Quark-PTPC-FP8
本仓库DeepSeek-V4.1-Flash-Quark-PTPC-FP8是 AMD 基于 Quark 量化框架,把 DeepSeek-V4.1-Flash 转换为 PTPC-FP8 精度的模型权重库。本文带你逐行拆解官方量化脚本的每个参数,掌握从零复现 PTPC-FP8 量化的完整流程,并验证精度、部署上线。
📦 先看仓库:什么被量化了,什么被保留了
README.md 的模型卡片给出核心事实:
| 项目 | 说明 |
|---|---|
| 基座模型 | deepseek-ai/DeepSeek-V4.1-Flash(本仓库是它的量化衍生版) |
| 量化工具 | AMD Quark v0.13.0 |
| 被量化层 | experts、shared_experts、self_attn、engram.embed |
| 未量化层 | 视觉塔(vision tower)与 aligner,保持原始精度 |
| 目标硬件 | AMD MI355 / MI350(gfx950) |
| 软件栈 | ROCm 7.2.0 · PyTorch 2.12.0 · Transformers 5.17.0 |
| 推理引擎 | vLLM |
仓库主体是 48 个 safetensors 权重分片,外加 config.json(架构 + 量化配置)与 tokenizer 文件。从 config.json 可以看到:文本模型共 40 层,每层是 384 个路由专家 + 1 个共享专家的 MoE 结构(每 token 选 6 个专家),还带两级索引器的稀疏注意力、engram n-gram 嵌入表、超连接(Hyper-Connections)等模块——理解这些,才能看懂后面量化脚本为什么要排除那么多层。
仓库里的多模态示例图(作为 inference/ 目录的视觉输入样例)正好说明了"视觉塔不量化"的意义——PTPC-FP8 量化模型完整保留了图像理解能力:
🛠️ 复现准备:环境与素材清单
复现前先备齐三样东西:
- GPU 与软件:1 张 AMD GPU(gfx950 系,如 MI355/MI350),Linux + ROCm 7.2.0、PyTorch 2.12.0、Transformers 5.17.0,并安装 AMD Quark v0.13.0;
- 基座权重:
deepseek-ai/DeepSeek-V4.1-Flash的完整本地目录。注意它的权重以MXFP4 / MXFP8微缩放格式存储,转换前需要先反量化; - 量化脚本:Quark 仓库自带的官方示例
Quark/examples/torch/language_modeling/llm_ptq/quantize_quark.py(本仓库只放量化结果,脚本在 Quark 仓库中)。
量化完成后可与本仓库的产物直接对照,仓库可通过以下命令获取:
git clone https://gitcode.com/hf_mirrors/amd/DeepSeek-V4.1-Flash-Quark-PTPC-FP8🔍 量化脚本参数逐行拆解
官方完整脚本(原文见 README.md):
MODEL_DIR="deepseek-ai/DeepSeek-V4.1-Flash" OUTPUT_DIR="amd/DeepSeek-V4.1-Flash-Quark-PTPC-FP8" HIP_VISIBLE_DEVICES=0 \ QUARK_MXFP4_IMPL=triton \ python3 Quark/examples/torch/language_modeling/llm_ptq/quantize_quark.py \ --model_dir "${MODEL_DIR}" \ --output_dir "${OUTPUT_DIR}" \ --quant_scheme ptpc_fp8 \ --layer_quant_scheme "*.engram.embed" ptpc_fp8 \ --quant_flow file2file \ --model_export hf_format \ --keep_excluded_layers_as_original_model_state \ --exclude_layers \ "embed" \ "*head*" \ "*ffn.gate*" \ "*attn.compressor*" \ "*attn.indexer.weights_proj*" \ "*attn.indexer.wk*" \ "*hc_*" \ "*vision*" \ "*aligner*"环境变量:用哪张卡、走哪个内核
| 变量 | 作用 |
|---|---|
HIP_VISIBLE_DEVICES=0 | 把量化任务绑定到 0 号卡;file2file是纯权重转换,单卡即可完成 |
QUARK_MXFP4_IMPL=triton | 基座模型的 MXFP4 权重需要专门的反量化内核,这里显式指定使用 Triton 实现 |
核心参数:方案、流程与导出格式
| 参数 | 取值 | 逐行说明 |
|---|---|---|
--model_dir | 基座模型目录 | 输入端,指向 DeepSeek-V4.1-Flash 的本地 MXFP4/MXFP8 权重 |
--output_dir | 输出目录 | 产物是一个标准 Hugging Face 模型目录 |
--quant_scheme | ptpc_fp8 | 全局量化方案:FP8(e4m3)。权重用 per-channel 静态缩放(ch_axis: 0),激活用运行时动态缩放(is_dynamic: true),对称量化,half_even舍入 |
--layer_quant_scheme | "*.engram.embed" ptpc_fp8 | engram n-gram 嵌入表不是线性层,默认方案覆盖不到,必须用 layer 级规则点名。它也是全模型少数几个"被量化"的大表 |
--quant_flow | file2file | 可复现的关键:离线文件到文件转换,只做权重变换,不需要校准数据、不做前向。同样的输入必然得到同样的输出 |
--model_export | hf_format | 按 Hugging Face 格式导出,vLLM / transformers 可直接加载 |
--keep_excluded_layers_as_original_model_state | — | 被排除的层以原始权重原样保留在产物里,而不是丢弃,保证模型开箱即用 |
实际生效的量化配置会写进产物的 config.jsonquantization_config(权重fp8_e4m3per-channel、PerChannelMinMaxObserver观测器、导出weight_format: real_quantized、pack_method: reorder),复现时可逐项对照。
排除清单:哪些层绝对不能量化
--exclude_layers用通配符列出 9 类"敏感层"。结合 config.json 中展开后的具体层名,对应关系如下:
| 通配符 | 对应层 | 为什么排除 |
|---|---|---|
"embed" | 输入嵌入表 | 网络第一层精度敏感,量化易引入级联误差 |
"*head*" | 输出头及 MTP 的confidence_head、markov_head | 直接决定 next-token 分布 |
"*ffn.gate*" | 全部 40 层 + 3 个 MTP 层的 MoE 路由 | 路由分数被量化会破坏专家选择,影响整层 MoE 行为 |
"*attn.compressor*" | 第 2/8/14/20 层的 KV 压缩器wkv/wgate | 稀疏注意力的 KV 压缩通路,层小且精度要求高 |
"*attn.indexer.weights_proj*","*attn.indexer.wk*" | 8 个层的两级 indexer | 负责候选 KV 块筛选(topk=512),量化误差会直接选错块 |
"*hc_*" | 超连接(Hyper-Connections,hc_mult: 4)权重 | 连接混合权重,规模小、作用关键 |
"*vision*"、"*aligner*" | 32 层视觉编码器全部参数 + aligner | 官方明确保留视觉塔原始精度,保住多模态能力 |
设计思路一句话总结:只量化占计算量绝对大头的大矩阵(专家、注意力、engram 嵌入表),小而敏感的路由与多模态通路保持高精度,这样才能做到精度无损。
📊 验证复现结果:精度对标与部署上线
验证分两步:查产物、测精度。
1. 检查产物:输出目录应有 48 个 safetensors 分片 +config.json+ tokenizer 文件,与本仓库一致;config.json的quantization_config关键项应为quant_method: "quark"、version: "0.13"、pack_method: "reorder"(见 config.json)。
2. GSM8K(8-shot)精度对标:官方结果里,量化模型与基座模型同框架、同主机下 GSM8K 得分均为92.95,精度恢复率100%(README.md)。用 vLLM 部署后跑 lm-eval 即可复核:
export HIP_VISIBLE_DEVICES=0,1,2,3 export VLLM_ROCM_USE_AITER=1 export VLLM_ROCM_USE_AITER_MOE=1 export VLLM_ROCM_USE_AITER_MHA=1 export SAFETENSORS_FAST_GPU=1 export VLLM_MOE_SKIP_PADDING=0 vllm serve amd/DeepSeek-V4.1-Flash-Quark-PTPC-FP8 \ --tensor-parallel-size 4 \ --trust-remote-code \ --moe-backend aiter \ --max-model-len 8192 \ --gpu-memory-utilization 0.90 \ --port 8008lm_eval \ --model local-completions \ --tasks gsm8k \ --model_args "model=amd/DeepSeek-V4.1-Flash-Quark-PTPC-FP8,base_url=http://127.0.0.1:8008/v1/completions,num_concurrent=32,max_retries=5,timeout=1800,tokenized_requests=False,tokenizer_backend=None,max_length=8192" \ --gen_kwargs "max_gen_toks=4096" \ --num_fewshot 8 \ --log_samples \ --output_path /tmp/gsm8k-dsv41-ptpc-fp8得分接近 92.95,即量化复现成功 ✅
🧩 没有 MI300 级显卡?用 inference/ 研读与自检
仓库还附带一套可读性优先的参考实现(inference/README.md),不追求生产性能,但非常适合理解模型结构:
- convert.py:把 HF 权重按张量并行 rank 切分,
--expert-dtype fp4等参数帮助理解专家权重布局; - run.sh 配合 examples/example.txt:一条命令跑通双图交错的多模态示例,端到端验证转换后的权重;
- model.py:直接
python model.py即构建小模型跑 prefill + 22 步 decode,自检 dense-fp8 / MoE-fp4 内核管线; - encoding/ 目录提供 V4.1 提示词格式参考实现 encoding.py,支持多轮对话、工具调用、thinking 模式与 1–100 数值推理预算。
✅ 常见疑问速查
| 问题 | 解答 |
|---|---|
| 能在 NVIDIA GPU 上量化吗? | 该方案面向 ROCm/gfx950 栈,QUARK_MXFP4_IMPL=triton与 aiter 后端均依赖 AMD 生态 |
| exclude_layers 能随便改吗? | 路由层、indexer 都是小而敏感的层,改动后必须重新做精度验证(GSM8K 是官方基线) |
| 为什么用 file2file 而不是校准式 PTQ? | 纯权重转换无需校准集,结果确定、可复现;校准式方案结果会受数据集选择影响 |
| 许可证? | 与基座模型相同,MIT License,见 LICENSE |
📚 关键文件索引
| 路径 | 用途 |
|---|---|
| README.md | 官方量化脚本、vLLM 部署与精度复现命令 |
| config.json | 模型架构与量化配置(exclude 清单、观测器、导出格式) |
| inference/README.md | 参考推理实现:权重转换、示例运行、自检 |
| encoding/README.md | V4.1 提示词格式参考(含与 V4 的 3 处差异) |
| evaluation/README.md | DeepSWE agentic 评测流程(dsh-minimal / mini-swe-agent) |
assets/dsv41_agentic_performance.png、assets/dsv41_kv_cache.png | agentic 性能与 KV cache 设计示意图(需 git-lfs 检出后查看) |
小结:复现 DeepSeek-V4.1-Flash-Quark-PTPC-FP8 的核心就三步——装好 Quark v0.13.0 + ROCm 环境、跑通file2file量化脚本(重点理解--quant_scheme ptpc_fp8与排除清单的取舍)、用 GSM8K 92.95 对标验证。掌握"大矩阵量化、敏感层豁免"这一思路后,你也能把它迁移到自己的 MoE 模型上。
【免费下载链接】DeepSeek-V4.1-Flash-Quark-PTPC-FP8
相关推荐
一个脚本跑通DeepSeek-V4.1-Flash-Quark-PTPC-FP8:inference最小推理实现新手入门教程
一个脚本跑通DeepSeek V4.1 Flash Quark PTPC FP8:inference最小推理实现新手入门教程 DeepSeek V4.1 Fla
DeepSeek-V4.1-Flash-Quark-PTPC-FP8完全指南:AMD官方PTPC-FP8量化实现GSM8K零损失,MI350免费部署1M上下文多模态MoE
DeepSeek V4.1 Flash Quark PTPC FP8完全指南:AMD官方PTPC FP8量化实现GSM8K零损失,MI350免费部署1M上下文多
DeepSeek-V4.1-Flash-Quark-MXFP4 TileLang内核逐行解析:FP4/FP8量化与GEMM的3种实现细节
DeepSeek V4.1 Flash Quark MXFP4 TileLang内核逐行解析:FP4/FP8量化与GEMM的3种实现细节 DeepSeek V4
大模型模型量化多模态
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考