☰
如何自己复现DeepSeek-V4.1-Flash-Quark-PTPC-FP8:AMD Quark量化脚本参数逐行拆解
2026/10/18 1:57:42 网站建设 项目流程

【免费下载链接】DeepSeek-V4.1-Flash-Quark-PTPC-FP8

项目地址:https://ai.gitcode.com/hf_mirrors/amd/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 量化模型完整保留了图像理解能力:

🛠️ 复现准备:环境与素材清单

复现前先备齐三样东西:

  1. 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;
  2. 基座权重:deepseek-ai/DeepSeek-V4.1-Flash的完整本地目录。注意它的权重以MXFP4 / MXFP8微缩放格式存储,转换前需要先反量化;
  3. 量化脚本: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_schemeptpc_fp8全局量化方案:FP8(e4m3)。权重用 per-channel 静态缩放(ch_axis: 0),激活用运行时动态缩放(is_dynamic: true),对称量化,half_even舍入
--layer_quant_scheme"*.engram.embed" ptpc_fp8engram n-gram 嵌入表不是线性层,默认方案覆盖不到,必须用 layer 级规则点名。它也是全模型少数几个"被量化"的大表
--quant_flowfile2file可复现的关键:离线文件到文件转换,只做权重变换,不需要校准数据、不做前向。同样的输入必然得到同样的输出
--model_exporthf_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 8008
lm_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.mdV4.1 提示词格式参考(含与 V4 的 3 处差异)
evaluation/README.mdDeepSWE agentic 评测流程(dsh-minimal / mini-swe-agent)
assets/dsv41_agentic_performance.png、assets/dsv41_kv_cache.pngagentic 性能与 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

项目地址:https://ai.gitcode.com/hf_mirrors/amd/DeepSeek-V4.1-Flash-Quark-PTPC-FP8
点击查看免费下载
上一篇:猫抓浏览器扩展:让网页视频一键保存变简单
下一篇:Claude Code 系统提示词变更日志全解析:从 v2.0.14 到 v2.1.292 的 308 个版本演化实录

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询