MTP(Multi-Token Prediction,多Token预测)是DeepSeek中提出的一种用于单次生成多个token的并行解码方法。 MTP并行解码的核心思想是在推理过程中,模型不仅预测下一个token,而且会同时预测多个token,从而显著提升模型生成速度。
限制与约束
- Atlas 800I A2 推理服务器支持此特性。
- 当前仅DeepSeek-R1和DeepSeek-V3的W8A8量化模型支持此特性。
- 该特性不能和并行解码、Multi-LoRA、SplitFuse、Function Call、长序列特性同时使用。
- MTP惩罚类后处理仅支持重复惩罚。
表1 MTP补充参数:ModelDeployConfig中的ModelConfig参数配置项
|
取值类型
|
取值范围
|
配置说明
|
plugin_params
|
std::string
|
plugin_type: mtp
num_speculative_tokens: [1]
|
- plugin_type设置为“mtp”,表示选择mtp特性。
- num_speculative_tokens表示MTP的层数,只能设置为“1”。
配置示例:
{\"plugin_type\":\"mtp\",\"num_speculative_tokens\": 1}
|
使用样例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | "ModelDeployConfig" :
{
"maxSeqLen" : 2560,
"maxInputTokenLen" : 2048,
"truncation" : false,
"ModelConfig" : [
{
"plugin_params": "{\"plugin_type\":\"mtp\",\"num_speculative_tokens\": 1}",
"modelInstanceType" : "Standard",
"modelName" : "DeepSeek-R1_w8a8",
"modelWeightPath" : "/data/weights/DeepSeek-R1_w8a8",
"worldSize" : 8,
"cpuMemSize" : 5,
"npuMemSize" : -1,
"backendType" : "atb",
"trustRemoteCode" : false
}
]
},
|
执行推理
- 配置服务化参数。该特性需配合MindIE Service使用,按照表1在服务化的config.json文件中添加相应参数。config.json文件路径的详细说明请参考《MindIE安装指南》中的“配置MindIE > 配置MindIE Server > 多机推理”章节中的软件包文件清单。
- 启动服务。具体请参考《MindIE Service开发指南》中的“快速开始 > 启动服务”章节。