export LD_LIBRARY_PATH=/usr/local/python3.10.13/lib:$LD_LIBRARY_PATH export PATH=/usr/local/python3.10.13/bin:$PATH
MindIE Service组件包含的文件如表1所示。
目录/文件 |
文件 |
说明 |
---|---|---|
bin |
infer_engine-{version}-py3-none-any.whl |
Benchmark Python接口包。 |
llm_engine_test |
性能测试工具。 |
|
mies_tokenizer-{version}-py3-none-any.whl |
mies_tokenizer模块安装包。 |
|
mindiebenchmark-{version}-py3-none-any.whl |
MindIE Benchmark工具安装包。 |
|
mindieclient-{version}-py3-none-any.whl |
MindIE Client工具安装包。 |
|
mindieservice_backend_connector |
进程间通信模块。 |
|
mindieservice_daemon |
主程序。 |
|
model_wrapper-{version}-py3-none-any.whl |
model_wrapper模块安装包。 |
|
msctl |
MindIE MS客户端。 |
|
ms_server |
MindIE MS服务端。 |
|
seceasy_encrypt |
加密工具。 |
|
version |
版本信息。 |
|
conf |
config.json |
配置文件。 |
infer_server.json |
||
msctl.json |
||
ms_server.json |
||
include |
sdk |
头文件。 |
lib |
libbackend_manager.so |
推理服务so文件。 |
libboost_chrono.so.1.82.0 |
||
libboost_thread.so.1.82.0 |
||
libconfig_manager.so |
||
libcrypto.so |
||
libhse_authorization.so |
||
libhse_cryption.so |
||
libmindieserver_backend_model.so |
||
libmindieserver_common.so |
||
libmindieserver_endpoint.so |
||
libmindieserver_engine.so |
||
libmindieserver_ibis.so |
||
libmindieservice_llm_engine.so |
||
libmindieservice_tokenizer.so |
||
libssl.so |
||
logs |
- |
日志文件。 |
scripts |
config_mindie_server_tls_cert.py |
证书管理脚本。 |
utils |
证书管理工具。 |
|
utils/cert_util.py |
证书操作工具脚本。 |
|
utils/config_util.py |
配置文件配置读取工具脚本。 |
|
utils/file_op.py |
文件操作脚本。 |
|
utils/file_util.py |
文件校验脚本。 |
|
utils/hseceasy_util.py |
口令加密操作脚本。 |
|
utils/__init__.py |
包模块声明。 |
|
utils/log_util.py |
日志操作脚本。 |
|
utils/parameter.py |
参数解析脚本。 |
|
utils/server_util.py |
进程状态读取脚本。 |
|
security |
ca |
根证书目录。 |
certs |
服务证书和服务证书吊销列表目录。 |
|
keys |
服务证书私钥目录。 |
|
pass |
密钥口令加密文件目录。 |
|
set_env.sh |
- |
设置环境变量脚本。 |
version.info |
- |
版本信息。 |
cd {MindIE安装目录}/latest
chmod 750 mindie-service chmod -R 550 mindie-service/bin chmod -R 500 mindie-service/bin/mindieservice_backend_connector chmod -R 550 mindie-service/lib chmod -R 550 mindie-service/include/ chmod -R 550 mindie-service/scripts/ chmod 750 mindie-service/logs chmod 750 mindie-service/conf chmod 640 mindie-service/conf/config.json chmod 700 mindie-service/security/ chmod -R 700 mindie-service/security/*
当前版本此步骤为必做步骤,如果跳过此步骤将会导致MindIE Server启动失败。
cd mindie-service/conf vim config.json
配置文件config.json格式如下:
{ "OtherParam": { "ResourceParam" : { "cacheBlockSize" : 128 }, "LogParam" : { "logLevel" : "Info", "logPath" : "logs/mindservice.log" }, "ServeParam" : { "ipAddress" : "127.0.0.1", "managementIpAddress" : "127.0.0.2", "port" : 1025, "managementPort" : 1026, "maxLinkNum" : 1000, "httpsEnabled" : true, "tlsCaPath" : "security/ca/", "tlsCaFile" : ["ca.pem"], "tlsCert" : "security/certs/server.pem", "tlsPk" : "security/keys/server.key.pem", "tlsPkPwd" : "security/pass/key_pwd.txt", "tlsCrl" : "security/certs/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", "managementTlsCrl" : "security/certs/management/server_crl.pem", "kmcKsfMaster" : "tools/pmt/master/ksfa", "kmcKsfStandby" : "tools/pmt/standby/ksfb", "multiNodesInferPort": 1120, "interNodeTLSEnabled": true, "interNodeTlsCaFile": "security/grpc/ca/ca.pem", "interNodeTlsCert": "security/grpc/certs/server.pem", "interNodeTlsPk": "security/grpc/keys/server.key.pem", "interNodeTlsPkPwd": "security/grpc/pass/key_pwd.txt", "interNodeKmcKsfMaster": "tools/pmt/master/ksfa", "interNodeKmcKsfStandby": "tools/pmt/standby/ksfb" } }, "WorkFlowParam": { "TemplateParam" : { "templateType": "Standard", "templateName" : "Standard_llama" } }, "ModelDeployParam": { "engineName" : "mindieservice_llm_engine", "modelInstanceNumber" : 1, "tokenizerProcessNumber" : 8, "maxSeqLen" : 2560, "npuDeviceIds" : [[0,1,2,3]], "multiNodesInferEnabled" : false, "ModelParam" : [ { "modelInstanceType": "Standard", "modelName" : "llama_65b", "modelWeightPath" : "/data/atb_testdata/weights/llama1-65b-safetensors", "worldSize" : 4, "cpuMemSize" : 5, "npuMemSize" : 8, "backendType": "atb", "pluginParams" : "" } ] }, "ScheduleParam": { "maxPrefillBatchSize" : 50, "maxPrefillTokens" : 8192, "prefillTimeMsPerReq" : 150, "prefillPolicyType" : 0, "decodeTimeMsPerReq" : 50, "decodePolicyType" : 0, "maxBatchSize" : 200, "maxIterTimes" : 512, "maxPreemptCount" : 0, "supportSelectBatch" : false, "maxQueueDelayMicroseconds" : 5000 } }
chmod 400 mindie-service/security/ca/* chmod 400 mindie-service/security/cert/* chmod 400 mindie-service/security/keys/* chmod 400 mindie-service/security/pass/*
set_env.sh环境配置文件如下所示,详情请参见《MindIE Service开发指南》中“附录 > 环境变量”章节。
source /usr/local/Ascend/ascend-toolkit/set_env.sh # CANN
source /usr/local/Ascend/nnal/atb/set_env.sh # ATB
source /home/package/atb_models/set_env.sh # ATB Models
path="${BASH_SOURCE[0]}" mies_path=$(cd $(dirname $path); pwd ) export MIES_INSTALL_PATH=${mies_path} export LD_LIBRARY_PATH=${MIES_INSTALL_PATH}/lib:${LD_LIBRARY_PATH} export MIES_CONTINUOUS_BATCHING=1 export ATB_OPERATION_EXECUTE_ASYNC=1 export TASK_QUEUE_ENABLE=1 export HCCL_BUFFSIZE=120 # 运行时日志 export ASCEND_SLOG_PRINT_TO_STDOUT=0 export ASCEND_GLOBAL_LOG_LEVEL=3 export ASCEND_GLOBAL_EVENT_ENABLE=0 # 加速库日志 export ATB_LOG_TO_FILE=0 export ATB_LOG_TO_FILE_FLUSH=0 export ATB_LOG_TO_STDOUT=0 export ATB_LOG_LEVEL=ERROR # 模型库日志 export ASDOPS_LOG_TO_FILE=0 export ASDOPS_LOG_TO_STDOUT=0 export ASDOPS_LOG_LEVEL=ERROR # Python日志 export MIES_PYTHON_LOG_TO_FILE=0 export MIES_PYTHON_LOG_TO_STDOUT=0 export MIES_PYTHON_LOG_PATH="${MIES_INSTALL_PATH}"/log/pythonlog.log export MIES_PYTHON_LOG_LEVEL=INFO # 触发重计算的阈值,不设置时默认0.5;阈值范围只能是[0,1),越大越容易触发 export MIES_RECOMPUTE_THRESHOLD=0.5 # 控制流式推理中增量token解码方式的环境变量,范围[0, 50],代表增量token id解码时参考前方多少个token id。 # 数值越低流式推理性能越好,数值越高流式推理解码准确性越高。不设置时流式推理采用全量解码的方式,准确度最高但性能最低。 # 当流式推理对比非流式推理性能没有显著劣化时无需关注此环境变量。 export MIES_TOKENIZER_SLIDING_WINDOW_SIZE=5
cp 模型权重文件所在路径 /data/atb_testdata/weights/llama1-65b-safetensors
source set_env.sh
nohup ./bin/mindieservice_daemon > output.log 2>&1 &
在标准输出流捕获到的文件中,打印如下信息说明启动成功。
Daemon start success!
./bin/mindieservice_daemon
回显如下则说明启动成功。
Daemon start success!