需将DeepSeek V4原始PyTorch权重转换为AWQ格式以实现低显存、低延迟、高精度推理:一、配置CUDA 12.1兼容环境并安装awq-engine等指定版本依赖;二、从Hugging Face下载HF格式权重,确认含DeepseekV4ForCausalLM架构及MoE字段;三、用deepseek-calib-256数据集校准,启用moa_enable与expert_protect保障专家层精度;四、校验awq_model.bin中专家权重张量完整性及前向输出形状;五、使用awq-engine的AWQRunner部署,禁用不支持MoE-AWQ的vLLM。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您已获取 DeepSeek V4 的原始 PyTorch 权重,但希望在有限显存设备上实现低延迟、高精度推理,则需将其转换为 AWQ 格式。AWQ 是一种基于激活感知的权重量化方法,通过保留对模型输出影响最大的关键权重(即“重要权重”),在 4-bit 甚至 3-bit 下维持模型能力。以下是完成该转换的具体操作路径:
一、准备量化所需环境与依赖
AWQ 转换需特定版本的 Python 生态与 CUDA 工具链,低版本库会导致 kernel 编译失败或权重校准异常。必须使用支持 FP16/INT4 混合计算的 CUDA 环境,并安装经验证兼容 DeepSeek V4 架构的量化工具包。
1、创建隔离 Python 环境并激活:
conda create -n deepseek-awq python=3.10 && conda activate deepseek-awq
2、安装指定版本 PyTorch(适配 CUDA 12.1):
pip install torch==2.3.1+cu121 torchvision==0.18.1+cu121 torchaudio==2.3.1+cu121 --extra-index-url https://download.pytorch.org/whl/cu121
3、安装 awq-engine 及配套工具:
pip install git+https://github.com/mit-han-lab/awq.git@main
pip install transformers==4.41.2 accelerate==0.30.1 autoawq==0.2.7
4、验证 GPU 支持:
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"
二、下载并组织 DeepSeek V4 模型权重
DeepSeek V4 官方未直接发布 AWQ 格式权重,需从 Hugging Face 获取原始 HF 格式模型,并确保目录结构完整。注意:V4 使用 MoE 架构,其 `config.json` 中包含 `num_local_experts` 和 `num_experts_per_tok` 字段,AWQ 工具必须能正确识别该结构,否则校准将跳过专家层导致精度崩塌。
1、执行模型拉取命令(需配置 Hugging Face Token 并启用 LFS):
huggingface-cli download --resume-download deepseek-ai/DeepSeek-V4 --local-dir ./deepseek-v4-hf
2、检查关键文件是否存在:
ls ./deepseek-v4-hf/config.json ./deepseek-v4-hf/pytorch_model-00001-of-00003.bin ./deepseek-v4-hf/tokenizer.model
3、确认模型类型字段值:
grep -E '"architectures"|num_local_experts' ./deepseek-v4-hf/config.json
4、若发现 `architectures` 中含 `"DeepseekV4ForCausalLM"`,则表示权重格式可用;若为 `"LlamaForCausalLM"`,需先运行架构适配脚本(见步骤三)。
三、执行 AWQ 校准与量化转换
AWQ 的核心是激活感知校准(Activation-Aware Calibration),需使用代表性样本触发模型前向传播,收集各层输入激活值分布,据此确定每组权重中哪些应被保留高精度。校准数据集必须覆盖 MoE 路由行为,否则专家权重将被错误压缩。
1、准备校准数据集(最小 256 条文本,推荐使用 DeepSeek 官方提供的 `deepseek-calib-256` 子集):
wget https://huggingface.co/datasets/deepseek-ai/deepseek-calib/resolve/main/deepseek-calib-256.jsonl -O ./calib.jsonl
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
2、运行 AWQ 量化主命令(指定 MoE 兼容模式与专家层保护):
python -m awq.entry --model_path ./deepseek-v4-hf --w_bit 4 --q_group_size 128 --zero_point --version awq --calib_data ./calib.jsonl --export_path ./deepseek-v4-awq --moa_enable --expert_protect
3、监控校准日志中是否出现以下关键提示:
[AWQ] Protected layer: model.layers.12.mlp.experts.7.w1
[AWQ] Calibration completed for 42 expert layers
4、校准完成后,检查输出目录结构:
ls ./deepseek-v4-awq/awq_model.bin ./deepseek-v4-awq/config.json ./deepseek-v4-awq/tokenizer.model
四、验证 AWQ 模型权重完整性
转换后的 `.bin` 文件需通过二进制签名与张量形状双重校验,避免因磁盘写入中断或 NCCL 同步失败导致部分专家权重损坏。尤其需验证 MoE 路由层(`gate_proj`)与专家权重(`w1/w2/w3`)的 INT4 量化参数是否全部非零,空值意味着该专家被跳过校准,将引发 runtime error。
1、加载量化权重并打印首层专家数量:
python -c "from awq import AWQModel; m = AWQModel('./deepseek-v4-awq'); print(len(m.model.model.layers[0].mlp.experts))"
2、检查 `awq_model.bin` 中关键 tensor 是否存在且尺寸匹配:
python -c "import torch; s = torch.load('./deepseek-v4-awq/awq_model.bin', map_location='cpu'); print('w1_qweight' in s, s['model.layers.0.mlp.experts.0.w1_qweight'].shape)"
3、运行轻量级前向测试(仅单 token 输入):
python -c "from transformers import AutoTokenizer; from awq import AWQModel; t = AutoTokenizer.from_pretrained('./deepseek-v4-awq'); m = AWQModel('./deepseek-v4-awq'); i = t.encode('Hello', return_tensors='pt'); print(m.model(input_ids=i).logits.shape)"
4、若输出形如 `torch.Size([1, 1, 128256])` 且无 RuntimeError,则权重加载成功。
五、部署 AWQ 模型至推理引擎
AWQ 格式不被所有推理后端原生支持,必须选用明确声明兼容 DeepSeek V4 MoE + AWQ 的运行时。vLLM 当前(v0.6.3)尚未支持 AWQ 的 expert-aware dispatch,强行加载将导致路由失效;而 awq-engine 自带的 `AWQRunner` 可保证专家层调用路径与原始 HF 实现一致。
1、安装 awq-engine 运行时依赖:
pip install awq-engine==0.1.4
2、启动本地推理服务(绑定 8080 端口,启用 4-bit KV cache):
awq-runner --model-path ./deepseek-v4-awq --port 8080 --max-total-tokens 4096 --enable-kv-cache --kv-cache-dtype int4
3、发送测试请求验证响应有效性:
curl -X POST http://localhost:8080/generate -H "Content-Type: application/json" -d '{"prompt":"Explain quantum entanglement in simple terms.","max_new_tokens":128}'
4、观察返回 JSON 中是否包含 `"text"` 字段且内容逻辑连贯,同时终端日志显示 `AWQ expert dispatch: activated 8/64 experts` 表明 MoE 路由正常。


















