容器内部署RAG SDK
本章节指导用户在容器内部署RAG SDK。
容器内运行RAG SDK的用户建议为普通用户。RAG SDK只支持基于Ubuntu基础镜像构建容器。
若从昇腾镜像仓库下载的镜像,请根据镜像使用说明安装相关依赖,镜像内已安装RAG SDK,如果需要更新,需要先卸载再安装,具体操作可参见升级。
安装前准备
- 已经根据安装依赖章节安装所需的依赖。
- 配置源之前,请确保安装环境能够连接网络。
操作步骤
- 获取基础镜像。
- 推荐从昇腾镜像仓库获取RAG SDK镜像。步骤如下:
- 如果不从昇腾镜像仓库获取基础镜像,则用户自己准备一个镜像,步骤如下:
- 获取Dockerfile。Dockerfile中默认指定的安装和运行RAG SDK及相关依赖软件包的用户为普通用户“HwHiAiUser”,如果需要指定为其他用户,请在Dockerfile文件中适配修改。
- 在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
- 执行以下命令,构建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>的取值。
- 运行RAG SDK。
- 执行如下命令运行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功能异常。
- 进入容器。
docker exec -it <mxrag_demo> bash
- 执行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 | +===============================+=================+======================================================+
- 执行如下命令运行RAG SDK容器。
父主题: 安装RAG SDK