更新时间:2024-10-22 GMT+08:00
分享

准备镜像

准备大模型推理适用的容器镜像,包括获取镜像地址,了解镜像中包含的各类固件版本,配置Standard物理机环境操作。

镜像版本

本教程中用到基础镜像地址和配套版本关系如下表所示,请提前了解。

表1 基础容器镜像地址

镜像用途

镜像地址

配套版本

基础镜像

swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc2-py_3.9-hce_2.0.2312-aarch64-snt9b-20240528150158-b521cc0

CANN:cann_8.0.rc2

PyTorch:2.1.0

Step1 创建ECS

下文中介绍如何在ECS中构建一个推理镜像,请参考ECS文档购买一个Linux弹性云服务器。完成网络配置、高级配置等步骤,可根据默认选择,或进行自定义。创建完成后,单击“远程登录”,后续安装Docker等操作均在该ECS上进行。

注意:CPU架构必须选择鲲鹏计算,镜像推荐选择EulerOS。

图1 购买ECS

Step2 安装Docker

  1. 检查docker是否安装。
    docker -v   #检查docker是否安装

    如尚未安装,运行以下命令安装docker。

    yum install -y docker
  2. 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。
    sysctl -p | grep net.ipv4.ip_forward
    如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。
    sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf 
    sysctl -p | grep net.ipv4.ip_forward

Step3 创建镜像组织

在SWR服务页面创建镜像组织。

图2 创建镜像组织

Step4 在ECS中Docker登录

在SWR中单击右上角的“登录指令”,然后在跳出的登录指定窗口,单击复制临时登录指令。在创建的ECS中粘贴临时登录指令,即可完成登录。

图3 复制登录指令

Step5 获取推理基础镜像

建议使用官方提供的镜像部署服务。镜像地址{image_url}参考镜像版本

docker pull {image_url}

Step6 构建ModelArts Standard推理镜像

获取模型软件包和依赖包,并上传到ECS的目录下(可自定义路径),获取地址参考表1

在ModelArts官方提供的基础镜像上,构建一个用于ModelArts Standard推理部署的镜像。

在模型软件包和依赖包的同层目录下,创建并编辑Dockerfile。

vim Dockerfile

Dockerfile内容如下:

FROM swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc2-py_3.9-hce_2.0.2312-aarch64-snt9b-20240528150158-b521cc0

USER root
COPY AscendCloud-*.zip /home/ma-user/
RUN unzip -o /home/ma-user/AscendCloud-3rdLLM-6.3.905-*.zip
RUN unzip -o /home/ma-user/AscendCloud-OPP-6.3.905-*.zip

RUN chmod 755 /home/ma-user/ascend_cloud_ops-1.0.0-py3-none-any.whl /home/ma-user/cann_ops-1.0.0-py3-none-any.whl
RUN pip install /home/ma-user/ascend_cloud_ops-1.0.0-py3-none-any.whl
RUN pip install /home/ma-user/cann_ops-1.0.0-py3-none-any.whl
RUN pip install -r /home/ma-user/llm_inference/requirements.txt
RUN chmod -R 755 /home/ma-user/anaconda3/envs/PyTorch-2.1.0/lib/python3.9/site-packages
ENTRYPOINT sh /home/mind/model/run_vllm.sh

构建镜像。

docker build -t swr.cn-southwest-2.myhuaweicloud.com/<组织名称>/<镜像名称>:<tag> .

参数说明:

  • <组织名称>:Step3中创建的组织名称。
  • <镜像名称>:<tag>:定义镜像名称。示例:llama_ascend_pytorch_2_1:0.5.3

示例:

docker build -t swr.cn-southwest-2.myhuaweicloud.com/GPOUP_NAME/llama_ascend_pytorch_2_1:0.5.3

打印如下信息,表示构建镜像成功。

图4 成功构建镜像

Step7 上传镜像

在ECS服务器中输入Step4登录指令后,使用下列示例命令将Standard镜像上传至SWR。

docker push swr.cn-southwest-2.myhuaweicloud.com/<组织名称>/<镜像名称>:<tag>

参数说明:

  • <组织名称>:Step3中创建的组织名称。
  • <镜像名称>:<tag>:定义镜像名称。示例:llama_ascend_pytorch_2_1:0.5.3

示例:

docker push swr.cn-southwest-2.myhuaweicloud.com/GPOUP_NAME/llama_ascend_pytorch_2_1:0.5.3

打印如下信息,表示上传镜像成功。

图5 成功上传镜像

Step8 注册镜像

镜像上传至SWR成功后,在ModelArts控制台的“镜像管理”页面中单击“注册镜像”

图6 在ModelArts控制台注册镜像

在镜像源中,选择上一步中上传到SWR自有镜像仓中的镜像名,作为模型推理使用的镜像,架构选择ARM,类型选择CPU和ASCEND。

图7 注册镜像

Step9 构建推理代码

提前在ECS中构建推理代码,用于后续在推理生产环境中部署推理服务。

执行GIT安装命令。

sudo yum update
sudo yum install git

解压AscendCloud-3rdLLM-6.3.905-xxx.zip代码包。

unzip AscendCloud-3rdLLM-6.3.905-*.zip

运行推理构建脚本build.sh文件,自动获取ascend_vllm_adapter文件夹中提供的vLLM相关算子代码。

cd llm_inference
bash build.sh

运行完后,在当前目录下会生成ascend_vllm文件夹,即为昇腾适配后的vLLM代码。

将生成的ascend_vllm文件夹从ECS中取出并上传至OBS中。

Step10 通过openssl创建SSL pem证书

在ECS中执行如下命令,会在当前目录生成cert.pem和key.pem,并将生成的pem证书上传至OBS。证书用于后续在推理生产环境中部署HTTPS推理服务。
openssl genrsa -out key.pem 2048

openssl req -new -x509 -key key.pem -out cert.pem -days 1095

相关文档