文档
注册

LLMEngineInitialize

函数功能

初始化LLM Engine的资源,包括如下。

  • GE资源初始化
  • LLM模型分布式部署至指定全量/增量集群。
  • LLM使用的队列、事件、UDF初始化。
  • TP/PP通信group建链; 全量增量之间KV传输通信域建链。

函数原型

ge::Status LLMEngineInitialize(const std::vector<ge::ModelBufferData> &model_buffer_datas, const std::map<ge::AscendString, ge::AscendString> &options);

参数说明

参数名

输入/输出

描述

model_buffer_datas

输入

可选参数。当模型以ModelBufferData为结构时需要设置该参数。

options

输入

初始化参数值。具体请参考表1

表1 options

参数名

可选/必选

描述

LLM_OPTION_RUN_MODE

可选

模型执行模式。取值如下:

  • SeparateSchedule :分离部署模式,该模式适合多Device场景,根据传入的图是全量图还是增量图来执行对应的部署和调度逻辑。
  • PrioritySchedule:合设部署模式,该模式适合单Device场景,混合调度单实例内的全量图和增量图。

不设置该参数时表示分离部署模式。

LLM_OPTION_ROLE

必选

集群的类型。取值如下:

  • Prompt:全量
  • Decoder:增量

LLM_OPTION_OM_CACHE_PATH

可选

om文件的绝对路径。多个之间使用分号";"分隔。

  • 分离部署模式(即LLM_OPTION_RUN_MODE=SeparateSchedule )下,该参数必选,配置为om文件路径。

    例如:/**/dyn_inc_first1.om;/**/dyn_inc_first2.om

  • 合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下,该参数可选,与“LLM_OPTION_GRAPH_PATH”二选一,使用该参数表示使用om加载图。配置为om的二进制文件路径,需要配置prompt和decoder两个om的路径。

    例如:"/prompt.om;/decoder.om"

LLM_OPTION_GRAPH_PATH

可选

合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下使用,该参数可选,与“LLM_OPTION_OM_CACHE_PATH”二选一,使用该参数表示使用直接传入graph。配置为graph文件的绝对路径。多个之间使用分号";"分隔。

例如:"/first_graph;/second_graph"

LLM_OPTION_INPUT_NODE_DEPLOYMENT

可选

合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下使用,前端切分场景下使用,前端编译模型已经切分时,通过该参数传入从前端om文件加载的每个切分图使用的device id,使用“;”分隔。

例如:“0;1;2;3”

LLM_OPTION_CLUSTER_INFO

必选

集群部署信息。示例如下。

{
  "cluster_id": 0,      // 表示当前llm_engine的cluster_id,预留参数,暂时没用到
  "logic_device_id": [  // 表示当前llm_engine需要部署的逻辑device id
    "0:0:0:0",
    "0:0:1:0"
  ],
  "listen_ip_info": [    // 只在server侧(全量llm engine)需要配置
    {
      "ip": 1865362717,  // server侧用到的device ip(小端地址)
      "port": 2509       // 
    },
    {
      "ip": 444083485,
      "port": 2509
    }
  ]
}

LLM_OPTION_MODEL_INPUTS_SHAPES

必选

模型Data输入的Shape。例如:"4,1;4,1"。

在合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下,需要同时输入prompt和decoder的data shape,使用“|”分隔,“|”前部分为prompt的shape,后部分为decoder的shape。例如:"1,1;1,1,1,2560;2,1,1 | 16,1;16,1,1,2560;2,16,1"

LLM_OPTION_MODEL_INPUTS_DTYPES

必选

模型Data输入的Dtype。例如:"3;3"。

在合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下,需要同时输入prompt和decoder的data dtype,使用“|”分隔,“|”前部分为prompt的type,后部分为decoder的type。例如:"9;1;9 | 9;1;9"。

LLM_OPTION_MODEL_KV_CACHE_SHAPES

必选

