昇腾社区首页
中文
注册

环境准备

前提条件

  • 已参见《MindIE安装指南》中“安装驱动和固件”章节完成驱动和固件的安装。
  • 已参见《MindIE安装指南》中“安装开发环境”章节完成CANN、Python 3.10.2、PyTorch 2.1.0框架和Torch_NPU 2.1.0插件的安装。
  • 已参见《MindIE安装指南》中“物理机安装MindIE”章节完成MindIE的安装。

安装步骤

  1. 安装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
  2. 设置相关环境变量。
    • 首先在命令行里运行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
  3. 参照参考代码设置文件目录与代码内容,在Tgi-MindIE目录下运行install.sh命令进行环境安装与代码编译。脚本如下:
    bash install.sh

    安装完成后,可检查可执行文件和安装包是否已存在。

    1. 在~/.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*
    2. 已安装两个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版本与实际安装版本不符的提示报错,可忽略,这些报错不影响正常功能的使用。

  4. 安装并启动Nginx。
    apt update
    apt install nginx
    service nginx start
  5. 编辑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; # 传递原始请求的协议类型(无需修改)
        }
    }
  6. 通过创建符号链接启用tgi_proxy配置文件并重启Nginx,启动TGI服务前需确保Nginx服务启动,否则仅支持基于HTTP协议的推理服务。
    ln -s /etc/nginx/sites-available/tgi_proxy /etc/nginx/sites-enabled/
    service nginx restart