Amazon Elastic Inference新增支援PyTorch机器学习模型

互联网2021-02-14 10:02:45
最佳答案

AWS现在让用户可以在机器学习服务Amazon SageMaker以及运算服务Amazon EC2中,以Amazon Elastic Inference服务运用PyTorch模型进行预测,而由于Elastic Inference可让用户附加适当的GPU运算资源,不只能够用GPU加速预测工作,付出的成本也低于使用独立GPU执行个体。

PyTorch是脸书在2018年底释出的深度学习框架,由于其採用动态运算图(Dynamic Computational Graph),因此可让开发者简单地运用指令式程式设计方法,以Python开发深度学习模型,AWS提到,使用PyTorch这类框架开发深度学习应用程式,预测阶段可占全部运算资源的90%。

要为执行预测工作,选择适当的执行个体规格并不简单,因为深度学习模型需要不同数量的GPU、CPU和记忆体资源。使用独立GPU执行个体通常过于浪费,虽然速度很快,但因为独立GPU执行个体通常为模型训练工作设计,而大多数预测工作通常都只会是单一输入,即便是尖峰负载也不会用上所有GPU容量,因此可能会造成资源浪费。

Amazon Elastic Inference可让用户在SageMaker和EC2执行个体,附上适当的GPU资源来加速预测工作。因此用户可以选择应用程式需要的CPU和记忆体规格的执行个体,并且额外附加适当的GPU容量,以更有效的方式使用资源,并且降低预测成本。Amazon Elastic Inference服务之前只支援TensorFlow和Apache MXNet框架,而现在还额外多支援PyTorch。

要把PyTorch用在Elastic Inference中,必须要把模型先转换成TorchScript格式。TorchScript是可将PyTorch程式码转换成序列化与最佳化模型的方法,AWS表示,因为PyTorch使用动态运算图大幅简化模型开发的过程,但是这种方法同时也增加模型部署的困难,在生产环境中,模型以静态图(Static Graph)表示较佳,不只使模型可以在非Python环境中使用,而且还可以最佳化其效能和记忆体使用量。

TorchScript便可编译PyTorch模型,使其以非Python的方式表示,能在各种环境中执行,TorchScript也会对模型进行即时(Just-In-Time)图最佳化,使编译过的模型比起原本的PyTorch模型效能还要好。

AWS比较附加Elastic Inference、独立GPU与纯CPU三类型执行个体的延迟与成本。CPU执行个体效能较差,预测延迟最长。独立GPU执行个体的预测效能则最好,速度约是CPU执行个体的7倍。而有使用Elastic Inference的CPU执行个体,因为获得GPU的加速,虽然预测速度仍然比独立GPU执行个体慢,但是比纯CPU执行个体快了近3倍。

而在成本上,纯CPU执行个体的每次预测成本最高,AWS解释,虽然CPU执行个体每小时的成本最低,但因为每次预测的时间较长,反使得单次成本较高,而每次预测价格最低的则是Elastic Inference,还可灵活地分离主机实体和推理加速硬体,组合出最适合应用程式的运算资源。

免责声明:本文由用户上传,如有侵权请联系删除!