KV的Shape。

合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下,表示prompt和decoder公用KV的Shape。

LLM_OPTION_MODEL_KV_CACHE_DTYPES

必选

KV的Dtype。

合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下,表示prompt和decoder公用KV的DShape。

LLM_OPTION_MODEL_OUTPUT_NUM

必选

模型的输出个数。

LLM_OPTION_INPUTS_BATCH_DIM_INDEX

可选

当模型输入中存在batch size的维度不在第0维的时候设置。默认值是所有输入的batch size维度都在第0维。

"0;1;-1;0" 分号隔开,个数和模型输入个数匹配,-1表示输入不做batch,其他的数字表示batch在哪个dim上

LLM_OPTION_SYNC_KV_CACHE_WAIT_TIME

可选

用于增量LLM Engine。

表示增量拉取kv cache的等待时间,单位ms。默认值1000ms。

LLM_OPTION_NN_EXECUTE_WAIT_TIME

可选

用于增量llm engine和全量llm engine。

表示模型执行的超时时间,单位ms。默认值1000ms。

LLM_OPTION_PROCESS_REQUEST_WAIT_TIME

可选

用于增量LLM Engine。

表示请求等待被处理的超时时间,防止请求长时间组不进batch,单位ms。默认值3000ms。

LLM_OPTION_PROMPT_AND_DOCODER_INTERLEAVED_STEP

可选

只有合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下,可以使用该参数。

Prompt与decoder间隔调度次数,格式为m:n。

例如:"1,16"

默认值:"1,16"

LLM_OPTION_INPUTS_BATCH_PADDING

可选

合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下,该参数必选。

Decoder连续batch padding的值。

position_ids输入的位置需要提供一个大于等于prompt的padding后长度的值,其他位置需要填0。

例如:"0;0;2048"

LLM_OPTION_GRAPH_COMPILER_CACHE_DIR

可选

只有合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下,可以使用该参数。

图编译磁盘缓存目录,和LLM_OPTION_GRAPH_KEYS配合使用,LLM_OPTION_GRAPH_COMPILER_CACHE_DIR和LLM_OPTION_GRAPH_KEYS同时配置非空时图编译磁盘缓存功能生效。

LLM_OPTION_GRAPH_KEYS

可选

只有合设部署模式(即LLM_OPTION_RUN_MODE=PrioritySchedule)下,可以使用该参数。

图唯一标识,可以有多个,个数需要和传入的图的个数一致。

和LLM_OPTION_GRAPH_COMPILER_CACHE_DIR配合使用,LLM_OPTION_GRAPH_COMPILER_CACHE_DIR和LLM_OPTION_GRAPH_KEYS同时配置非空时图编译磁盘缓存功能生效。

LLM_OPTION_BATCH_MODE

可选

当LLM_OPTION_ROLE为Decoder时生效,标识该Decoder组batch的策略,取值如下:

  • auto: 自动组batch。在该模式下,用户只需传入单个batch的输入,由LLM Engine框架负责处理KV的同步以及将输入组传入更大的batch中,以充分利用算力。
  • manual: 手动组batch。在该模式下,用户需要负责处理KV的同步以及多batch输入的拼装。

不设置该option时默认为"auto"模式。

LLM_OPTION_POSTPROCESS_MODEL_OM_CACHE_PATH

可选

后处理模型的om/graph文件的绝对路径。多个之间使用分号";"分隔。

分离部署模式下(即LLM_OPTION_RUN_MODE=SeparateSchedule )LLM_OPTION_ROLE为Decoder时生效。

例如:/**/dyn_inc_first1.om;/**/dyn_inc_first2.om

LLM_OPTION_POSTPROCESS_MODEL_INPUTS_SHAPES

可选

后处理模型Data输入的Shape

例如:"16,1;16,1,1,2560;2,16,1"

使能后处理模型时需要设置。

