昇腾社区首页
EN
注册

使用样例

限制与约束

  • Atlas 800I A2 推理服务器Atlas 300I Duo 推理卡硬件支持此特性。
  • LLaMA3系列、Qwen2系列、Qwen3-14B和Qwen3-32B模型支持对接此特性。
  • 并行解码支持的量化特性:W8A8量化与稀疏量化,其他量化特性暂不支持。
  • 该特性不能和PD分离、Multi-LoRA、SplitFuse、Function Call、长序列、MTP、异步双发以及多机推理特性同时使用。
  • 并行解码场景暂不支持流式推理。
  • 并行解码惩罚类后处理仅支持重复惩罚。
  • 该特性暂不支持n、best_of、use_beam_search、logprobs等与多序列推理相关的后处理参数。
  • lookahead和memory_decoding算法不可同时使能。

开启并行解码特性,需要配置的参数如表1~表5所示:

表1 memory_decoding补充参数1:ModelDeployConfig中的ModelConfig参数

配置项

取值类型

取值范围

配置说明

plugin_params

std::string

plugin_type:memory_decoding

decoding_length:[1, 16]

dynamic_algo:true或false

  • plugin_type配置memory_decoding时,表示当前选择memory_decoding并行解码。
  • decoding_length为memory_decoding算法中的参数,表示候选token的最大长度,默认值16。
  • dynamic_algo为可选参数,配置为true时表示开启动态自适应候选长度功能,默认值False。
  • 配置示例:

    {\"plugin_type\":\"memory_decoding\",\"decoding_length\": 16,\"dynamic_algo\": true}

    {\"plugin_type\":\"memory_decoding\",\"decoding_length\": 16}

表2 memory_decoding补充参数2:ModelDeployConfig的参数

配置项

取值类型

取值范围

配置说明

speculationGamma

uint32_t

与plugin参数配置有关

memory_decoding时,该值配置应大于等于decoding_length。

建议值:等于decoding_length。

表3 memory_decoding补充参数3:ScheduleConfig的参数

配置项

取值类型

取值范围

配置说明

maxIterTimes

uint32_t

与plugin参数配置有关

如果dynamic_algo为true,该值需大于等于期望输出的长度+speculationGamma的值。

例:期望最大输出长度为512,则该值需要配置>=512+speculationGamma。

表4 lookahead补充参数1:ModelDeployConfig中的ModelConfig参数

配置项

取值类型

取值范围

配置说明

plugin_params

std::string

plugin_type:la

level:[3, 16]

window:[1, 16]

guess_set_size:[1, 16]

plugin_type配置la,表示当前选择lookahead并行解码。

level/window/guess_set_size为lookahead算法中的N/W/G参数,默认值为4/5/5,且每个参数可配置的上限不超过16。

配置示例:

"{\"plugin_type\":\"la\",\"level\": 4,\"window\": 5,\"guess_set_size\": 5}"

表5 lookahead补充参数2:ModelDeployConfig的参数

配置项

取值类型

取值范围

配置说明

speculationGamma

uint32_t

与plugin参数配置有关

lookahead中,配置值应大于等于(N-1)*(W+G)

建议值:等于(N-1)*(W+G)。

操作步骤

  1. 配置服务化参数。该特性需配合MindIE Motor使用,按照表1~表5{MindIE安装目录}/latest/mindie-service/conf/config.json配置文件中添加对应参数,样例如下所示。
    • memory_decoding算法的并行解码配置样例:
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      "ModelDeployConfig" :
      {
          "maxSeqLen" : 2560,
          "maxInputTokenLen" : 2048,
          "truncation" : false,
          "speculationGamma": 16,
          "ModelConfig" : [
              {
                  "plugin_params": "{\"plugin_type\":\"memory_decoding\",\"decoding_length\":16,\"dynamic_algo\":true}",
                  "modelInstanceType" : "Standard",
                  "modelName" : "Codellama-34B",
                  "modelWeightPath" : "/data/weights/Codellama-34B",
                  "worldSize" : 4,
                  "cpuMemSize" : 5,
                  "npuMemSize" : -1,
                  "backendType" : "atb",
                  "trustRemoteCode" : false
              }
          ]
      }
      
    • lookahead算法的并行解码配置样例:
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      "ModelDeployConfig" :
      {
          "maxSeqLen" : 2560,
          "maxInputTokenLen" : 2048,
          "truncation" : false,
          "speculationGamma": 30,
          "ModelConfig" : [
              {
                  "plugin_params":"{\"plugin_type\":\"la\",\"level\":4,\"window\":5,\"guess_set_size\":5}",
                  "modelInstanceType" : "Standard",
                  "modelName" : "Qwen2.5-7B-Instruct",
                  "modelWeightPath" : "/data/weights/Qwen2.5-7B-Instruct",
                  "worldSize" : 1,
                  "cpuMemSize" : 5,
                  "npuMemSize" : -1,
                  "backendType" : "atb",
                  "trustRemoteCode" : false
              }
          ]
      }
      
  2. 启动服务,具体请参考启动服务