Press "Enter" to skip to content

使用AWS Inferentia2加速Hugging Face Transformers

在过去五年中,Transformer模型[1]已成为许多机器学习(ML)任务的事实标准,例如自然语言处理(NLP)、计算机视觉(CV)、语音等。如今,许多数据科学家和ML工程师依赖于流行的Transformer架构,如BERT[2]、RoBERTa[3]、Vision Transformer[4]或Hugging Face Hub上提供的130,000多个预训练模型,以实现拥有最先进准确性的复杂业务问题的解决方案。

然而,尽管它们的伟大之处,但在生产环境中部署Transformer模型可能具有挑战性。除了通常与模型部署相关的基础设施问题,我们主要通过我们的Inference Endpoints服务解决了这个问题,Transformer是大型模型,其通常超过多GB的标记。大型语言模型(LLM)如GPT-J-6B、Flan-T5或Opt-30B可达数十GB,更不用说像BLOOM这样的巨无霸,我们自家的LLM,其大小达到350GB。

将这些模型适配到单个加速器上可能非常困难,更不用说获得应用程序所需的高吞吐量和低推理延迟,如对话应用程序和搜索。迄今为止,ML专家已经设计了复杂的手动技术来切分大型模型,在加速器集群上分发它们,并优化其延迟。不幸的是,这项工作非常困难、耗时,并且对许多ML从业者来说是无法企及的。

在Hugging Face,我们正在普及ML,并始终寻求与那些相信每个开发者和组织都应受益于最先进模型的公司合作。为此,我们很高兴与亚马逊网络服务(AWS)合作,为AWS Inferentia 2优化Hugging Face Transformers!这是一种新型的用于推断的专用加速器,具有前所未有的吞吐量、延迟、每瓦性能和可扩展性。

介绍AWS Inferentia2

AWS Inferentia2是2019年推出的Inferentia1的下一代。由Inferentia1提供动力,Amazon EC2 Inf1实例的吞吐量比基于NVIDIA A10G GPU的可比G5实例高25%,成本低70%,而Inferentia2则再次突破界限。

新的Inferentia2芯片相比Inferentia提供了4倍的吞吐量增加和10倍的延迟降低。同样,新的Amazon EC2 Inf2实例的吞吐量最多提高2.6倍,延迟降低8.1倍,性能每瓦提高50%,优势明显。Inferentia 2将为您提供最佳的两个方面:高吞吐量的推理成本优化和低推理延迟的应用程序响应时间。

Inf2实例有多种规格,配备了1到12个Inferentia 2芯片。当存在多个芯片时,它们通过超高速的直接Inferentia2到Inferentia2连接进行分布式推理。例如,最大的实例大小inf2.48xlarge拥有12个芯片和足够的内存来加载像GPT-3或BLOOM这样的1750亿参数模型。

幸运的是,这一切都不会增加开发复杂性。通过Optimum Neuron,您无需切分或修改模型。由于在AWS Neuron SDK中的本地集成,只需一行代码即可将您的模型编译为Inferentia 2。您可以在几分钟内进行实验!测试您的模型在Inferentia 2上可能达到的性能,亲眼见证。

说到这里,让我们来展示一下一些Hugging Face模型在Inferentia 2上的运行情况。进行基准测试!

在AWS Inferentia 2上对Hugging Face模型进行基准测试

我们评估了Hugging Face Hub上一些最受欢迎的NLP模型,包括BERT,RoBERTa,DistilBERT以及Vision Transformers等。

第一个基准测试比较了Inferentia、Inferentia 2和GPU的性能。我们在AWS上使用了以下实例类型进行所有实验:

  • Inferentia1 – 由单个Inferentia芯片提供动力的inf1.2xlarge实例。
  • Inferentia2 – 由单个Inferentia2芯片提供动力的inf2.xlarge实例。
  • GPU – 由单个NVIDIA A10G GPU提供动力的g5.2xlarge实例。

注意:我们没有针对GPU环境进行模型优化,模型是以fp32进行评估的。

当涉及到Transformer模型的基准测试时,有两个最常用的指标:

  • 延迟:模型执行单个预测所需的时间(预处理、预测、后处理)。
  • 吞吐量:在固定时间内执行的一次基准配置的执行次数。

我们在不同的设置和模型上考虑了延迟,以了解新的Inferentia2实例的优势和权衡。如果您想自己运行基准测试,我们创建了一个Github存储库,包含所有信息和脚本。

结果

基准测试确认了AWS声称的性能改进可以通过真实的用例和示例进行复现和验证。平均而言,AWS Inferentia2的延迟比NVIDIA A10G GPU快4.5倍,比Inferentia1实例快4倍。

我们对6种不同的模型架构进行了144个实验:

  • 加速器:Inf1、Inf2、NVIDIA A10G
  • 模型:BERT-base、BERT-Large、RoBERTa-base、DistilBERT、ALBERT-base、ViT-base
  • 序列长度:8、16、32、64、128、256、512
  • 批处理大小:1

在每个实验中,我们收集了p95延迟的数据。您可以在此电子表格中找到基准测试的详细信息:HuggingFace:基准测试Inferentia2。

让我们来看一些基准测试的见解。

BERT-base

这是在每个基础设施设置上运行BERT-base的延迟比较,使用对数刻度表示延迟。令人瞩目的是,对于长度不超过256的序列,Inferentia2的性能比其他所有设置都提高了约6倍。

图1. BERT-base p95延迟

Vision Transformer

这是在不同基础设施设置上运行ViT-base的延迟比较。与NVIDIA A10G相比,Inferentia2的延迟性能提高了2倍,有助于公司从传统架构(如CNN)转向用于实时应用的Transformer。

图1. ViT p95延迟

结论

Transformer模型已成为许多机器学习任务的首选解决方案。然而,由于其庞大的大小和延迟要求,将它们部署到生产环境中一直是具有挑战性的。得益于AWS Inferentia2和Hugging Face与AWS之间的合作,开发人员和组织现在可以利用先进模型的好处,而不需要广泛的机器学习专业知识。您可以从0.76美元/小时开始进行测试。

初步基准测试结果是令人鼓舞的,并表明与Inferentia和NVIDIA A10G GPU相比,Inferentia2在延迟性能方面表现优越。这一最新突破承诺将高质量的机器学习模型提供给更广泛的受众,为每个人提供AI的可访问性。

Leave a Reply

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