配置参数说明
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参数。  |