使用EAIS推理PyTorch模型(Python)
如果您初次使用弹性加速计算实例EAIS,可以通过本文内容体验使用EAIS的Python脚本推理PyTorch模型并获得性能加速的完整使用流程,帮助您快速上手EAIS。
前提条件
已注册阿里云账号。注册账号的具体操作,请参见阿里云账号注册流程。
背景信息
本教程将引导您创建一台华东1(杭州)地域,eais.ei-a6.2xlarge规格的EAIS实例,并以公开的resnet50模型和bert-base模型为例,带您体验基于图像分类和NLP的推理场景下,使用EAIS推理PyTorch模型并获得性能加速的完整操作流程。如果您使用EAIS推理过程中遇到性能或者功能问题,请联系EAIS技术支持为您提供定制化的优化方案。
推理方式
EAIS支持使用如下两种方式推理PyTorch模型:
使用EAIS提供的EAIS miniconda环境
EAIS miniconda环境是阿里云基于miniconda开发的EAIS使用环境。在EAIS miniconda环境中,阿里云为您提供了用于测试体验的样例脚本和模型文件。
EAIS miniconda环境为您提供了Python和C++两种推理PyTorch模型的方式,本教程重点介绍使用Python脚本推理PyTorch模型的过程,如需了解C++程序推理PyTorch模型的过程,请参见使用EAIS推理PyTorch模型(C++)。
在您已有的PyTorch模型运行环境中安装EAIS提供的Python软件包
更多信息,请参见用户指南中的使用EAIS推理PyTorch模型(Python)。
推理性能
与GPU实例(NVIDIA T4)相比,使用EAIS推理会明显提升推理的性能。Python脚本使用eais.ei-a6.2xlarge规格的EAIS实例与使用GPU实例(NVIDIA T4)推理的性能对比数据如下表所示。
本文数据仅为示例,具体数据以您的实际推理结果为准。
您也可以参考eais-miniconda软件包中提供的Python脚本,自行测试GPU实例(NVIDIA T4)推理的性能来与EAIS实例进行比较。
推理模型 | eais.ei-a6.2xlarge | GPU实例(NVIDIA T4) | EAIS比GPU实例(NVIDIA T4)提升的性能倍数 |
resnet50 | 2.19 ms | 6.24 ms | 2.85倍 |
bert-base | 5.37 ms | 8.32 ms | 1.55倍 |
步骤一:创建ECS实例
步骤二:创建EAIS实例
登录EAIS控制台。
在左侧导航栏,选择弹性加速计算实例 EAIS > 弹性加速计算实例列表。
单击创建弹性加速计算实例。
在EAIS实例购买页面,选择地域为华东1(杭州)。
设置实例名称为
eais_test
。选择实例规格为eais.ei-a6.2xlarge。
选择专有网络。
选择交换机。
选择安全组。
单击立即购买。
在确认订单页面,选中服务协议,然后单击立即开通。
步骤三:绑定EAIS至ECS实例
单击管理控制台,前往EAIS控制台。
在EAIS实例列表中,单击实例
eais_test
所在操作列下的绑定ECS实例。在绑定ECS实例对话框中,在选择ECS实例列表中,选择待绑定的ECS实例。
单击确定。
EAIS实例列表每15秒自动刷新,当EAIS实例状态由绑定中变为已绑定时,表示EAIS实例绑定成功。
重要EAIS实例仅支持绑定一台ECS实例,且ECS实例仅支持绑定一个EAIS实例。
步骤四:登录ECS实例
在实例列表中,单击实例
eais_test
对应的ECS实例ID,进入该ECS实例控制台。远程登录ECS实例。
具体操作,请参见远程连接ECS实例。
步骤五:搭建运行环境
安装EAIS依赖的cGPU软件包。
说明本操作以ECS实例的操作系统为Ubuntu为例,CentOS或Alibaba Cloud Linux操作系统的cGPU安装操作,请参见用户指南中的使用EAIS推理PyTorch模型(Python)。
执行如下命令,安装cGPU deb软件包。
export cGPU_PACKAGE_VERSION=4.1.0 wget https://aiacc-inference-public.oss-cn-beijing.aliyuncs.com/eais/packages/cgpu_${cGPU_PACKAGE_VERSION}_amd64.deb dpkg -i cgpu_${cGPU_PACKAGE_VERSION}_amd64.deb
执行如下命令,查看cGPU deb软件包安装结果。
dpkg -l | grep cgpu
回显信息中包含cGPU软件包信息,表示cGPU deb软件包安装成功。
下载并激活EAIS miniconda。
执行如下命令,下载并解压eais-miniconda软件包。
wget https://aiacc-inference-public.oss-cn-beijing.aliyuncs.com/eais/packages/eais-miniconda.zip apt-get update && apt-get install -y unzip unzip -q eais-miniconda.zip
执行如下命令,进入eais-miniconda软件包根目录。
cd eais-miniconda/
说明后续操作均会以此为根目录。
执行如下命令,激活EAIS miniconda环境。
source bin/activate
(可选)步骤六:查看EAIS相关信息
如果您想查看EAIS相关信息,只需在激活后的EAIS miniconda环境中,执行eais_smi
命令,即可在回显中查看EAIS实例规格、EAIS GPU使用率等信息,回显示例如下。
步骤七:推理并加速PyTorch模型
执行如下命令,进入Python脚本测试目录。
执行如下命令,使用EAIS推理resnet50模型。
pytorch_resnet50.py
:eais-miniconda软件包中提供的推理脚本样例。../data/models/resnet50.pt
:eais-miniconda软件包中提供的resnet50模型文件。../data/densenet_labels.txt
:eais-miniconda软件包中提供的存放图片类别名称的文件。../data/images/
:eais-miniconda软件包中提供的样例图片路径。执行如下命令,测试使用EAIS推理resnet50模型的性能。
执行如下命令,测试使用EAIS推理bert-base模型的性能。
python pytorch_bert_perf.py \ -m ../data/models/bert-base-uncased.pt
您将从执行结果中获取到bert-base模型的推理延迟数据,部分回显如下。
cd eais/python
python pytorch_resnet50.py \
-m ../data/models/resnet50.pt \
-l ../data/densenet_labels.txt \
../data/images/
参数信息说明如下:
您将从执行结果中获取图片的分类结果信息,部分回显如下。
python pytorch_resnet50_perf.py \
-m ../data/models/resnet50.pt
您将从执行结果中获取到resnet50模型的推理延迟数据,部分回显如下。
(可选)步骤八:解绑EAIS实例
当您完成了推理后,如果不再使用该EAIS实例,或需要绑定其他ECS实例,请进行如下解绑操作。
前往EAIS控制台。
在EAIS实例列表中,单击实例
eais_test
所在操作列下的解绑ECS实例。在解绑ECS实例对话框中,单击确定。
EAIS实例列表每10秒自动刷新,当EAIS实例状态由解绑中变为可绑定时,表示EAIS实例解绑成功。
(可选)步骤九:释放EAIS实例
解绑ECS实例后,您的ECS实例将失去EAIS提供的推理加速服务。若不再使用此EAIS实例,请进行如下操作释放EAIS实例,避免不必要的计费。
前往EAIS控制台。
在EAIS实例列表中,单击实例
eais_test
所在操作列下的释放资源。在释放资源对话框中,单击确定。
EAIS实例将从EAIS实例列表中删除。