配置参数说明
MindIE LLM适用的配置文件config.json格式如下:
{
"Version": "1.0.0",
"LogConfig" :
{
"logLevel" : "Info",
"logFileSize" : 20,
"logFileNum" : 20,
"logPath" : "logs/mindservice.log"
},
"BackendConfig": {
"backendName" : "mindieservice_llm_engine",
"modelInstanceNumber" : 1,
"npuDeviceIds" : [[0,1,2,3]],
"tokenizerProcessNumber" : 8,
"multiNodesInferEnabled": false,
"multiNodesInferPort": 1120,
"interNodeTLSEnabled": true,
"interNodeTlsCaFile": "security/grpc/ca/ca.pem",
"interNodeTlsCert": "security/grpc/certs/server.pem",
"interNodeTlsPk": "security/grpc/keys/server.key.pem",
"interNodeTlsPkPwd": "security/grpc/pass/mindie_server_key_pwd.txt",
"interNodeKmcKsfMaster": "tools/pmt/master/ksfa",
"interNodeTlsCrl" : "security/grpc/certs/server_crl.pem",
"interNodeKmcKsfStandby": "tools/pmt/standby/ksfb",
"ModelDeployConfig":
{
"maxSeqLen" : 2560,
"maxInputTokenLen" : 2048,
"truncation" : false,
"ModelConfig" : [
{
"modelInstanceType": "Standard",
"modelName" : "llama_65b",
"modelWeightPath" : "/data/atb_testdata/weights/llama1-65b-safetensors",
"worldSize" : 4,
"cpuMemSize" : 5,
"npuMemSize" : -1,
"backendType": "atb"
}
]
},
"ScheduleConfig":
{
"templateType": "Standard",
"templateName" : "Standard_LLM",
"cacheBlockSize" : 128,
"maxPrefillBatchSize" : 50,
"maxPrefillTokens" : 8192,
"prefillTimeMsPerReq" : 150,
"prefillPolicyType" : 0,
"decodeTimeMsPerReq" : 50,
"decodePolicyType" : 0,
"maxBatchSize" : 200,
"maxIterTimes" : 512,
"maxPreemptCount" : 0,
"supportSelectBatch" : false,
"maxQueueDelayMicroseconds" : 5000
}
}
}
配置文件参数说明
配置项 |
取值类型 |
取值范围 |
配置说明 |
|---|---|---|---|
Version |
std::string |
"1.0.0" |
标注配置文件版本,当前版本指定为1.0.0,不支持修改。 |
LogConfig |
map |
- |
日志相关配置。详情请参见LogConfig参数。 |
BackendConfig |
map |
- |
模型后端相关配置,包含调度、模型相关配置。详情请参见BackendConfig参数。 |
LogConfig参数
配置项 |
取值类型 |
取值范围 |
配置说明 |
|---|---|---|---|
logLevel |
std::string |
|
必填,默认值:"Info"。 |
logPath |
std::string |
日志文件路径,长度<=4096。 日志路径设置限制与操作系统有关,且会受到spdlog三方库约束。因此建议配置的最大长度为1024,且符合目录规范。 |
支持绝对和相对路径。如果配置为相对路径,则代码中会取安装目录,最后拼接而成。 例如,假设MindIE Service的安装路径为“/opt/Ascend-mindie-service_{version}_linux-x86_64/”,当logPath="logs/mindservice.log",则其实际日志生成路径为:“/opt/Ascend-mindie-service_{version}_linux-x86_64/logs/mindservice.log”。 若配置路径不满足要求,则使用默认路径。 必填,默认值:"logs/mindservice.log"。 |
logFileSize |
uint32_t |
日志单个文件大小 范围为:0-500。 |
日志文件大小,单位MB。 |
logFileNum |
uint32_t |
日志文件数量 范围为:0-64。 |
日志文件数量。 |
BackendConfig参数
配置项 |
取值类型 |
取值范围 |
配置说明 |
|---|---|---|---|
backendName |
std::string |
长度1~50,只支持小写字母和下划线。且不以下划线作为开头和结尾。 |
后端名称。 必填,默认值:"mindieservice_llm_engine"。 |
modelInstanceNumber |
uint32_t |
[1, 10] |
模型实例个数。 必填,默认值:1。 |
npuDeviceIds |
std::vector<std::set<size_t>> |
根据模型和环境的实际情况来决定。 |
表示启用哪几张卡。对于每个模型实例分配的npuIds,使用芯片逻辑ID表示。
必填,默认值:[[0,1,2,3]]。 |
tokenizerProcessNumber |
uint32_t |
[1, 32] |
tokenizer进程数。 必填,默认值:8。 |
multiNodesInferEnabled |
bool |
|
选填,默认值:false。 |
multiNodesInferPort |
int32_t |
[1024, 65535] |
跨机通信的端口号,多机推理场景使用。 选填,默认值:1120。 |
interNodeTLSEnabled |
bool |
|
多机推理时,跨机通信是否开启证书安全认证。
选填,默认值:true。取值为false时,忽略后续参数。 |
interNodeTlsCaFile |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interNodeTlsCaFile,上限限制与操作系统有关,最小值为1。 |
根证书名称路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/grpc/ca/ca.pem"。 |
interNodeTlsCert |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interNodeTlsCert,上限限制与操作系统有关,最小值为1。 |
服务证书文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/grpc/certs/server.pem"。 |
interNodeTlsPk |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interNodeTlsPk,上限限制与操作系统有关,最小值为1。 |
服务证书私钥文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/grpc/keys/server.key.pem"。 |
interNodeTlsPkPwd |
std::string |
建议文件路径长度<=4096。支持为空;若非空,则实际路径为工程路径+interNodeTlsPkPwd,上限限制与操作系统有关,最小值为1。 |
服务证书私钥加密密钥文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/grpc/pass/mindie_server_key_pwd.txt"。 |
interNodeTlsCrl |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interCommTlsCrl,上限与操作系统有关,最小值为1。 |
集群内部实例间的通信如果启用TLS,则使用这里指定的文件作为证书吊销列表。选填,默认值:"security/grpc/certs/server_crl.pem"。 |
interNodeKmcKsfMaster |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interNodeKmcKsfMaster,上限限制与操作系统有关,最小值为1。 |
KMC密钥库文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"tools/pmt/master/ksfa"。 |
interNodeKmcKsfStandby |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interNodeKmcKsfStandby,上限限制与操作系统有关,最小值为1。 |
KMC密钥库备份文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"tools/pmt/standby/ksfb"。 |
ModelDeployConfig |
map |
- |
模型部署相关配置。详情请参见ModelDeployConfig参数。 |
ScheduleConfig |
map |
- |
调度相关配置。详情请参见ScheduleConfig参数。 |
ModelDeployConfig参数
配置项 |
取值类型 |
取值范围 |
配置说明 |
|---|---|---|---|
maxSeqLen |
uint32_t |
上限根据显存和用户需求来决定,最小值需大于0。 |
最大序列长度。用户根据自己的推理场景选择maxSeqLen。 如果maxSeqLen大于模型支持的最大序列长度,可能会影响推理精度。 必填,默认值:2560。 |
maxInputTokenLen |
uint32_t |
(0, 4294967295] |
输入token id最大长度。 必填,默认值:2048。 maxInputTokenLen = min(maxInputTokenLen, maxSeqLen -1) |
truncation |
bool |
|
是否进行参数合理化校验拦截。
选填,默认值:false。 |
ModelConfig |
map |
- |
模型相关配置,包括后处理参数。详情请参见ModelConfig参数。 |