本文档详细介绍了 DeepSeek-V3 中可用的各种配置选项,重点关注如何针对不同用例自定义和优化模型。配置文件控制模型架构、推理行为和性能特征。有关不同可用模型大小的信息,请参阅模型大小。
DeepSeek-V3 模型通过指定模型架构和行为的 JSON 配置文件进行配置。下面显示了 671B 参数模型的主要配置文件。
来源:inference/configs/config_671B.json1-22
| 参数 | 描述 |
|---|---|
vocab_size | 词汇表中的 token 数量 (129,280 个 token) |
dim | 模型的隐藏层维度大小 (7,168) |
inter_dim | 前馈网络中间维度大小 (18,432) |
moe_inter_dim | 每个 MoE expert 的中间维度大小 (2,048) |
n_layers | Transformer 层总数 (61) |
n_dense_layers | 不包含 MoE 的密集层数量 (3) |
n_heads | 注意力头数量 (128) |
n_routed_experts | MoE 层中总路由 expert 数量 (256) |
n_shared_experts | 每个 MoE 层中的共享 expert 数量 (1) |
n_activated_experts | 每个 token 激活的 expert 数量 (MoE) (8) |
n_expert_groups | 并行路由的 expert 组数量 (8) |
n_limited_groups | 限制的 expert 组数量 (4) |
route_scale | 路由决策的缩放因子 (2.5) |
score_func | expert 路由的评分函数 ("sigmoid") |
q_lora_rank | query 投影的 LoRA rank (1,536) |
kv_lora_rank | key-value 投影的 LoRA rank (512) |
qk_nope_head_dim | 不带旋转位置编码的 query/key 的头维度 (128) |
qk_rope_head_dim | 带旋转位置编码的 query/key 的头维度 (64) |
v_head_dim | value 投影的头维度 (128) |
dtype | 权重存储和计算的数据类型 ("fp8") |
来源:inference/configs/config_671B.json1-22
下图说明了配置参数如何影响 DeepSeek-V3 架构的不同组件。
来源:inference/configs/config_671B.json1-22
DeepSeek-V3 采用复杂的混合专家 (MoE) 配置,在大型参数空间中实现计算效率。MoE 相关参数控制 token 如何通过 expert 网络进行路由。
MoE 配置允许 token 动态访问不同的专业 expert,通过仅为每个 token 激活一部分参数来提高模型效率。
来源:inference/configs/config_671B.json5-15
DeepSeek-V3 中的注意力机制使用参数组合来定义多头潜在注意力 (MLA) 行为。
MLA 配置决定了注意力是如何计算的,其中包含旋转位置编码 (RoPE) 以及 query、key 和 value 的维度的专用参数。
来源:inference/configs/config_671B.json8-20
dtype 参数指定了用于模型权重和计算的数值精度。DeepSeek-V3 支持 FP8 精度,以最大化内存效率和推理速度。
| 数据类型 | 描述 | 用例 |
|---|---|---|
"fp8" | 8 位浮点格式 | 默认值,可实现最佳内存使用和速度 |
"bf16" | Brain Float 16 位格式 | 不兼容 FP8 平台的替代选项 |
当模型权重以 FP8 格式存储时,可以将其转换为 BF16,以用于不支持 FP8 计算的平台。此转换由推理管道中的 fp8_cast_bf16.py 实用程序处理。
来源:inference/configs/config_671B.json21
配置文件位于 inference/configs/ 目录中,每个模型大小都有单独的文件。
config_16B.json - 16B 参数模型的配置config_236B.json - 236B 参数模型的配置config_671B.json - 671B 参数模型的配置要使用特定配置,可以在初始化模型时加载相应的 JSON 文件。配置参数控制模型架构和推理行为。
配置参数直接影响模型的构建方式,影响内存使用、计算需求和推理速度。不同的配置可用于在性能和资源限制之间取得平衡,以适应各种部署场景。
来源:inference/configs/config_671B.json1-22
尽管默认配置已针对特定模型大小进行了优化,但您可能需要根据硬件限制和用例调整某些参数。
| 场景 | 建议的配置更改 |
|---|---|
| GPU 内存有限 | 减少 n_activated_experts 或使用更小的模型 |
| 提高吞吐量 | 调整批大小和精度(如果支持,请使用 FP8) |
| 提高精度 | 使用 BF16 精度而不是 FP8 |
| 仅 CPU 部署 | 考虑使用 BF16 精度的 16B 模型 |
请注意,修改核心架构参数(例如 dim、n_heads 等)需要重新训练模型,而像 dtype 这样的推理参数可以在不重新训练的情况下进行修改。
有关在各种框架(vLLM、TensorRT-LLM、LMDeploy 等)上进行特定于部署的配置,请参阅这些框架的文档以了解其他配置选项。