本文档详细介绍了DeepSeek-V3权重文件的结构和组织。内容涵盖模型权重的组成部分、它们的排列方式以及专门的FP8权重格式。有关量化技术的信息,请参阅量化。
config.json文件包含几个定义权重结构字段
model_type: 在此版本中设置为deepseek_v3num_hidden_layers: 定义主模型中Transformer层的数量(61)num_nextn_predict_layers: 指示多令牌预测(MTP)模块的数量(1)quantization_config: 包含FP8量化设置DeepSeek-V3权重文件包含两个主要组件
图示:DeepSeek-V3权重文件结构和组件
主模型包含DeepSeek-V3的核心参数
| 组件 | 详情 | 参数数量 |
|---|---|---|
| 总参数 | 完整模型参数数量 | 671B |
| 激活参数 | 推理期间使用的参数 | 36.7B |
| 嵌入层参数 | 词汇嵌入参数 | 0.9B |
| 输出头参数 | 最后一层参数 | 0.9B |
关键结构组件
model.embed_tokens.weightmodel.layers.0 到 model.layers.60(共61层)model.norm.weight(归一化)lm_head.weight(语言模型头)MTP模块支持投机性解码,以提高推理速度
| 组件 | 详情 | 参数数量 |
|---|---|---|
| 独特参数 | MTP特有的参数 | 11.5B |
| 激活参数 | 推理期间使用的参数 | 2.4B |
关键结构组件
enorm和hnorm用于投机性解码eh_proj用于降维model.layers.61.self_attn和model.layers.61.mlp图示:权重加载和执行过程
加载过程遵循以下规则
num_hidden_layers参数(61层)加载num_nextn_predict_layers参数(1层)加载DeepSeek-V3原生支持FP8权重格式,采用128×128块缩放,以实现高效的存储和计算。
config.json文件中的quantization_config字段定义了量化参数
关键配置要素
fp8,使用e4m3格式(对应torch.float8_e4m3fn)图示:FP8权重反量化过程
FP8权重文件包含
weight_scale_inv字段以float32张量形式存储在运行时,系统以每个token每128个通道的粒度执行在线量化,以获得最佳性能。
加载时,权重结构遵循与Transformer架构一致的层次化组织
图示:内存中的权重组织