使用 AWS Inferentia2 加速 Hugging Face Transformers
在过去五年中,Transformer 模型 [1] 已成为许多机器学习 (ML) 任务的事实标准,例如自然语言处理 (NLP)、计算机视觉 (CV)、语音等。如今,许多数据科学家和机器学习工程师依赖于流行的 Transformer 架构,如 BERT [2]、RoBERTa [3]、Vision Transformer [4],或 Hugging Face Hub 上超过 130,000 个预训练模型中的任何一个,以最先进的准确性解决复杂的业务问题。
然而,尽管 Transformer 模型非常强大,但在生产环境中部署它们可能具有挑战性。除了通常与模型部署相关的基础架构问题(我们通过 Inference Endpoints 服务在很大程度上解决了这些问题),Transformer 是大型模型,其大小通常超过几个 GB。像 GPT-J-6B、Flan-T5 或 Opt-30B 这样的大型语言模型 (LLM) 的大小在几十 GB,更不用说像 BLOOM 这样的巨型模型了,这是我们自己的 LLM,其大小达到了 350 GB。
将这些模型装入单个加速器可能非常困难,更不用说获得应用程序所需的高吞吐量和低推理延迟了,比如对话式应用程序和搜索。到目前为止,机器学习专家设计了复杂的手动技术来切分大型模型,将它们分布在加速器集群上,并优化其延迟。不幸的是,这项工作非常困难、耗时,并且对于许多机器学习从业者来说是遥不可及的。
在 Hugging Face,我们致力于实现机器学习的民主化,并始终寻求与那些同样相信每个开发者和组织都应该从最先进的模型中受益的公司合作。为此,我们很高兴能与 Amazon Web Services 合作,为 AWS Inferentia 2 优化 Hugging Face Transformers!这是一款全新的专用推理加速器,可提供前所未有的吞吐量、延迟、每瓦性能和可扩展性。
AWS Inferentia2 简介
AWS Inferentia2 是 2019 年推出的 Inferentia1 的下一代产品。由 Inferentia1 驱动的 Amazon EC2 Inf1 实例与基于 NVIDIA A10G GPU 的同类 G5 实例相比,吞吐量提高了 25%,成本降低了 70%,而 AWS 再次通过 Inferentia2 推动了技术极限。
与 Inferentia 相比,新的 Inferentia2 芯片的吞吐量提高了 4 倍,延迟降低了 10 倍。同样,新的 Amazon EC2 Inf2 实例与同类 G5 实例相比,吞吐量提高了 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 倍。
Vision Transformer
这是在不同基础架构设置上运行 ViT-base 的延迟比较。Inferentia2 的延迟比 NVIDIA A10G 低 2 倍,这有可能极大地帮助公司从传统架构(如 CNN)转向 Transformer,用于实时应用。
结论
Transformer 模型已成为许多机器学习任务的首选解决方案。然而,由于其庞大的体积和延迟要求,在生产中部署它们一直具有挑战性。得益于 AWS Inferentia2 以及 Hugging Face 和 AWS 之间的合作,开发人员和组织现在可以利用最先进模型的优势,而无需具备广泛的机器学习专业知识。您可以以低至 0.76 美元/小时的成本开始测试。
初步的基准测试结果令人鼓舞,表明与 Inferentia 和 NVIDIA A10G GPU 相比,Inferentia2 提供了卓越的延迟性能。这一最新突破有望使高质量的机器学习模型能够为更广泛的受众所用,从而为每个人提供 AI 可访问性。