LLM_OPTION_POSTPROCESS_MODEL_INPUTS_DTYPES

可选

后处理模型Data输入的Dtype。

例如:"9;1;9"

使能后处理模型时需要设置。

LLM_OPTION_POSTPROCESS_OUTPUT_NUM

可选

后处理模型的输出个数。

使能后处理模型时需要设置。

例如:"2"

LLM_OPTION_OUTPUT_MAPPING

可选

使能后处理模型时,可通过该参数选择需要的输出,用于过滤掉不需要的输出,以提升性能。

格式为:${model_type}:${output_index},分号分割。

model_type取值当前只支持"postprocess"。

例:"postprocess:1;postprocess:2"表示返回后处理模型的output[1]与output[2]

该option不设置时,返回后处理模型的所有输出

LLM_OPTION_KV_CACHE_COUNTS

可选

加载pipeline切分的模型需要设置,表示各stage中使用的kv的个数,分号分割。如: "30;50"表示有2个pipeline stage, 分别使用30, 50个kv

LLM_OPTION_PIPELINE_INPUT_INDICES

可选

各个stage的模型所需要的用户输入(LLM_OPTION_MODEL_INPUTS_SHAPES对应的)的索引,如:"0,1,2,3,4,5,6;6"表示,第一个stage用输入0,1,2,3,4,5,6, 第二个stage用输入6。不设置的时候表示第一个stage使用所有的用户输入,后续stage不使用。

LLM_OPTION_HCOM_CLUSTER_CONFIG

可选

模型使用到的hcom group的描述信息,格式为json string。如:

{
"comm_group": [
{
"group_name": "prompt_group",
"group_rank_list": "[0, 1]"
},
{
"group_name": "prompt_group_1",
"group_rank_list": "[2, 3]"
}
]
}

LLM_OPTION_PIPELINE_EXECUTION

可选

是否使能交错式执行。取值如下:

  • enable:是,使能交错式执行可以减少多次模型执行之间的气泡,提高设备利用率,但是会占用与pipeline切分个数相同倍数的空间存放kv cache。
  • disable:否。

不设置时默认为"enable"。

LLM_OPTION_ENABLE_PAGED_ATTENTION

可选

是否开启PatedAttention优化,取值如下。

  • 1:是
  • 0:否

默认值为0。

LLM_OPTION_PAGED_ATTENTION_BLOCK_SIZE

可选

每个block包含多少个token的k | v tensor,默认值为16。

PatedAttention优化模式(即LLM_OPTION_ENABLE_PAGED_ATTENTION=1 )场景下使用。

LLM_OPTION_PAGED_ATTENTION_BLOCKS_NUM

可选

block的总数量。

PatedAttention优化模式(即LLM_OPTION_ENABLE_PAGED_ATTENTION=1 )场景下必选。

LLM_OPTION_PAGED_ATTENTION_MAX_SEQ_LEN

可选

equence的最大长度,包含prompt部分和generated部分。

PatedAttention优化模式(即LLM_OPTION_ENABLE_PAGED_ATTENTION=1 )场景下必选。

LLM_OPTION_PAGED_ATTENTION_MAX_SEQS_NUM

可选

每个迭代最多处理多少数量的sequences。

对于动态shape模型,PatedAttention优化模式(即LLM_OPTION_ENABLE_PAGED_ATTENTION=1 )场景下必选。

LLM_OPTION_PAGED_ATTENTION_MAX_PROMPT_LEN

可选

Prompt提示词的最大长度。

PatedAttention优化模式(即LLM_OPTION_ENABLE_PAGED_ATTENTION=1 )场景下必选。

返回值

返回初始化好的LLM Engine。

异常处理

无。

约束说明

需要和LLMEngineFinalize配对使用并且在一个进程中不支持多次被调用,初始化成功后,任何退出前需要调用LLMEngineFinalize保证资源释放,否则会出现资源释放顺序不符合预期,导致问题。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词