配置参数说明
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
ResourceParam |
|||
cacheBlockSize |
uint32_t |
[1, 128] |
kvcache block的size大小。 必填,默认值:128;建议值:128,其他值建议取为2的n次幂。 |
LogParam |
|||
logLevel |
std::string |
|
必填,默认值:"Info"。 |
logPath |
std::string |
日志文件路径,长度<=4096。 |
支持绝对和相对路径。如果配置为相对路径,则代码中会取工程目录,最后拼接而成。 例如,假设MindIE Service的安装路径为“/opt/Ascend-mindie-service_{version}_linux-x86_64/”,则默认的日志绝对路径为“/opt/Ascend-mindie-service_{version}_linux-x86_64/logs/mindservice.log”。 若配置路径不满足要求,则使用默认路径:“工程路径/logs/mindservice.log”。 必填,默认值:"logs/mindservice.log"。 |
ServeParam |
|||
ipAddress |
std::string |
IPv4地址。 |
EndPoint提供的业务面RESTful接口绑定的IP地址。全零侦听会导致三面隔离失效,不满足安全配置要求,禁止绑定IP地址为0.0.0.0。
必填,默认值:"127.0.0.1"。 |
managementIpAddress |
std::string |
IPv4地址。 |
EndPoint提供的管理面RESTful接口绑定的IP地址。全零侦听会导致三面隔离失效,不满足安全配置要求,禁止绑定IP地址为0.0.0.0。
选填,默认值:"127.0.0.2"。 |
port |
int32_t |
[1024, 65535] |
EndPoint提供的业务面RESTful接口绑定的端口号。 如果采用物理机/宿主机IP地址通信,请自行保证端口号无冲突。 必填,默认值:1025。 |
managementPort |
int32_t |
[1024, 65535] |
EndPoint提供的管理面(管理面接口参考表1)接口绑定的端口号。
选填,默认值:1026。 |
maxLinkNum |
uint32_t |
[1, 1000] |
RESTful接口请求并发数,EndPoint支持的最大并发请求数。 必填,默认值:1000。 |
httpsEnabled |
bool |
|
是否开启https通信。
必填,默认值:true,建议值:true,取值为false时,忽略后续https通信相关参数。 |
tlsCaPath |
std::string |
建议tlsCaPath+tlsCaFile路径长度<=4096。实际路径为工程路径+tlsCaPath,上限限制与操作系统有关,最小值为1。 |
根证书路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"security/ca/"。 |
tlsCaFile |
std::set<std::string> |
建议tlsCaPath+tlsCaFile路径长度<=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文件。 |
kmcKsMaster |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+kmcKsMaster,上限限制与操作系统有关,最小值为1。 |
KMC密钥库文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"tools/pmt/master/ksfa"。 |
kmcKsStandby |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+kmcKsStandby,上限限制与操作系统有关,最小值为1。 |
KMC密钥库备份文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"tools/pmt/standby/ksfb"。 |
multiNodesInferPort |
uint32_t |
[1024, 65535] |
跨机通信的端口号,多机推理场景使用。 选填,默认值:1120。 |
interNodeTLSEnabled |
bool |
|
多机推理时,跨机通信是否开启证书安全认证。
选填,默认值:true。取值为false时,忽略后续参数。 |
interNodeTlsCaFile |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interNodeTlsCaFile,上限限制与操作系统有关,最小值为1。 |
根证书名称路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/ca/ca.pem"。 |
interNodeTlsCert |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interNodeTlsCert,上限限制与操作系统有关,最小值为1。 |
服务证书文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/certs/server.pem"。 |
interNodeTlsPk |
std::string |
建议文件路径长度<=4096。实际路径为工程路径+interNodeTlsPk,上限限制与操作系统有关,最小值为1。 |
服务证书私钥文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/keys/server.key.pem"。 |
interNodeTlsPkPwd |
std::string |
建议文件路径长度<=4096。支持为空;若非空,则实际路径为工程路径+interNodeTlsPkPwd,上限限制与操作系统有关,最小值为1。 |
服务证书私钥加密密钥文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/pass/mindie_server_key_pwd.txt"。 |
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"。 |
- 如果网络环境不安全,不开启https通信,即“httpsEnabled”=“false”时,会存在较高的网络安全风险。
- 如果推理服务所在的计算节点的网络为跨公网和局域网,绑定0.0.0.0的IP地址可能导致网络隔离失效,存在较大安全风险。故该场景下禁止EndPoint的IP地址绑定为0.0.0.0。
- 如果配置了相同的管理面和业务面的IP地址,会导致隔离失效。
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
TemplateParam |
|||
templateType |
std::string |
当前取值只能为:"Standard" |
普通推理。 必填,默认值:"Standard"。 |
templateName |
std::string |
由大写字母、小写字母和下划线组成,且不以下划线作为开头和结尾,字符串长度小于或等于256。 |
工作流名称。 必填,默认值:"Standard_llama"。 |
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
engineName |
std::string |
长度1~50,只支持小写字母加下划线。且不以下划线作为开头和结尾。 |
根据engineName找对应的so文件。 必填,默认值:"mindieservice_llm_engine"。 |
modelInstanceNumber |
uint32_t |
[1, 10] |
模型实例个数。 必填,默认值:1。 |
tokenizerProcessNumber |
uint32_t |
[1, 32] |
tokenizer进程数。 选填,默认值:8。 |
maxSeqLen |
uint32_t |
上限根据显存和用户需求来决定,最小值需大于0。 |
最大序列长度。输入的长度+输出的长度<=maxSeqLen,用户根据自己的推理场景选择maxSeqLen。 如果maxSeqLen大于模型支持的最大序列长度,可能会影响推理精度。 必填,默认值:2560。 |
npuDeviceIds |
std::set<std::set<size_t>> |
根据模型和环境的实际情况来决定。 |
表示启用哪几张卡。对于每个模型实例分配的npuIds。 多机推理场景下该值无效,每个节点上使用的npuDeviceIds根据ranktable计算获得。 必填,默认值:[[0,1,2,3]]。 |
multiNodesInferEnabled |
bool |
|
选填,默认值:false。 |
ModelParam |
|||
modelInstanceType |
std::string |
|
模型类型。
选填,默认值:"Standard"。 |
modelName |
string |
由大写字母、小写字母、数字、中划线、点和下划线组成,且不以中划线、点和下划线作为开头和结尾,字符串长度小于或等于256。 |
模型名称。 必填,默认值:"llama_65b"。 |
modelWeightPath |
std::string |
文件绝对路径长度的上限与操作系统有关,最小值为1。 |
模型权重路径。程序会读取该路径下的config.json中torch_dtype和vocab_size字段的值,需保证路径和相关字段存在。 必填,默认值:"/data/atb_testdata/weights/llama1-65b-safetensors"。 该路径会进行安全校验,必须使用绝对路径,且和执行用户的属组和权限保持一致。 |
worldSize |
uint32_t |
根据模型实际情况来决定。每一套模型参数中worldSize必须与使用的NPU数量相等。 |
启用几张卡推理。目前llama-65b至少启用四张NPU卡。 多机推理场景下该值无效,worldSize根据ranktable计算获得。 必填,默认值:4。 |
cpuMemSize |
uint32_t |
上限根据显存和用户需求来决定。只有当maxPreemptCount为0时,才可以取值为0。 |
CPU中可以用来申请kv cache的size上限。 必填,默认值:5,建议值:5,单位:GB。 |
npuMemSize |
uint32_t |
上限根据显存和用户需求来决定,下限大于0。 |
NPU中可以用来申请kv cache的size上限。 必填,默认值:8,建议值:8,单位:GB。 快速计算公式:npuMemSize=(单卡总空闲-权重/NPU卡数-后处理占用)*系数,其中系数取0.8。 |
backendType |
std::string |
|
对接的后端类型。 必填,默认值:"atb"。 |
pluginParams |
std::string |
根据并行解码实际所需填写一个json字符串。 |
选填,默认值:""。 |
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
maxPrefillBatchSize |
uint32_t |
[1, maxBatchSize] |
最大prefill batch size。maxPrefillBatchSize和maxPrefillTokens谁先达到各自的取值就完成本次组batch。 该参数主要是在明确需要限制prefill阶段batch size的场景下使用,否则可以设置为0(此时引擎将默认取maxBatchSize值)或与maxBatchSize值相同。 必填,默认值:50。 |
maxPrefillTokens |
uint32_t |
[5120, 512000],且必须大于或等于maxSeqLen的取值。 |
每次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。 |
maxPreemptCount |
int32_t |
[0, maxBatchSize],当取值大于0时,cpuMemSize取值不可为0。 |
每一批次最大可抢占请求的上限,即限制一轮调度最多抢占请求的数量,最大上限为maxBatchSize,取值大于0则表示开启可抢占功能。 必填,默认值:0。 |
supportSelectBatch |
bool |
|
batch选择策略。
必填,默认值:false。 |
maxQueueDelayMicroseconds |
uint32_t |
[500, 1000000] |
队列等待时间,单位:us。 必填,默认值:5000。 |
- “npuDeviceIds”参数使用规则:
- 执行下列命令,设置设备上加速库可见卡(此操作需在启动MindIE Server之前执行)。
export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
- “npuDeviceIds”表示在上述可见卡中,按ASCEND_RT_VISIBLE_DEVICES设置的顺序,选取对应的卡。
- 若“npuDeviceIds”设置不从零开始,需要设置ASCEND_RT_VISIBLE_DEVICES环境变量,否则会导致绑核失败。
- 执行下列命令,设置设备上加速库可见卡(此操作需在启动MindIE Server之前执行)。
- “npuMemSize”参数使用规则:
- 为快速确定最佳显存参数取值范围,提供了快速计算公式。该公式计算的结果仅作为取值参考,为了达到最佳性能,可以适当向上调整该值并进行性能压力测试。
- 如果设置的“npuMemSize”参数超过系统可分配最大显存值,会出现推理服务启动失败、推理服务启动卡死等异常现象,需要减小该值并重试。
- 如需配置最优性能,请参考性能调优流程章节。