更新时间:2025/03/20
说明
配置项取值请参考《MindIE安装指南》中“配置MindIE > 配置MindIE Server > 单机推理”章节的步骤3。系统读取配置文件时,会先校验文件大小,若文件大小范围不在(0MB, 10MB],将读取失败。
配置文件参数说明
配置项 | 取值类型 | 取值范围 | 配置说明 |
---|---|---|---|
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。 取值为0时表示不产生日志。 选填,默认值:20。 |
logFileNum | uint32_t | [0, 64] | 历史日志文件最多保存数量。 取值为0时表示不产生日志。 选填,默认值: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。 |
management IpAddress | 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] | 服务监控指标接口(普罗格式)端口号。可以与“managementPort”值相同或不同。 选填,默认值:1027。 |
allowAllZero IpListening | 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 | 文件绝对路径长度范围为[1,4096]。 实际路径为工程路径+tlsCaPath。 | 根证书路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"security/ca/"。 |
tlsCaFile | std::set <std::string> | 文件绝对路径长度范围为[1,4096]。 列表元素个数最小为1,最大为3。 | 业务面根证书名称列表。 “httpsEnabled”=true生效,生效后必填,默认值:["ca.pem"]。 |
tlsCert | std::string | 文件绝对路径长度范围为[1,4096]。 实际路径为工程路径+tlsCert。 | 业务面服务证书文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"security/certs/server.pem"。 |
tlsPk | std::string | 文件绝对路径长度范围为[1,4096]。 实际路径为工程路径+tlsPk。 | 业务面服务证书私钥文件路径,只支持软件包安装路径下的相对路径,证书私钥的长度要求>=3072。 “httpsEnabled”=true生效,生效后必填,默认值:"security/keys/server.key.pem"。 |
tlsPkPwd | std::string | 文件绝对路径长度范围为[0,4096]。 实际路径为工程路径+tlsPkPwd。 | 业务面服务证书私钥加密密钥文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后选填,默认值:"security/pass/key_pwd.txt"。 若私钥经过加密但是未提供此文件,系统启动时会要求用户在交互窗口输入私钥加密口令。 |
tlsCrlPath | std::string | tlsCrlPath+ tlsCrlFiles路径长度范围为[0,4096]。 实际路径为工程路径+tlsCrlPath。 | 业务面服务证书吊销列表文件夹路径,只支持软件包安装路径下的相对路径。
|
tlsCrlFiles | std::set <std::string> | tlsCrlPath+ tlsCrlFiles路径长度范围为[1,4096]。 列表元素个数最小为1,最大为3。 | 业务面吊销列表名称列表。 “httpsEnabled”=true生效,生效后选填,默认值:["server_crl.pem"]。 |
management TlsCaFile | std::set <std::string> | 建议tlsCaPath+ managementTlsCaFile 路径长度范围为[0,4096]。 列表元素个数最小为1,最大为3。 | 管理面根证书名称列表,当前管理面证书和业务面证书放在同一个路径(tlsCaPath)下。 “httpsEnabled”=true且“ipAddress”!=“managementIpAddress”生效,生效后必填,默认值:["management_ca.pem"]。 |
management TlsCert | std::string | 文件路径长度范围为[1,4096]。 实际路径为工程路径+managementTlsCert。 | 管理面服务证书文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true且“ipAddress”!=“managementIpAddress”生效,生效后必填,默认值:"security/certs/management/server.pem"。 |
management TlsPk | std::string | 文件路径长度范围为[1,4096]。 实际路径为工程路径+managementTlsPk。 | 管理面服务证书私钥文件路径,只支持软件包安装路径下的相对路径,证书私钥的长度要求>=3072。 “httpsEnabled”=true且“ipAddress”!=“managementIpAddress”生效,生效后必填,默认值:"security/keys/management/server.key.pem"。 |
management TlsPkPwd | std::string | 文件路径长度范围为[0,4096]。 实际路径为工程路径+managementTlsPkPwd。 | 管理面服务证书私钥加密密钥文件路径。 “httpsEnabled”=true且“ipAddress”!=“managementIpAddress”生效,生效后选填,默认值:"security/pass/management/key_pwd.txt"。 若私钥经过加密但是未提供此文件,系统启动时会要求用户在交互窗口输入私钥加密口令。 |
management TlsCrlPath | std::string | managementTlsCrlPath+ managementTlsCrlFiles 路径长度范围为[1,4096]。 实际路径为工程路径+managementTlsCrlPath。 | 管理面证书吊销列表文件夹路径,只支持软件包安装路径下的相对路径。
|
management TlsCrlFiles | std::set <std::string> | managementTlsCrlPath+ managementTlsCrlFiles 路径长度范围为[1,4096]。 列表元素个数最小为1,最大为3。 | 管理面吊销列表名称列表。 “httpsEnabled”=true生效,生效后选填,默认值:["server_crl.pem"]。 |
kmcKsfMaster | std::string | 文件路径长度范围为[1,4096]。 实际路径为工程路径+kmcKsMaster。 | KMC密钥库文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"tools/pmt/master/ksfa"。 |
kmcKsfStandby | std::string | 文件路径长度范围为[1,4096]。 实际路径为工程路径+kmcKsStandby1。 | KMC密钥库备份文件路径,只支持软件包安装路径下的相对路径。 “httpsEnabled”=true生效,生效后必填,默认值:"tools/pmt/standby/ksfb"。 |
inferMode | std::string |
| 标识是否PD分离。
默认值:standard。 |
interComm TLSEnabled | bool |
| 集群内部实例间的通信是否启用TLS。
选填,默认值:true,需要配置证书相关内容。 取值为false或“inferMode”为“standard”时,忽略后续集群内部通信相关参数。 |
interCommPort | uint16_t | [1024, 65535] | 集群内部实例间的通信端口。 选填,默认值:1121。 |
interComm TlsCaPath | std::string | interCommTlsCaPath+ interCommTlsCaFiles 路径长度取决于操作系统配置(Linux为PATH_MAX)。 实际路径为工程路径+interCommTlsCaPath。 | 集群内部实例间的通信如果启用TLS,则使用此参数指定CA文件所在路径。 选填,默认值:"security/grpc/ca/"。 |
interComm TlsCaFiles | std::set <std::string> | interCommTlsCaPath+ interCommTlsCaFiles 路径长度取决于操作系统配置(Linux为PATH_MAX)。 实际路径为工程路径+interCommTlsCaFiles。 | 集群内部实例间的通信如果启用TLS,则使用此参数指定CA文件名称。 选填,默认值:["ca.pem"]。 |
interComm TlsCert | std::string | 文件路径长度取决于操作系统配置(Linux为PATH_MAX)。 实际路径为工程路径+interCommTlsCert。 | 集群内部实例间的通信如果启用TLS,则使用这里指定的文件作为证书。 选填,默认值:"security/grpc/certs/server.pem"。 |
interCommPk | std::string | 文件路径长度取决于操作系统配置(Linux为PATH_MAX)。 实际路径为工程路径 +interCommPk取决于操作系统配置(Linux为PATH_MAX)。 | 集群内部实例间的通信如果启用TLS,则使用这里指定的文件作为私钥。 选填,默认值:"security/grpc/keys/server.key.pem"。 |
interComm PkPwd | std::string | 文件路径长度取决于操作系统配置(Linux为PATH_MAX)。 实际路径为工程路径+interCommPkPwd。 | 集群内部实例间的通信如果启用TLS,则使用这里指定的文件作为私钥的密码。 选填,默认值:"security/grpc/pass/key_pwd.txt"。 |
interComm TlsCrlPath | std::string | interCommTlsCrlPath+ interCommTlsCrlFiles 路径长度取决于操作系统配置(Linux为PATH_MAX)。 实际路径为工程路径+interCommTlsCrlPath。 | 集群内部实例间的通信如果启用TLS,则使用此参数指定证书吊销列表文件所在路径。 选填,默认值:"security/grpc/certs/"。 |
interComm TlsCrlFiles | std::set <std::string> | interCommTlsCrlPath+ interCommTlsCrlFiles 路径长度取决于操作系统配置(Linux为PATH_MAX)。 实际路径为工程路径+interCommTlsCrlFiles。 | 集群内部实例间的通信如果启用TLS,则使用此参数指定证书吊销列表文件名称。 选填,默认值:"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 | 长度1~50,只支持小写字母和下划线。 且不以下划线作为开头和结尾。 | 推理后端名称,可以通过该参数获得后端实例。 必填,目前只支持:"mindieservice_llm_engine"。 |
model InstanceNumber | [1, 10] | 模型实例个数。 必填,默认值:1。 单模型多机推理场景,该值需为1。 |
npuDeviceIds | 根据模型和环境的实际情况来决定。 | 表示启用哪几张卡。对于每个模型实例分配的npuIds,使用芯片逻辑ID表示。
必填,默认值:[[0,1,2,3]]。 |
tokenizer ProcessNumber | [1, 32] | tokenizer进程数。必填,默认值:8。 在CPU核较多时,可以适当调大该值,tokenizer性能会更好。 |
multiNodes InferEnabled |
|
选填,默认值:false。 |
multiNodes InferPort | [1024, 65535] | 跨机通信的端口号,多机推理场景使用。 选填,默认值:1120。 |
interNode TLSEnabled |
| 多机推理时,跨机通信是否开启证书安全认证。
选填,默认值:true。取值为false时,忽略后续参数。 |
interNode TlsCaPath | 建议interNodeTlsCaPath+ interNodeTlsCaFiles路径长度<=4096。实际路径为工程路径+interNodeTlsCaPath,上限与操作系统有关,最小值为1。 | 根证书名称路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/grpc/ca/"。 |
interNode TlsCaFiles | 建议interNodeTlsCaPath+ interNodeTlsCaFiles路径长度<=4096。实际路径为工程路径+interNodeTlsCaFiles,上限与操作系统有关,最小值为1。 | 根证书名称列表。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:["ca.pem"]。 |
interNodeTlsCert | 建议文件路径长度<=4096。 实际路径为工程路径+interNodeTlsCert,上限与操作系统有关,最小值为1。 | 服务证书文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/grpc/certs/server.pem"。 |
interNodeTlsPk | 建议文件路径长度<=4096。 实际路径为工程路径+interNodeTlsPk,上限与操作系统有关,最小值为1。 | 服务证书私钥文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/grpc/keys/server.key.pem"。 |
interNode TlsPkPwd | 建议文件路径长度<=4096。 支持为空;若非空,则实际路径为工程路径+interNodeTlsPkPwd,上限与操作系统有关,最小值为1。 | 服务证书私钥加密密钥文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"security/grpc/pass/mindie_server_key_pwd.txt"。 |
interNode TlsCrlPath | 建议interNodeTlsCrlPath+ interNodeTlsCrlFiles路径长度<=4096。实际路径为工程路径+interNodeTlsCrlPath,上限与操作系统有关,最小值为1。 | 服务证书吊销列表文件夹路径。“interNodeTLSEnabled”=true生效。 选填,默认值:"security/grpc/certs/"。 |
interNode TlsCrlFiles | 建议interNodeTlsCrlPath+ interNodeTlsCrlFiles路径长度<=4096。实际路径为工程路径+interNodeTlsCrlFiles,上限与操作系统有关,最小值为1。 | 服务证书吊销列表名称列表。“interNodeTLSEnabled”=true生效。 选填,默认值:["server_crl.pem"]。 |
interNode KmcKsfMaster | 建议文件路径长度<=4096。实际路径为工程路径+interNodeKmcKsfMaster,上限与操作系统有关,最小值为1。 | KMC密钥库文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"tools/pmt/master/ksfa"。 |
interNode KmcKsfStandby | 建议文件路径长度<=4096。实际路径为工程路径+interNodeKmcKsfStandby,上限与操作系统有关,最小值为1。 | KMC密钥库备份文件路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”=true生效,生效后必填,默认值:"tools/pmt/standby/ksfb"。 |
Model DeployConfig | - | 模型部署相关配置。详情请参见ModelDeployConfig参数说明。 |
ScheduleConfig | - | 调度相关配置。详情请参见ScheduleConfig参数说明。 |
ModelDeployConfig参数说明
展开
配置项 | 取值类型 | 取值范围 | 配置说明 |
---|---|---|---|
maxSeqLen | uint32_t | 上限根据显存和用户需求来决定,最小值需大于0。 | 最大序列长度。请根据推理场景选择合适的maxSeqLen。 如果maxSeqLen大于模型支持的最大序列长度,可能会影响推理精度。 必填,默认值:2560。 |
maxInputTokenLen | uint32_t | [1, 4194304] | 输入token id最大长度。 必填,默认值:2048。 maxInputTokenLen = min(maxInputTokenLen, maxSeqLen -1) |
truncation | bool |
| 是否进行参数合理化校验拦截。
选填,默认值:false。 maxInputTokenLen = min(maxInputTokenLen, maxSeqLen -1) |
ModelConfig | map | - | 模型相关配置,包括后处理参数。详情请参见ModelConfig参数说明。 |
ModelConfig参数说明
配置项 | 取值类型 | 取值范围 | 配置说明 |
---|---|---|---|
modelInstanceType | std::string |
| 模型类型。
选填,默认值:"Standard"。 |
modelName | string | 由大写字母、小写字母、数字、中划线、点和下划线组成,且不以中划线、点和下划线作为开头和结尾,字符串长度小于或等于256。 | 模型名称。 必填,默认值:"llama_65b"。 |
modelWeightPath | std::string | 文件绝对路径长度的上限与操作系统的设置(Linux为PATH_MAX)有关,最小值为1。 | 模型权重路径。程序会读取该路径下的config.json中torch_dtype和vocab_size字段的值,需保证路径和相关字段存在。 必填,默认值:"/data/atb_testdata/weights/llama1-65b-safetensors"。 该路径会进行安全校验,需要和执行用户的属组和权限保持一致。 |
worldSize | uint32_t | 根据模型实际情况来决定。每一套模型参数中worldSize必须与使用的NPU数量相等。 | 启用几张卡推理。目前llama-65b至少启用四张NPU卡。 多机推理场景下该值无效,worldSize根据ranktable计算获得。 PD分离场景下需要与下发身份设置的卡数一致。 必填,默认值:4。 |
cpuMemSize | uint32_t | 上限根据显存和用户需求来决定。只有当maxPreemptCount为0时,才可以取值为0。 | 单个CPU中可以用来申请KV Cache的size上限。 必填,默认值:5,建议值:5,单位:GB。 |
npuMemSize | int32_t |
| 单个NPU中可以用来申请KV Cache的size上限。 必填,默认值:-1,建议值:-1,单位:GB。
说明
|
backendType | std::string |
| 对接的后端类型。
必填,默认值:"atb"。 说明 如果选择"ms"作为对接的推理引擎后端,需要提前安装MindSpore和MindFormers,以及修改MindIE启动配置信息,详情请参见链接。 |
trustRemoteCode | bool |
| 是否信任远程代码。
选填,默认值:false。 说明 如果设置为true,会存在信任远程代码行为,可能会导致恶意代码注入风险,请自行保障代码注入安全风险。 |
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 | [1,4194304],且必须大于或等于maxInputTokenLen的取值。 | 每次Prefill时,当前batch中所有input token总数,不能超过maxPrefillTokens。maxPrefillTokens和maxPrefillBatchSize谁先达到各自的取值就完成本次组batch。 不建议设置过大,若显存溢出可适当调小。 必填,默认值:8192。 |
prefillTimeMs PerReq | uint32_t | [0, 1000] | 与decodeTimeMsPerReq一起参与计算当前应该选择Prefill还是decode。单位:ms,当“supportSelectBatch”设置为“true”时有效。其调度策略流程图请参见图1。 必填,默认值:150。
|
prefillPolicyType | uint32_t |
| Prefill阶段的调度策略。其调度策略流程图请参见图2。
其中,3是0/1的组合。 必填,默认值:0。 |
decodeTimeMs PerReq | 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。 1、首先计算block_num:Total Block Num = Floor(NPU显存/(模型网络数*cacheBlockSize*模型注意力头数*注意力头大小*Cache类型字节数*Cache数)),其中,Cache数=2;在tensor并行的情况下,block_num*world_size为实际的分配block数。 如果是多卡,公式中的模型注意力头数*注意力大小的值需要均摊在每张卡上,即“模型注意力头数*注意力大小/卡数”。 公式中的Floor表示计算结果向下取整。 2、为每个请求申请的block数量Block Num=Ceil(输入Token数/cacheBlockSize)+Ceil(最大输出Token数/Block Size)。输入Token数:输入(字符串)做完tokenizer后的tokenID个数;最大输出Token数:模型推理最大迭代次数和最大输出长度之间取较小值。 3、maxBatchSize=Total Block Num/Block Num。 必填,默认值:200。 |
maxIterTimes | uint32 | [1, maxSeqLen] | 模型全局最大输出长度。与请求级最大输出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分离场景下该字段不生效。 1、false:表示每一轮调度时,优先调度和执行Prefill阶段的请求。 2、true:表示每一轮调度时,根据当前Prefill与Decode请求的数量,自适应调整Prefill和Decode阶段请求调度和执行的先后顺序。 必填,默认值:false。 |
maxQueueDelay Microseconds | uint32_t | [500, 1000000] | 在队列中的请求数量达到最大BatchSize或maxPrefillTokens前,请求在队列中的最大等待时间,单位:us。 只要等待时间达到该值,即使请求数量未达到最大BatchSize或maxPrefillTokens,也要进行下一次推理。 必填,默认值:5000。 |
调整后的参数:
{
"Version" : "1.1.0",
"LogConfig" :
{
"logLevel" : "Info",
"logFileSize" : 20,
"logFileNum" : 20,
"logPath" : "logs/mindservice.log"
},
"ServerConfig" :
{
"ipAddress" : "192.168.12.146",
"managementIpAddress" : "127.0.0.2",
"port" : 1040,
"managementPort" : 1041,
"metricsPort" : 1042,
"allowAllZeroIpListening" : false,
"maxLinkNum" : 1000,
"httpsEnabled" : false,
"fullTextEnabled" : false,
"tlsCaPath" : "security/ca/",
"tlsCaFile" : ["ca.pem"],
"tlsCert" : "security/certs/server.pem",
"tlsPk" : "security/keys/server.key.pem",
"tlsPkPwd" : "security/pass/key_pwd.txt",
"tlsCrlPath" : "security/certs/",
"tlsCrlFiles" : ["server_crl.pem"],
"managementTlsCaFile" : ["management_ca.pem"],
"managementTlsCert" : "security/certs/management/server.pem",
"managementTlsPk" : "security/keys/management/server.key.pem",
"managementTlsPkPwd" : "security/pass/management/key_pwd.txt",
"managementTlsCrlPath" : "security/management/certs/",
"managementTlsCrlFiles" : ["server_crl.pem"],
"kmcKsfMaster" : "tools/pmt/master/ksfa",
"kmcKsfStandby" : "tools/pmt/standby/ksfb",
"inferMode" : "standard",
"interCommTLSEnabled" : true,
"interCommPort" : 1121,
"interCommTlsCaPath" : "security/grpc/ca/",
"interCommTlsCaFiles" : ["ca.pem"],
"interCommTlsCert" : "security/grpc/certs/server.pem",
"interCommPk" : "security/grpc/keys/server.key.pem",
"interCommPkPwd" : "security/grpc/pass/key_pwd.txt",
"interCommTlsCrlPath" : "security/grpc/certs/",
"interCommTlsCrlFiles" : ["server_crl.pem"],
"openAiSupport" : "vllm"
},
"BackendConfig" : {
"backendName" : "mindieservice_llm_engine",
"modelInstanceNumber" : 1,
"npuDeviceIds" : [[0,1,2,3]],
"tokenizerProcessNumber" : 8,
"multiNodesInferEnabled" : false,
"multiNodesInferPort" : 1120,
"interNodeTLSEnabled" : true,
"interNodeTlsCaPath" : "security/grpc/ca/",
"interNodeTlsCaFiles" : ["ca.pem"],
"interNodeTlsCert" : "security/grpc/certs/server.pem",
"interNodeTlsPk" : "security/grpc/keys/server.key.pem",
"interNodeTlsPkPwd" : "security/grpc/pass/mindie_server_key_pwd.txt",
"interNodeTlsCrlPath" : "security/grpc/certs/",
"interNodeTlsCrlFiles" : ["server_crl.pem"],
"interNodeKmcKsfMaster" : "tools/pmt/master/ksfa",
"interNodeKmcKsfStandby" : "tools/pmt/standby/ksfb",
"ModelDeployConfig" :
{
"maxSeqLen" : 25600,
"maxInputTokenLen" : 4096,
"truncation" : false,
"ModelConfig" : [
{
"modelInstanceType" : "Standard",
"modelName" : "qwen",
"modelWeightPath" : "/data/drx/DeepSeek-R1-Distill-Qwen-32B-W8A8",
"worldSize" : 4,
"cpuMemSize" : 5,
"npuMemSize" : -1,
"backendType" : "atb",
"trustRemoteCode" : false
}
]
},
"ScheduleConfig" :
{
"templateType" : "Standard",
"templateName" : "Standard_LLM",
"cacheBlockSize" : 128,
"maxPrefillBatchSize" : 50,
"maxPrefillTokens" : 8192,
"prefillTimeMsPerReq" : 150,
"prefillPolicyType" : 0,
"decodeTimeMsPerReq" : 50,
"decodePolicyType" : 0,
"maxBatchSize" : 200,
"maxIterTimes" : 5120,
"maxPreemptCount" : 0,
"supportSelectBatch" : false,
"maxQueueDelayMicroseconds" : 5000
}
}
}
转自:配置参数说明-MindIE Server-MindIE Service组件-MindIE Service开发指南-服务化集成部署-MindIE1.0.0开发文档-昇腾社区