首页 >弹性加速计算实例EAIS >快速入门 >使用EAIS推理PyTorch模型(Python)

使用EAIS推理PyTorch模型(Python)

如果您初次使用弹性加速计算实例EAIS,可以通过本文内容体验使用EAIS的Python脚本推理PyTorch模型并获得性能加速的完整使用流程,帮助您快速上手EAIS。

背景信息

本教程将引导您创建一台华南1(深圳)地域,eais.ei-a6.2xlarge规格的EAIS实例,并以公开的resnet50模型为例,带您体验基于图像分类的推理场景下,使用EAIS推理PyTorch模型并获得性能加速的完整操作流程。

该方式配合了EAIS miniconda环境,EAIS miniconda环境是阿里云基于miniconda开发的EAIS使用环境。在EAIS miniconda环境中,阿里云为您提供了用于测试体验的样例脚本和模型文件。

EAIS miniconda环境为您提供了Python和C++两种推理PyTorch模型的方式,本教程重点介绍使用Python脚本推理PyTorch模型的过程,如需了解C++程序推理PyTorch模型的过程,请参见使用EAIS推理PyTorch模型(C++)

步骤一:创建ECS实例

  1. 登录并前往ECS实例创建页

    说明

    如果未注册阿里云账号,请先注册账号。具体操作,请参见阿里云账号注册流程

  2. 创建一台专有网络类型的按量计费ECS实例,来作为EAIS实例的绑定目标。具体操作,请参见创建ECS实例

步骤二:创建EAIS实例

  1. 登录EAIS控制台

  2. 在左侧导航栏,选择弹性加速计算实例 EAIS > 弹性加速计算实例列表

  3. 单击创建弹性加速计算实例,跳转至购买页面。

    创建EAIS
  4. 选择地域和可用区华南1(深圳)

    地域及可用区
  5. 设置实例名称eais_test

    实例名称
  6. 选择实例规格eais.ei-a6.2xlarge

    实例规格
  7. 单击立即购买

  8. 确认订单页面,选中服务协议,然后单击立即开通

    购买EAIS

步骤三:绑定EAIS至ECS实例

  1. 单击管理控制台,前往EAIS控制台

    管理控制台
  2. 在实例列表中,单击实例eais_test所在操作列下的绑定ECS实例

    2021-08-19_10-32-37
  3. 绑定ECS实例对话框的选择ECS实例中,选择要绑定的目标ECS实例。

    2021-08-19_10-34-43
  4. 单击确定

    实例列表每10秒自动刷新,当实例状态由绑定中变为已绑定,表示实例绑定成功。

    2021-08-19_10-31-17
    说明

    EAIS实例仅支持绑定一台ECS实例,且ECS实例仅支持绑定一个EAIS实例。

步骤四:下载EAIS miniconda环境并激活

  1. 在实例列表中,单击实例eais_test对应的ECS实例ID,进入该ECS实例控制台。

    ECS ID
  2. 远程登录ECS实例,具体操作,参见远程连接ECS实例

    2021-08-19_10-38-32
  3. 执行如下命令,下载eais-miniconda软件包。

    wget https://aiacc-inference-public.oss-cn-beijing.aliyuncs.com/eais/packages/eais-miniconda.zip
  4. 执行如下命令,解压eais-miniconda软件包。

    apt-get update && apt-get install -y zip
    unzip eais-miniconda.zip
  5. 执行如下命令,进入eais-miniconda软件包根目录。

    cd eais-miniconda/
    说明

    后续操作均会以此为根目录。

  6. 执行如下命令,激活EAIS miniconda环境。

    source bin/activate

步骤五:使用EAIS推理PyTorch模型并加速

  1. 使用Python软件包推理Pytorch模型。

    1. 执行如下命令,启动EAIS服务进程。

      bin/entrypoint.py start
    2. 执行如下命令,进入Python脚本测试目录。

      pushd eais/python
    3. 执行如下命令,使用EAIS推理resnet50模型。

      python pytorch_resnet50.py \
        -m ../data/models/resnet50.pt \
        -l ../data/densenet_labels.txt \
        ../data/images/

      参数信息说明如下:

      • pytorch_resnet50.py:eais-miniconda软件包中提供的推理脚本样例。

      • ../data/models/resnet50.pt:eais-miniconda软件包中提供的resnet50模型文件。

      • ../data/densenet_labels.txt:eais-miniconda软件包中提供的存放图片类别名称的文件。

      • ../data/images/:eais-miniconda软件包中提供的样例图片路径。

      您将从执行结果中获取图片的分类结果信息,部分回显如下:2022-03-31_14-00-30

    4. 执行如下命令,测试使用EAIS推理resnet50模型的性能。

      python pytorch_resnet50_perf.py \
        -m ../data/models/resnet50.pt

      您将从执行结果中获取到resnet50模型的推理延迟数据,部分回显如下:2022-03-31_14-11-56

    5. 体验完该方式后,您需要关闭EAIS服务进程。执行如下命令,先回退至初始工作路径。

      popd
    6. 执行如下命令,关闭EAIS服务进程。

      bin/entrypoint.py stop
  2. 使用Python软件包加速Pytorch模型推理。

    1. 执行如下命令,重启EAIS服务进程,并开启EAIS提供的加速功能。

      bin/entrypoint.py restart \
        --eais-environ=ENABLE_AIACC_TORCH=true,AIACC_TORCH_MODE=normal
    2. 执行如下命令,进入Python脚本测试目录。

      pushd eais/python
    3. 执行如下命令,测试使用EAIS推理resnet50模型并加速后的性能。

      python pytorch_resnet50_perf.py \
        -m ../data/models/resnet50.pt

      将从执行结果中获取到resnet50模型的推理延迟数据,部分回显如下:2022-03-31_14-17-45从结果中可以看出,开启EAIS模型推理加速功能后,resnet50模型的推理延迟相比于未开启加速之前的10.37ms降低了一倍以上。

    4. 体验完该方式后,您需要执行如下命令,回退至初始工作路径。

      popd
    5. 执行如下命令,关闭EAIS服务进程。

      bin/entrypoint.py force_stop

步骤六:解绑EAIS实例

当您完成了推理后,如果不再使用该EAIS实例,或需要绑定其他ECS实例,请进行如下解绑操作。

  1. 前往EAIS控制台

  2. 在实例列表中,单击实例eais_test所在操作列下的解绑ECS实例

    2021-08-19_10-39-31
  3. 解绑ECS实例对话框中,单击确定

    实例列表每10秒自动刷新,当实例状态由解绑中变为可绑定时,表示实例解绑成功。

步骤七:释放EAIS实例

解绑ECS实例后,您的ECS实例将失去EAIS提供的推理加速服务。若不再使用此EAIS实例,请进行如下释放实例操作,避免不必要的计费。

  1. EAIS控制台的实例列表中,单击实例eais_test所在操作列下的释放资源

    2021-08-19_10-40-21
  2. 释放资源对话框中,单击确定,实例将从控制台的实例列表中删除。

阿里云首页 弹性加速计算实例EAIS 相关技术圈