环境准备
前提条件
安装步骤
- 安装Rust与必要软件包。
# 对于ARM 64位CPU为aarch64,对于X86 64位CPU可将下面指令的aarch64替换为x86_64 wget https://static.rust-lang.org/dist/rust-1.81.0-aarch64-unknown-linux-gnu.tar.gz --no-check-certificate tar -xvf rust-1.81.0-aarch64-unknown-linux-gnu.tar.gz cd rust-1.81.0-aarch64-unknown-linux-gnu bash install.sh sudo apt update apt install pkg-config
- 设置相关环境变量。
- 首先在命令行里运行python,通过torch.__file__的路径确认protoc所在目录,以Python 3.10.2为例:
Python 3.10.2 (main, Sep 23 2024, 08:51:58) [GCC 9.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import torch >>> torch.__file__ '/usr/local/python3.10.2/lib/python3.10/site-packages/torch/__init__.py'
- 控制台输出的__init__.py所在目录的子文件夹bin下即为Protoc的放置路径。随后将Cargo的可执行文件目录和Protoc目录导出到$PATH(在进行下一步骤前该目录可能为空或不存在):
# Cargo编译出的可执行文件目录 export PATH=$PATH:~/.cargo/bin/ # protoc所在目录 export PATH=/usr/local/python3.10.2/lib/python3.10/site-packages/torch/bin:$PATH
- 首先在命令行里运行python,通过torch.__file__的路径确认protoc所在目录,以Python 3.10.2为例:
- 参照参考代码设置文件目录与代码内容,在Tgi-MindIE目录下运行install.sh命令进行环境安装与代码编译。脚本如下:
bash install.sh
安装完成后,可检查可执行文件和安装包是否已存在。
- 在~/.cargo/bin/目录下包括两个可执行文件:text-generation-launcher和text-generation-router。
ll ~/.cargo/bin/ -rwxr-xr-x 1 root root 22714304 Nov 8 15:51 text-generation-launcher* -rwxr-xr-x 1 root root 113330192 Nov 8 15:49 text-generation-router*
- 已安装两个python包:text-generation-server和tgi_npu。
pip show text-generation-server Name: text-generation-server Version: 2.0.4 Summary: Text Generation Inference Python gRPC Server Home-page: Author: Olivier Dehaene Author-email: olivier@huggingface.co
pip show tgi_npu Name: tgi-npu Version: 0.1.0 Summary: NPU MindIE Adapter for TGI v2.0.4
在安装TGI v0.9.4版本的过程中,如果遇到text-generation-server 0.9.4所依赖的huggingface-hub、safetensors、tokenizers、transformers版本与实际安装版本不符的提示报错,可忽略,这些报错不影响正常功能的使用。
- 在~/.cargo/bin/目录下包括两个可执行文件:text-generation-launcher和text-generation-router。
- 安装并启动Nginx。
apt update apt install nginx service nginx start
- 编辑tgi代理配置文件。
vi /etc/nginx/sites-available/tgi_proxy
将以下内容粘贴至配置文件tgi_proxy。server { listen 12346 ssl; # 设置Nginx侦听端口并启用SSL,HTTPS默认端口为443;注意,此端口需要与启动TGI服务端口不一致,发送请求时请指定使用此端口号 (根据使用需求修改) server_name localhost; # 设置Nginx服务器名称,此处使用本机IP地址(等价于127.0.0.1);注意,发送请求时请指定使用此名称(根据使用需求修改) ssl_certificate /path/to/your/certificate.crt; # 此处填写用于Nginx服务的证书(受信任的机构签发的crt文件)路径(根据实际路径修改) ssl_certificate_key /path/to/your/key.key; # 此处填写与证书相匹配的私钥(证书配套的key文件)路径(根据实际路径修改) location / { proxy_pass http://127.0.0.1:12347; # 此处填写启动TGI服务所使用的IP地址和端口(根据使用需求修改) proxy_set_header Host $host; # 保留原始主机头信息(无需修改) proxy_set_header X-Real-IP $remote_addr; # 向后端服务传递客户端的IP地址(无需修改) proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递请求所经过的代理链信息(无需修改) proxy_set_header X-Forwarded-Proto $scheme; # 传递原始请求的协议类型(无需修改) } }
- 通过创建符号链接启用tgi_proxy配置文件并重启Nginx,启动TGI服务前需确保Nginx服务启动,否则仅支持基于HTTP协议的推理服务。
ln -s /etc/nginx/sites-available/tgi_proxy /etc/nginx/sites-enabled/ service nginx restart
父主题: TGI