使用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++)

说明

EAIS支持通过EAIS miniconda环境使用,也支持在您已有的PyTorch模型运行环境中安装EAIS提供的Python软件包使用。更多信息,请参见用户指南中的使用EAIS推理PyTorch模型(Python)

步骤一:创建ECS实例

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

    说明

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

  2. 创建一台专有网络类型的ECS实例,来作为EAIS实例的绑定目标。

    具体操作,请参见创建ECS实例

步骤二:创建EAIS实例

  1. 登录EAIS控制台

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

  3. 单击创建弹性加速计算实例

    eais控制台创建按钮
  4. 在EAIS实例购买页面,选择地域华东1(杭州)

    eais地域选择
  5. 设置实例名称eais_test

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

    eais规格选择
  7. 选择专有网络eais vpc选择

  8. 选择交换机eais 交换机选择

  9. 选择安全组eais安全组选择

  10. 单击立即购买

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

步骤三:绑定EAIS至ECS实例

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

    eais 购买成功
  2. 在EAIS实例列表中,单击实例eais_test所在操作列下的绑定ECS实例eais 可绑定

  3. 绑定ECS实例对话框中,在选择ECS实例列表中,选择待绑定的ECS实例。

    eais 绑定
  4. 单击确定

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

    eais 已绑定
    说明

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

步骤四:登录ECS实例

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

    ECS ID
  2. 远程登录ECS实例。

    具体操作,请参见远程连接ECS实例2021-08-19_10-38-32

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

  1. 执行如下命令,下载eais-miniconda软件包。

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

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

    cd eais-miniconda/
    说明

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

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

    source bin/activate

(可选)步骤六:查看EAIS相关信息

如果您想查看EAIS相关信息,只需在激活后的EAIS miniconda环境中,执行eais_smi命令,即可在回显中查看EAIS实例规格、EAIS GPU使用率等信息,回显示例如下。eais_smi工具查看硬件信息

步骤七:推理并加速PyTorch模型

  1. 执行如下命令,进入Python脚本测试目录。

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

  4. 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软件包中提供的样例图片路径。

    您将从执行结果中获取图片的分类结果信息,部分回显如下。使用EAIS推理PyTorch模型并加速1

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

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

    您将从执行结果中获取到resnet50模型的推理延迟数据,部分回显如下。使用EAIS推理PyTorch模型并加速2

    说明

    EAIS默认开启神龙AI加速引擎AIACC推理加速功能。

  7. 执行如下命令,关闭EAIS提供的AIACC推理加速功能,并测试使用EAIS推理resnet50模型的性能。

  8. ENABLE_AIACC_TORCH=false \
    python pytorch_resnet50_perf.py \
      -m ../data/models/resnet50.pt

    您将从执行结果中获取到resnet50模型的推理延迟数据,部分回显如下。 使用EAIS推理PyTorch模型并加速3从结果中可以看出,关闭AIACC推理加速功能后,resnet50模型的推理性能相比于开启加速之前的4.01ms降低一倍以上。

(可选)步骤八:解绑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控制台

  2. 在实例列表中,单击实例eais_test所在操作列下的释放资源

    2021-08-19_10-40-21
  3. 释放资源对话框中,单击确定

    实例将从控制台的实例列表中删除。

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