使用样例

限制与约束

开启并行解码特性,需要配置的参数如表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 Service使用,按照表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. 启动服务,具体请参考启动服务