1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | { "Version" : "1.0.0", "BackendConfig" : { "backendName" : "mindieservice_llm_engine", "modelInstanceNumber" : 1, "npuDeviceIds" : [[0,1,2,3]], "tokenizerProcessNumber" : 8, "multiNodesInferEnabled" : true, "multiNodesInferPort" : 1120, "interNodeTLSEnabled" : false, "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" : 2560, "maxInputTokenLen" : 2048, "truncation" : false, "ModelConfig" : [ { "modelInstanceType" : "StandardMock", "modelName" : "llama_65b", "modelWeightPath" : "/home/data/Meta-Llama-3-8B/", "worldSize" : 4, "cpuMemSize" : 5, "npuMemSize" : -1, "backendType" : "ms", "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" : 512, "maxPreemptCount" : 0, "supportSelectBatch" : false, "maxQueueDelayMicroseconds" : 5000 } } } |
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
Version |
std::string |
"1.0.0" |
标注配置文件版本,当前版本指定为1.0.0,不支持修改。 |
BackendConfig |
map |
- |
模型后端相关配置,包含调度、模型相关配置。详情请参见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时,忽略后续参数。 |
interNodeTlsCaPath |
std::string |
文件绝对路径长度<=4096。实际路径为工程路径+interNodeTlsCaFiles,上限与操作系统有关,最小值为1。 |
根证书路径,只支持软件包安装路径下的相对路径。 “interNodeTLSEnabled”="true"时生效,生效后必填。 默认值:"security/grpc/ca/"。 |
interNodeTlsCaFiles |
std::set<std::string> |
文件绝对路径长度<=4096。不可为空,并且interNodeTlsCaPath+interNodeTlsCaFiles路径长度上限与操作系统有关,最小值为1。 |
根证书名称列表 “interNodeTLSEnabled”="true"时生效,生效后必填。 默认值:["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"。 |
interNodeTlsCrlPath |
std::string |
建议interNodeTlsCrlPath+interNodetlsCrlFiles路径长度<=4096。支持为空,若非空,则实际路径为工程路径+tlsCrlPath,上限限制与操作系统有关,最小值为1。 |
服务证书吊销列表文件夹路径。 “interNodeTLSEnabled”="true"时生效。 默认值:"security/grpc/certs/"。 |
interNodetlsCrlFiles |
std::set<std::string> |
建议interNodeTlsCrlPath+interNodetlsCrlFiles路径长度<=4096。支持为空,若非空,则tlsCrlPath+tlsCrlFiles路径长度上限与操作系统有关,最小值为1。 |
服务证书吊销列表名称列表。 “interNodeTLSEnabled”="true"时生效。 默认值:["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参数。 |
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
maxSeqLen |
uint32_t |
最大值根据显存和用户需求来决定,最小值需大于0。 |
最大序列长度。用户根据自己的推理场景选择maxSeqLen。 如果maxSeqLen大于模型支持的最大序列长度,可能会影响推理精度。 必填,默认值:2560。 |
maxInputTokenLen |
uint32_t |
(1,4194304] |
输入token id的最大长度。 必填,默认值:2048。 maxInputTokenLen = min(maxInputTokenLen, maxSeqLen -1) |
truncation |
bool |
|
是否进行参数合理化校验拦截。
选填,默认值:false。 |
ModelConfig |
map |
- |
模型相关配置,包括后处理参数。详情请参见ModelConfig参数。 |
配置项 |
取值类型 |
取值范围 |
配置说明 |
---|---|---|---|
modelInstanceType |
std::string |
|
模型类型。
选填,默认值:"Standard"。 |
modelName |
std::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 |
int32_t |
|
单个NPU中可以用来申请KV Cache的size上限。 必填,默认值:-1,建议值:-1,单位:GB。
|
backendType |
std::string |
|
对接的后端类型。 必填,默认值:"atb"。 |
trustRemoteCode |
bool |
|
是否信任模型权重路径下的自定义代码文件。默认不执行。若此参数设置为true,则transformers会执行用户权重路径下的自定义代码文件,这些代码文件的功能的安全性需由用户保证,请提前做好安全性检查。 必填,默认值:false。 说明:
设置成“false”后,如果出现模型加载失败,请查看python详细日志。查看方法具体请参见《MindIE日志及错误码参考》“日志参考 > MindIE LLM日志参考 > 查看日志”章节 |