Press "Enter" to skip to content

使用AWS专门构建的加速器,将您的机器学习工作负载的能耗降低高达90%

机器学习(ML)工程师传统上专注于在模型训练和部署成本与性能之间取得平衡。越来越多地,可持续性(能源效率)正在成为客户的另一个目标。这很重要,因为训练ML模型,然后使用训练好的模型进行预测(推理)可能是高度耗能的任务。此外,我们周围的越来越多的应用程序都被注入了ML,每天都有新的ML驱动的应用程序被构思出来。一个流行的例子是OpenAI的ChatGPT,它由最先进的大型语言模型(LMM)提供动力。作为参考,早期的LMM GPT-3有1750亿个参数,并需要在数千个加速处理器的集群上进行数月的不间断培训。Carbontracker的研究估计,从头开始训练GPT-3可能会排放高达85公吨的二氧化碳当量,使用专门的硬件加速器集群。

AWS使ML从业者降低其工作负载对环境的影响的几种方法。一种方法是通过提供关于为可持续性构建AI/ML工作负载的指导。另一种方法是提供托管ML培训和编排服务,例如Amazon SageMaker Studio,该服务在不使用时自动拆除和扩展ML资源,并提供一系列现成的工具,节省成本和资源。另一个主要的推动因素是为训练和部署ML模型开发节能高效、专用的加速器。

本文的重点是将硬件作为可持续ML的杠杆。我们介绍了AWS最近进行的性能和功率实验的结果,这些实验量化了当您将深度学习工作负载从其他推理和训练优化的加速Amazon Elastic Compute Cloud(Amazon EC2)实例迁移到AWS Inferentia和AWS Trainium时,您可以期望的能源效率收益。

可持续ML的AWS Inferentia和AWS Trainium

为了为您提供AWS Inferentia和AWS Trainium在实际应用中节约能源潜力的实际数字,我们进行了几个功率绘图实验。我们设计这些基准测试时考虑了以下关键标准:

  • 首先,我们希望确保捕获测试工作负载所归因的直接能源消耗,包括ML加速器以及计算、内存和网络。因此,在我们的测试设置中,我们在那个级别上测量功率。
  • 其次,在运行培训和推理工作负载时,我们确保所有实例都在其各自的物理硬件限制下运行,并在达到该限制后才进行测量,以确保可比性。
  • 最后,我们希望确信,在实际的现实世界应用中可以实现本文报告的节能效果。因此,我们使用常见的客户启发的ML用例进行基准测试和测试。

结果在以下章节中报告。

推理实验:使用LayoutLM进行实时文档理解

与培训相反,推理是一个连续的、无限制的工作负载,没有定义的完成点。因此,推理占据了ML工作负载的整个生命周期中大量的资源消耗。正确处理推理是实现高性能、低成本和可持续性(更好的能源效率)的关键。对于推理任务,客户通常有兴趣实现一定的推理速率以跟上摄取需求。

本文介绍的实验受到实时文档理解用例的启发,这是银行或保险等行业的常见应用程序(例如,用于索赔或申请表处理)。具体而言,我们选择了LayoutLM,这是一个预训练的变换器模型,用于文档图像处理和信息提取。我们设定了每小时1,000,000个推理的目标SLA,这通常被认为是实时的价值,并指定两个能够满足此要求的硬件配置:一个使用Amazon EC2 Inf1实例,具有AWS Inferentia,另一个使用用于推理任务优化的可比加速EC2实例。在整个实验过程中,我们跟踪几个指标,以衡量两种硬件配置的推理性能、成本和能源效率。结果呈现在以下图中。

使用AWS专门构建的加速器,将您的机器学习工作负载的能耗降低高达90% 机器学习 第1张

推理基准测试的性能、成本和能源效率结果

AWS Inferentia提供了6.3倍的推理吞吐量。因此,使用Inferentia,您可以在更少的实例上运行相同的实时LayoutLM文档理解工作负载(6个AWS Inferentia实例与33个其他推理优化的加速EC2实例,相当于减少82%),在此过程中使用不到十分之一的能量(-92%),同时实现显著的每个推理成本降低(每百万推理的成本为2美元,相当于成本降低了91美元%)。

训练实验:从头开始训练BERT大型模型

