配置项取值请参考《MindIE安装指南》中的 章节中的步骤4。
配置项 |
取值类型 |
取值范围 |
是否必填 |
配置说明 |
---|---|---|---|---|
cacheBlockSize |
uint32_t |
[1, 128] |
必填 |
kvcache block的size大小。 建议取值:128,其他值建议取为2的n次幂。 |
preAllocBlocks |
uint32_t |
[0, maxIterTimes/cacheBlockSize],maxIterTimes/cacheBlockSize向上取整。 |
必填 |
预分配策略:给请求分配好block数量。 如果设置了AIE_LLM_CONTINUOUS_BATCHING环境变量:
|
配置项 |
取值类型 |
取值范围 |
默认值 |
配置说明 |
---|---|---|---|---|
logLevel |
std::string |
|
必填 |
|
logPath |
std::string |
文件绝对路径长度<=4096。 |
必填 |
日志保存路径。相对路径,代码中会取到工程的绝对路径,最后拼接而成。目前只支持修改日志文件名,即logPath必须配置为"/logs/xxxx",其中xxxx为日志名称。 例如,假设MindIE-Service的安装路径为“/opt/Ascend-mindie-service_{version}_linux-x86_64/”,则默认的日志绝对路径为“/opt/Ascend-mindie-service_{version}_linux-x86_64/logs/mindservice.log”。 |
配置项 |
取值类型 |
取值范围 |
默认值 |
配置说明 |
---|---|---|---|---|
ipAddress |
std::string |
IPv4地址。 |
必填 |
EndPoint提供的RESTfull接口绑定的IP地址。不建议绑定为0.0.0.0。 |
port |
int32_t |
[1024, 65535] |
必填 |
EndPoint提供的RESTfull接口绑定的端口号。 如果采用物理机/宿主机IP地址通信,请自行保证端口号无冲突。 |
maxLinkNum |
uint32_t |
[1, 300] |
必填 |
RESTfull接口请求并发数,EndPoint支持的最大并发请求数。 |
httpsEnabled |
bool |
|
必填 |
是否开启https通信。建议值true,为false时,后续参数忽略。 |
tlsCaPath |
std::string |
建议tlsCaPath+tlsCaFile路径长度<=2048。 |
“httpsEnabled”=“true”,必填 |
根证书路径。“httpsEnabled”=“true”生效。 |
tlsCaFile |
std::set<std::string> |
建议tlsCaPath+tlsCaFile路径长度<=2048。 |
“httpsEnabled”=“true”,必填 |
根证书名称列表。["ca.pem"],“httpsEnabled”=“true”生效。 |
tlsCert |
std::string |
建议文件路径长度<=2048。 |
“httpsEnabled”=“true”,必填 |
服务证书文件路径。“httpsEnabled”=“true”生效。 |
tlsPk |
std::string |
建议文件路径长度<=2048。 |
“httpsEnabled”=“true”,必填 |
服务证书私钥文件路径。“httpsEnabled”=“true”生效。 |
tlsPkPwd |
std::string |
文件路径长度<=2048。 |
“httpsEnabled”=“true”,必填 |
服务证书私钥加密密钥文件路径。“httpsEnabled”=“true”生效。 |
kmcKsMaster |
std::string |
建议文件路径长度<=2048。 |
“httpsEnabled”=“true”,必填 |
KMC密钥库文件路径。“httpsEnabled”=“true”生效。 |
kmcKsStandby |
std::string |
建议文件路径长度<=2048。 |
“httpsEnabled”=“true”,必填 |
KMC密钥库备份文件路径。“httpsEnabled”=“true”生效。 |
tlsCrl |
std::string |
建议文件路径长度<=2048。 |
“httpsEnabled”=“true”,必填 |
服务证书吊销列表文件路径。“httpsEnabled”=“true”生效。 |
如果推理服务所在的计算节点的网络为跨公网和局域网,绑定0.0.0.0的IP地址可能导致网络隔离失效,存在较大安全风险。故该场景下不建议EndPoint的IP地址绑定为0.0.0.0。
配置项 |
取值类型 |
取值范围 |
默认值 |
配置说明 |
---|---|---|---|---|
templateType |
std::string |
"Standard" |
必填 |
普通推理。 |
templateName |
std::string |
- |
必填 |
工作流名称。 |
pipelineNumber |
uint32_t |
[1, 10] |
必填 |
工作流数量。 |
其中,对于每一种模型,其全局参数配置参见表5。
参数 |
取值类型 |
取值范围 |
是否必填 |
配置说明 |
---|---|---|---|---|
maxSeqLen |
uint32_t |
上限根据显存和用户需求来决定,最小值需大于0。 |
必填 |
最大序列长度。输入的长度+输出的长度<=maxSeqLen,用户根据自己的推理场景选择maxSeqLen。 |
npuDeviceIds |
std::set<size_t> |
根据模型和环境的实际情况来决定。 |
必填 |
启用哪几张卡。对于每个模型实例分配的npuIds。 |
ModelParam |
||||
modelInstanceType |
std::string |
|
选填,默认值为"Standard" |
模型类型。
|
modelName |
std::string |
- |
必填 |
模型名称。 |
modelWeightPath |
std::string |
文件绝对路径长度<=2048。 |
必填 |
模型权重路径。路径必需存在。 |
worldSize |
uint32_t |
根据模型实际情况来决定。 |
必填 |
启用几张卡推理。目前llama-65b至少启用四张NPU卡。 |
cpuMemSize |
uint32_t |
上限根据显存和用户需求来决定。 |
必填 |
CPU中可以用来申请kv cache的size上限。单位:GB。建议值:5。当“supportSwapPolicy”=“false”,可以配置为0。 |
npuMemSize |
uint32_t |
上限根据显存和用户需求来决定。 |
必填 |
NPU中可以用来申请kv cache的size上限。单位:GB。建议值:8。 快速计算公式:npuMemSize=(总空闲-权重/NPU卡数-后处理占用)*系数,其中系数取0.8。 |
backendType |
std::string |
|
必填 |
当前对接后端类型,大小写不敏感。 |
配置项 |
取值类型 |
取值范围 |
默认值 |
配置说明 |
---|---|---|---|---|
maxPrefillBatchSize |
uint32_t |
[1, maxBatchSize] |
必填 |
最大prefill batch size。maxPrefillBatchSize和maxPrefillTokens谁先达到各自的取值就完成本次组batch。 该参数主要是在明确需要限制prefill阶段batch size的场景下使用,否则可以设置为0(此时引擎将默认取maxBatchSize值)或与maxBatchSize值相同。 |
maxPrefillTokens |
uint32_t |
[4096, 409600] |
必填 |
每次prefill时,当前batch中所有input token总数,不能超过maxPrefillTokens。maxPrefillTokens和maxPrefillBatchSize谁先达到各自的取值就完成本次组batch。 |
prefillTimeMsPerReq |
uint32_t |
[0, 1000] |
必填 |
与decodeTimeMsPerReq比较,计算当前应该选择prefill还是decode。单位:ms,当“supportSelectBatch”=“true”时有效。 |
prefillPolicyType |
uint32_t |
|
必填 |
prefill阶段的调度策略。
其中,3是0/1的组合。 |
decodeTimeMsPerReq |
uint32_t |
[0, 1000] |
必填 |
与prefillTimeMsPerReq比较,计算当前应该选择prefill还是decode。单位:ms,当“supportSelectBatch”=“true”时有效。 |
decodePolicyType |
uint32_t |
|
必填 |
decode阶段的调度策略。
其中,3是0/1的组合。 |
maxBatchSize |
uint32_t |
[1, 5000] |
必填 |
最大decode batch size。
|
maxIterTimes |
uint32_t |
[1, maxSeqLen-1] |
必填 |
最大迭代次数,即一句话最大可生成长度。请求级别里面有一个max_output_length参数,maxIterTimes是一个全局设置,与max_output_length取小作为最终output的最长length。 |
maxPreemptCount |
int32_t |
[0, maxBatchSize] |
必填 |
每一批次最大可抢占请求的上限,即限制一轮调度最多抢占请求的数量,最大上限为maxBatchSize,取值大于0则表示开启可抢占功能。 |
supportSelectBatch |
bool |
|
必填 |
batch选择策略。
|
maxQueueDelayMicroseconds |
uint32_t |
[500, 1000000] |
必填 |
队列等待时间,单位:us。 |
export ASCEND_RT_VISIBLE_DEVICES=0,1,2,3,4,5,6,7