环境安装与启动服务
前提条件
安装步骤
- 安装模型仓:
- 安装MindIE LLM:
获取MindIE的整包进行安装:
软件包名称:
- Ascend-mindie_1.0.RC3_linux-x86_64.run
- Ascend-mindie_1.0.RC3_linux-aarch64.run
安装MindIE整包代码:
# 安装MindIE整包 chmod +x Ascend-mindie*.run ./Ascend-mindie-{version}_linux-{arch}.run --install --install-path=${working_dir} source ${working_dir}/mindie/set_env.sh
- 安装Triton Inference Server:
gcc版本需支持c++17。
- 下载server代码并重命名为triton_server。
git clone https://github.com/triton-inference-server/server.git triton_server
- 切换分支到r24.02。
cd triton_server git checkout r24.02
- 运行启动脚本。
- 复制以下代码并修改对应路径(15和16行),得到一个.sh文件,本文命名为build_npu.sh。
- 将其放在triton_server的根目录下。
- 执行 bash build_npu.sh。
#!/bin/bash build_type="Release" while getopts "d" opt; do case ${opt} in d) build_type="Debug" ;; \?) echo "Invalid option: -$OPTARG" >&2 exit 1 ;; esac done mkdir -p /home/xxx/triton_server/build cd /home/xxx/triton_server/build cmake -DCMAKE_BUILD_TYPE=$build_type -DCMAKE_INSTALL_PREFIX:PATH=/opt/tritonserver \ -DTRITON_THIRD_PARTY_REPO_TAG=r24.02 \ -DTRITON_COMMON_REPO_TAG=r24.02 \ -DTRITON_CORE_REPO_TAG=r24.02 \ -DTRITON_BACKEND_REPO_TAG=r24.02 \ -DTRITON_VERSION=1.0.0 \ -DTRITON_ENABLE_METRICS_GPU=OFF \ -DTRITON_ENABLE_GPU=OFF \ -DTRITON_CORE_HEADERS_ONLY=OFF \ .. make install
- 编译过程中如果出现报错有包没有安装,请按照提示安装即可。
apt-get install rapidjson-dev # rapidjson apt-get install libboost-dev # boost apt-get install libre2-dev # Re2 apt-get install libb64-dev # b64 apt-get install libnuma-dev # numa apt-get install patchelf # patchelf
- 编译过程中大概率会出现grpc无法下载,导致编译失败的情况。解决如下:(以24.02为例)
- 手动git clone grpc代码。
# 注:git clone前可以将curl的postBuffer设大,笔者配置为20G,按需分配,运行如下指令: # git config --global http.postBuffer 20971520000 cd /home/xxx/triton_server/build/_deps/repo-third-party-build/grpc-repo/src git clone --branch v1.48.0 https://github.com/grpc/grpc.git // 使用哪个版本需要看triton_server/build/_deps/repo-third-party-src/CMakeLists.txt中grpc的git tag cd grpc git submodule update --init --recursive // 下载git子仓库
- 下载git子仓库时可能会有部分子仓库无法下载,需要手动进行。
- 进入到/triton_server/build/_deps/repo-third-party-build/grpc-repo/src/grpc/third_part。
- git clone 上一步没有clone成功的子仓,需要将boringssl的名字换成boringssl-with-bazel。
- 执行 git submodule init && git submodule update,如果都已经下载下来了,屏幕上会打印子仓的路径及节点号,比如 Submodule path 'third_party/googletest': checked out 'c9ccac7cb7345901884aabf5d1a786c。
cd /home/xxx/triton_server/build/_deps/repo-third-party-build/grpc-repo/src/grpc/third_part git clone xxx // 上一步没有git clone下来的子仓 cd .. git submodule init git submodule update
- 修改对应的CMakelist.txt,让其指向本地文件。
cd /home/xxx/triton_server/build/_deps/repo-third-party-src/ vim CMakeLists.txt
- 屏蔽对应的git源,同理,其他git源出现上述问题也同样处理。
ExternalProject_Add(grpc-repo PREFIX grpc-repo # GIT_REPOSITORY "https://gitee.com/Gongen/grpc.git" # GIT_TAG "v1.48.0" SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/grpc-repo/src/grpc" EXCLUDE_FROM_ALL ON CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" TEST_COMMAND "" PATCH_COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/tools/install_src.py --src <SOURCE_DIR> ${INSTALL_SRC_DEST_ARG} --dest-basename=grpc_1.48.0 )
- 编译过程中如果出现boost版本过低的报错提示,运行如下指令安装boost-1.78即可。
wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz tar xvf boost_1_78_0.tar.gz cd boost_1_78_0 ./bootstrap.sh --with-python=/usr/local/bin/python3 ./b2 install
- 手动git clone grpc代码。
- 下载server代码并重命名为triton_server。
- 安装Triton Client:
pip install nvidia-pyindex pip install tritonclient[all]
- 安装MindIE Backend:
- 方法一: 使用已发布的libtriton_mindie.so文件。
在 /opt/tritonserver/backends 目录下创建mindie目录,将libtriton_mindie.so放在该目录下。
- 方法二:使用编译出来的libtriton_mindie.so文件。
- 参考样例代码中的目录结构搭建Triton_MindIE-LLM_Backend代码仓。
- 设置环境变量。
export MINDIE_LLM_HOME_PATH=${mindie_dir}/latest/mindie-llm #mindie-llm安装路径 export TRITON_HOME_PATH=/opt/tritonserver #tritonserver安装路径
- 编译。
cd ${working_dir}/Triton_MindIE-LLM_Backend bash build.sh
- 方法一: 使用已发布的libtriton_mindie.so文件。
启动服务
- 启动Triton Server:
// 设置环境变量 cd ${working_dir}/Triton_MindIE-LLM_Backend/example source set_env.sh // 启动triton服务 bash launch.sh
当出现如下打印时,表示启动成功。
I0807 03:28:54.018305 1434372 grpc_server.cc:2519] Started GRPCInferenceService at 0.0.0.0:8111 I0807 03:28:54.018602 1434372 http_server.cc:4637] Started HTTPService at 0.0.0.0:8110 I0807 03:28:54.060484 1434372 http_server.cc:320] Started Metrics Service at 0.0.0.0:8112
- 用Triton Client发送测试请求:
- 另启动一个窗口,进入和Triton server一样的容器,source与上文同样的环境变量。
- 如果运行单用例,修改client_stream.py中的模型名和权重路径,然后执行如下命令。
python client_stream.py
- 如果跑多用例数据集,执行如下命令。
python submit.py --name llama3_8b --model_path weights/llama3_8b --trace_dataset GSM8K.jsonl
必须配置的参数:
- --name 模型名
- --model_path 模型权重路径
- --trace_dataset 数据集名
父主题: 适配说明