训练与推理相反,是一个重复频率较低的有限过程。ML工程师通常对高集群性能感兴趣,以减少训练时间,同时控制成本。能源效率是一个次要(但日益增长)的关注点。使用AWS Trainium,没有权衡决策:ML工程师可以从高训练性能中受益,同时优化成本并减少环境影响。

为了说明这一点,我们选择BERT大型模型,这是一种广泛用于自然语言理解用例(如基于聊天机器人的问题回答和对话响应预测)的流行语言模型。训练一个表现良好的BERT大型模型通常需要处理4.5亿个序列。我们比较两个集群配置,每个配置都有16个实例的固定大小,可以在不到一天的时间内从头训练BERT大型模型(处理4.5亿个序列)。第一个使用传统的加速EC2实例。第二个设置使用具有AWS Trainium功能的Amazon EC2 Trn1实例。同样,我们以训练性能、成本和环境影响(能源效率)为基准来测试两个配置。结果如下图所示。

使用AWS专门构建的加速器,将您的机器学习工作负载的能耗降低高达90% 机器学习 第2张

训练基准测试的性能、成本和能源效率结果

在实验中,AWS Trainium-based实例在每小时处理序列方面的性能超过了相似的训练优化加速EC2实例的1.7倍,将总训练时间缩短了43%(与相似的加速EC2实例相比,2.3小时与4小时)。因此,当使用Trainium-based实例集群时,相对于相同大小的相似加速EC2实例集群,从头训练BERT Large的总能源消耗约低29%。同样,这些性能和能源效率的优势也带来了显着的成本改进:在Trainium实例上训练BERT ML工作负载的成本约降低了62%(每次完整训练的成本为美元787,相对于美元2091)。

开始使用AWS面向ML的专用加速器

尽管这里进行的所有实验都使用自然语言处理(NLP)领域的标准模型,但AWS Inferentia和AWS Trainium在许多其他复杂模型体系结构方面表现出色,包括LLM和用户正在构建的最具挑战性的生成式AI体系结构(例如GPT-3)。这些加速器在超过100亿个参数的模型或计算视觉模型(例如稳定扩散)方面表现特别出色(有关更多详细信息,请参见模型体系结构适配指南)。实际上,我们的许多客户已经在广泛的ML用例中使用Inferentia和Trainium。

要在基于AWS Inferentia和AWS Trainium的实例上运行端到端的深度学习工作负载,可以使用AWS Neuron。Neuron是一个端到端的软件开发工具包(SDK),包括深度学习编译器、运行时和工具,这些工具与最流行的ML框架(如TensorFlow和PyTorch)本地集成。您可以使用Neuron SDK将现有的TensorFlow或PyTorch深度学习ML工作负载轻松移植到Inferentia和Trainium上,并使用相同的知名ML框架构建新模型。为了更容易的设置,可以使用我们的深度学习Amazon Machine Images(AMI),这些AMI带有许多所需的软件包和依赖项。更简单的方法:您可以使用Amazon SageMaker Studio,在Inferentia和Trainium上本地支持TensorFlow和PyTorch(请参见aws-samples GitHub存储库以获取示例)。

最后一点说明:虽然Inferentia和Trainium是专为深度学习工作负载而设计的,但许多不太复杂的ML算法也可以在基于CPU的实例上表现良好(例如XGBoost和LightGBM,甚至一些CNN)。在这些情况下,迁移到AWS Graviton3可能会显着降低ML工作负载的环境影响。AWS Graviton-based实例的能源效率比相似的加速EC2实例高60%。

结论

有一个普遍的误解,认为在可持续和节能的情况下运行机器学习工作负载意味着在性能或成本上做出牺牲。借助于AWS专为机器学习构建的加速器,ML工程师无需做出这种妥协。相反,他们可以在高度专业化的深度学习硬件上运行其深度学习工作负载,例如AWS Inferentia和AWS Trainium,这些硬件明显优于可比较的加速EC2实例类型,同时提供更低的成本、更高的性能和更好的能源效率,高达90%。要开始在Inferentia和Trainium上运行您的ML工作负载,请查看AWS Neuron文档或启动其中一个样例笔记本。您还可以观看AWS re:Invent 2022关于可持续性和AWS硅(SUS206)的演讲,其中涵盖了本文中讨论的许多主题。

Leave a Reply

Your email address will not be published. Required fields are marked *