昇腾社区首页
中文
注册

容器内部署RAG SDK

本章节指导用户在容器内部署RAG SDK

容器内运行RAG SDK的用户建议为普通用户。RAG SDK只支持基于Ubuntu基础镜像构建容器。

昇腾镜像仓库下载的镜像请根据镜像使用说明安装相关依赖镜像内已安装RAG SDK如果需要更新,需要先卸载再安装,具体操作可参见升级

安装前准备

  • 已经根据安装依赖章节安装所需的依赖。
  • 配置源之前,请确保安装环境能够连接网络。

操作步骤

  1. 获取基础镜像。
    • 推荐从昇腾镜像仓库获取RAG SDK镜像。步骤如下:
      1. 进入昇腾镜像仓库
      2. 单击“镜像版本”页签。
      3. 单击所需版本的“立即下载”按钮,按照页面提示进行下载。下载的镜像默认运行用户为普通用户“HwHiAiUser”。
    • 如果不从昇腾镜像仓库获取基础镜像,则用户自己准备一个镜像,步骤如下:
      1. 获取Dockerfile。Dockerfile中默认指定的安装和运行RAG SDK及相关依赖软件包的用户为普通用户“HwHiAiUser”,如果需要指定为其他用户,请在Dockerfile文件中适配修改。
      2. 在Dockerfile同级目录下创建package目录,并在package目录下存放安装依赖章节中获取的依赖包,和获取RAG SDK软件包章节中获取的RAG SDK软件包。
        文件存放结构如下示例,其中driver目录为npu-driver驱动安装后的目录,driver默认安装路径为“/usr/local/Ascend/driver/”
        $ tree -L 2
        .
        |-- Dockerfile
        `-- package
            |-- Ascend-cann-kernels-<chip_type>_<version>_linux-<arch>.run
            |-- Ascend-cann-toolkit_<version>_linux-<arch>.run
            |-- Ascend-cann-nnal_<version>_linux-<arch>.run
            |-- Ascend-mindxsdk-mxindex_<version>_linux-<arch>.run
            |-- Ascend-mindxsdk-mxrag_<version>_linux-<arch>.run
            `-- driver
      3. 执行以下命令,构建RAG SDK镜像。
        docker build -t <镜像名称>:<镜像tag> --build-arg http_proxy=<代理> --build-arg https_proxy=<代理> --build-arg ARCH=$(uname -m) --build-arg PLATFORM=<chip_type> -f Dockerfile .

        <chip_type>表示芯片名称,可在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,将查询到的“Name”最后一位数字删除,即是<chip_type>的取值。

  2. 运行RAG SDK
    1. 执行如下命令运行RAG SDK容器。
      docker run -e ASCEND_VISIBLE_DEVICES=<device_id> -itd --name <mxrag_demo>  --net host -v <model_dir>:<model_dir>:ro <镜像名称>:<镜像tag> bash
      • <device_id>:表示NPU设备ID,默认从0开始。如果有多个,中间用英文","隔开。每个容器使用的NPU卡只能独占,否则会报错。可通过执行ls /dev/davinci* |grep -v /dev/davinci_manager |tr -d /dev/davinci命令查询。
      • <mxrag_demo>:表示运行后的容器名称,默认为mxrag_demo。
      • <model_dir>:表示RAG SDK使用的模型存放的上级目录,如/home/data,不能配置为/home和/home/HwHiAiUser,防止宿主机文件挂载覆盖容器中HwHiAiUser家目录文件,导致RAG SDK功能异常。
    2. 进入容器。
      docker exec -it <mxrag_demo> bash
    3. 执行npu-smi info命令检查驱动是否挂载正常。

      如当Health参数的值为OK时,即表示当前芯片的健康状态为正常(以下仅为示例,请以实际查询到的信息为准)。

      +--------------------------------------------------------------------------------------------------------+
      | npu-smi 24.1.rc2                            Version: 24.1.rc2                                          |
      +-------------------------------+-----------------+------------------------------------------------------+
      | NPU     Name                  | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
      | Chip    Device                | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
      +===============================+=================+======================================================+
      | 7       xxx                 | OK              | NA           44                0     / 0             |
      | 0       0                     | 0000:83:00.0    | 0            1851 / 21527                            |
      +===============================+=================+======================================================+
      | 8       xxx                 | OK              | NA           44                0     / 0             |
      | 0       1                     | 0000:84:00.0    | 0            1852 / 21527                            |
      +===============================+=================+======================================================+
      +-------------------------------+-----------------+------------------------------------------------------+
      | NPU     Chip                  | Process id      | Process name             | Process memory(MB)        |
      +===============================+=================+======================================================+
      | No running processes found in NPU 7                                                                    |
      +===============================+=================+======================================================+
      | No running processes found in NPU 8                                                                    |
      +===============================+=================+======================================================+