配置参数说明
配置文件参数说明
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
Version |
std::string |
"1.0.0" |
标注配置文件版本,当前版本指定为1.0.0,不支持修改。 |
LogConfig |
map |
- |
日志相关配置。详情请参见LogConfig参数说明。 |
ServerConfig |
map |
- |
服务端相关配置,例如ip:port、网络请求、网络安全等。详情请参见ServerConfig参数说明。 |
BackendConfig |
map |
- |
模型后端相关配置,包含调度、模型相关配置。详情请参见BackendConfig参数说明。 |
LogConfig参数说明
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
logLevel |
std::string |
|
必填,默认值:"Info"。 此配置支持热更新。 |
logFileSize |
uint32_t |
[0, 500] |
日志最大文件大小,单位MB。 选填,默认值:20。 |
logFileNum |
uint32_t |
[0, 64] |
历史日志文件最多保存数量。 选填,默认值:20。 |
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"。 |
ServerConfig参数说明
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
ipAddress |
std::string |
IPv4地址。 |
EndPoint提供的业务面RESTful接口绑定的IP地址。
必填,默认值:"127.0.0.1"。
说明:
全零侦听会导致三面隔离失效,不满足安全配置要求,故默认禁止绑定IP地址为0.0.0.0。若仍需绑定IP地址为0.0.0.0,那么在保证安全前提下,需要将配置文件中的“allowAllZeroIpListening”设置为true。 |
managementIpAddress |
std::string |
IPv4地址。 |
EndPoint提供的管理面RESTful接口绑定的IP地址。
选填,默认值:"127.0.0.2"。
说明:
全零侦听会导致三面隔离失效,不满足安全配置要求,故默认禁止绑定IP地址为0.0.0.0。若仍需绑定IP地址为0.0.0.0,那么在保证安全前提下,需要将配置文件中的“allowAllZeroIpListening”设置为true。 |
port |
int32_t |
[1024, 65535] |
EndPoint提供的业务面RESTful接口绑定的端口号。 如果采用物理机/宿主机IP地址通信,请自行保证端口号无冲突。 必填,默认值:1025。 |
managementPort |
int32_t |
[1024, 65535] |
EndPoint提供的管理面(管理面接口请参见表1)接口绑定的端口号。
业务面与管理面可采用四种方案:
选填,默认值:1026。 |
metricsPort |
int32_t |
[1024, 65535] |
EndPoint提供的性能指标监控接口绑定的端口号。 如果采用物理机/宿主机IP地址通信,请自行保证端口号无冲突。 必填,默认值:1027。 |
allowAllZeroIpListening |
bool |
|
是否支持全零侦听IP配置。
必填,默认值:false,建议值:false。取值为true时,会存在全零侦听风险,用户环境需要自行保证具备全零侦听的防护能力。 |
maxLinkNum |
uint32_t |
[1, 1000] |
RESTful接口请求并发处理数,EndPoint支持的最大并发请求处理数。 表示有maxLinkNum个请求正在并发处理,此外有2*maxLinkNum个请求在队列中等待。因此第3*maxLinkNum+1个请求会被拒绝。 必填,默认值:1000。 |
httpsEnabled |
bool |
|
是否开启HTTPS通信安全认证。
必填,默认值:true,建议值:true,取值为false时,忽略后续HTTPS通信相关参数。 |
fullTextEnabled |
bool |
|
是否开启流式接口全量返回历史结果。
选填,默认值:false。 |
tlsCaPath |
std::string |
文件绝对路径长度<=4096。实际路径为工程路径+tlsCaPath,上限与操作系统有关,最小值为1。 |
根证书路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"security/ca/"。 |
tlsCaFile |
std::set<std::string> |
文件绝对路径长度<=4096。不可为空,并且tlsCaPath+tlsCaFile路径长度上限与操作系统有关,最小值为1。 |
业务面根证书名称列表。 “httpsEnabled”=true生效,生效后必填,默认值:["ca.pem"]。 |
tlsCert |
std::string |
文件绝对路径长度<=4096。实际路径为工程路径+tlsCert,上限限制与操作系统有关,最小值为1。 |
业务面服务证书文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"security/certs/server.pem"。 |
tlsPk |
std::string |
文件绝对路径长度<=4096。实际路径为工程路径+tlsPk,上限与操作系统有关,最小值为1。 |
业务面服务证书私钥文件路径,只支持软件包安装路径下的相对路径,证书私钥的长度要求>=3072。 “httpsEnabled”=true生效,生效后必填,默认值:"security/keys/server.key.pem"。 |
tlsPkPwd |
std::string |
文件绝对路径长度<=4096。支持为空;若非空,则实际路径为工程路径+tlsPkPwd,上限与操作系统有关,最小值为1。 |
业务面服务证书私钥加密密钥文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后选填,默认值:"security/pass/key_pwd.txt"。 若私钥经过加密但是未提供此文件,系统启动时会要求用户在交互窗口输入私钥加密口令。 |
tlsCrl |
std::string |
文件绝对路径长度<=4096。支持为空;若非空,则实际路径为工程路径+tlsCrl,上限与操作系统有关,最小值为1。 |
业务面服务证书吊销列表文件路径,只支持软件包安装路径下的相对路径。
“tlsCrl”的值只能配套“tlsCaFile”文件列表中的第一个CA文件。 |
managementTlsCaFile |
std::set<std::string> |
建议tlsCaPath+managementTlsCaFile路径长度<=4096。不可为空,并且tlsCaPath+managementTlsCaFile路径长度上限与操作系统有关,最小值为1。 |
管理面根证书名称列表,当前管理面证书和业务面证书放在同一个路径(tlsCaPath)下。 “httpsEnabled”=true且“ipAddress”!=“managementIpAddress”生效,生效后必填,默认值:["management_ca.pem"]。 |
managementTlsCert |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+managementTlsCert,上限与操作系统有关,最小值为1。 |
管理面服务证书文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true且“ipAddress”!=“managementIpAddress”生效,生效后必填,默认值:"security/certs/management/server.pem"。 |
managementTlsPk |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+managementTlsPk,上限与操作系统有关,最小值为1。 |
管理面服务证书私钥文件路径,只支持软件包安装路径下的相对路径,证书私钥的长度要求>=3072。 “httpsEnabled”=true且“ipAddress”!=“managementIpAddress”生效,生效后必填,默认值:"security/keys/management/server.key.pem"。 |
managementTlsPkPwd |
std::string |
文件路径长度<=4096。支持为空;若非空,则实际路径为工程路径+managementTlsPkPwd,上限与操作系统有关,最小值为1 |
管理面服务证书私钥加密密钥文件路径。 “httpsEnabled”=true且“ipAddress”!=“managementIpAddress”生效,生效后选填,默认值:"security/pass/management/key_pwd.txt"。 若私钥经过加密但是未提供此文件,系统启动时会要求用户在交互窗口输入私钥加密口令。 |
managementTlsCrl |
std::string |
建议文件路径长度<=4096。支持为空;若非空,则实际路径为工程路径+managementTlsCrl,上限与操作系统有关,最小值为1。 |
管理面证书吊销列表文件路径,只支持软件包安装路径下的相对路径。
“managementTlsCrl”的值只能配套“managementTlsCaFile”文件列表中的第一个CA文件。 |
kmcKsfMaster |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+kmcKsMaster,上限与操作系统有关,最小值为1。 |
KMC密钥库文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"tools/pmt/master/ksfa"。 |
kmcKsfStandby |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+kmcKsStandby,上限与操作系统有关,最小值为1。 |
KMC密钥库备份文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"tools/pmt/standby/ksfb"。 |
inferMode |
std::string |
|
标识是否PD分离。
默认值:standard。 |
interCommTLSEnabled |
bool |
|
集群内部实例间的通信是否启用TLS。
选填,默认值:true,需要配置证书相关内容。 |
interCommPort |
uint16_t |
[1024, 65535] |
集群内部实例间的通信端口。 选填,默认值:1121。 |
interCommTlsCaFile |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interCommTlsCaFile,上限与操作系统有关,最小值为1。 |
集群内部实例间的通信如果启用TLS,则使用这里指定的文件作为CA。 选填,默认值:"security/grpc/ca/ca.pem"。 |
interCommTlsCert |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interCommTlsCert,上限与操作系统有关,最小值为1。 |
集群内部实例间的通信如果启用TLS,则使用这里指定的文件作为证书。 选填,默认值:"security/grpc/certs/server.pem"。 |
interCommPk |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interCommPk,上限与操作系统有关,最小值为1。 |
集群内部实例间的通信如果启用TLS,则使用这里指定的文件作为私钥。 选填,默认值:"security/grpc/keys/server.key.pem"。 |
interCommPkPwd |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interCommPkPwd,上限与操作系统有关,最小值为1。 |
集群内部实例间的通信如果启用TLS,则使用这里指定的文件作为私钥的密码。 选填,默认值:"security/grpc/pass/key_pwd.txt"。 |
interCommTlsCrl |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interCommTlsCrl,上限与操作系统有关,最小值为1。 |
集群内部实例间的通信如果启用TLS,则使用这里指定的文件作为证书吊销列表。 选填,默认值:"security/grpc/certs/server_crl.pem"。 |
openAiSupport |
std::string |
- |
是否启用vLLM兼容的OpenAI。选填,默认值:"vllm"。
此配置支持热更新。 |
- 如果网络环境不安全,不开启HTTPS通信,即“httpsEnabled”=“false”时,会存在较高的网络安全风险。
- 如果推理服务所在的计算节点的网络为跨公网和局域网,绑定0.0.0.0的IP地址可能导致网络隔离失效,存在较大安全风险。故该场景下默认禁止EndPoint的IP地址绑定为0.0.0.0。若用户仍需要使用0.0.0.0,请在环境具备全零监听防护能力的前提下,通过设置配置项“allowAllZeroIpListening”=true手动打开允许配置0.0.0.0的IP地址开关,启用全零监听的安全风险由用户自行承担。
- 如果配置了相同的管理面和业务面的IP地址,会导致隔离失效。
BackendConfig参数说明
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
backendName |
std::string |
长度1~50,只支持小写字母和下划线。且不以下划线作为开头和结尾。 |
推理后端名称,可以通过该参数获得后端实例。 必填,目前只支持:"mindieservice_llm_engine"。 |
modelInstanceNumber |
uint32_t |
[1, 10] |
模型实例个数。 必填,默认值:1。 单模型多机推理场景,该值需为1。 |
npuDeviceIds |
std::vector<std::set<size_t>> |
根据模型和环境的实际情况来决定。 |
表示启用哪几张卡。对于每个模型实例分配的npuIds。 多机推理场景下该值无效,每个节点上使用的npuDeviceIds根据ranktable计算获得。 必填,默认值:[[0,1,2,3]]。 |
tokenizerProcessNumber |
uint32_t |
[1, 32] |
tokenizer进程数。必填,默认值:8。 在CPU核较多时,可以适当调大该值,tokenizer性能会更好。 |
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。实际路径为工程路径+interNodeTlsCrl,上限与操作系统有关,最小值为1。 |
服务证书吊销列表文件路径。 “interNodeTLSEnabled”=true生效,生效后选填,默认值:"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参数说明。 |
ModelConfig参数说明
ScheduleConfig参数说明
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
templateType |
std::string |
|
推理类型。
PD分离场景下该字段配置不生效。 必填,默认值:"Standard"。 |
templateName |
std::string |
当前取值只能为:"Standard_LLM" |
调度工作流名称。 必填,默认值:"Standard_LLM"。 |
cacheBlockSize |
uint32_t |
[1, 128] |
KV Cache block的size大小。 必填,默认值:128,建议值:128,其他值建议取为2的n次幂。 |
maxPrefillBatchSize |
uint32_t |
[1, maxBatchSize] |
最大prefill batch size。maxPrefillBatchSize和maxPrefillTokens谁先达到各自的取值就完成本次组batch。 该参数主要是在明确需要限制Prefill阶段batch size的场景下使用,否则可以设置为0(此时引擎将默认取maxBatchSize值)或与maxBatchSize值相同。 必填,默认值:50。 |
maxPrefillTokens |
uint32_t |
[5120,2097152],且必须大于或等于maxInputTokenLen的取值。 |
每次Prefill时,当前batch中所有input token总数,不能超过maxPrefillTokens。maxPrefillTokens和maxPrefillBatchSize谁先达到各自的取值就完成本次组batch。 不建议设置过大,若显存溢出可适当调小。 必填,默认值:8192。 |
prefillTimeMsPerReq |
uint32_t |
[0, 1000] |
与decodeTimeMsPerReq比较,计算当前应该选择Prefill还是decode。单位:ms,当“supportSelectBatch”设置为“true”时有效。其调度策略流程图请参见图1。 必填,默认值:150。 |
prefillPolicyType |
uint32_t |
|
Prefill阶段的调度策略。其调度策略流程图请参见图2。
其中,3是0/1的组合。 必填,默认值:0。 |
decodeTimeMsPerReq |
uint32_t |
[0, 1000] |
与prefillTimeMsPerReq比较,计算当前应该选择Prefill还是Decode。单位:ms,当“supportSelectBatch”设置为“true”时有效。其调度策略流程图请参见图1。 必填,默认值:50。 |
decodePolicyType |
uint32_t |
|
Decode阶段的调度策略。其调度策略流程图请参见图2。
其中,3是0/1的组合。 必填,默认值:0。 |
maxBatchSize |
uint32_t |
[1, 5000],且必须大于或等于maxPreemptCount参数的取值。 |
最大decode batch size。
必填,默认值:200。 |
maxIterTimes |
uint32_t |
[1, maxSeqLen-1] |
模型全局最大输出长度。与请求级最大输出token个数max_tokens(或max_new_tokens)取较小值作为最大可生成长度。 必填,默认值:512。 请求的最大输出长度maxOutputLen=min(maxIterTimes, max_tokens, max_new_tokens) 请求的实际输出长度outputLen = min(maxSeqLen - inputLen, maxOutputLen) |
maxPreemptCount |
uint32_t |
[0, maxBatchSize],当取值大于0时,cpuMemSize取值不可为0。 |
每一批次最大可抢占请求的上限,即限制一轮调度最多抢占请求的数量,最大上限为maxBatchSize,取值大于0则表示开启可抢占功能。 必填,默认值:0。 |
supportSelectBatch |
bool |
|
batch选择策略。 PD分离场景下该字段不生效。
必填,默认值:false。 |
maxQueueDelayMicroseconds |
uint32_t |
[500, 1000000] |
请求的队列等待时间,单位:us。 必填,默认值:5000。 |