使用 ThirdAI 和 AWS Graviton 加速 CPU 上的大规模神经网络训练 |亚马逊网络服务

使用 ThirdAI 和 AWS Graviton 加速 CPU 上的大规模神经网络训练 |亚马逊网络服务

这篇客座文章由 ThirdAI 的 Vihan Lakshman、Tharun Medini 和 Anshumali Shrivastava 撰写。

大规模深度学习最近在众多领域取得了革命性的进步。尽管人工智能领域取得的惊人进展仍然引人注目,但由于需要 GPU 等专用硬件,训练这些模型所需的财务成本和能源消耗已成为关键瓶颈。传统上,即使是中等规模的神经模型也需要昂贵的硬件加速器来进行训练,这限制了有财力充分利用这项技术的组织数量。

ThirdAI Corp. 成立于 2021 年,是一家初创公司,致力于通过算法和软件创新实现人工智能技术民主化,从根本上改变深度学习的经济学。我们开发了一个稀疏深度学习引擎,称为 BOLT,专为在标准 CPU 硬件上训练和部署模型而设计,而不是在 GPU 等昂贵且能源密集型的加速器上。我们的许多客户都有 报告强烈满意 ThirdAI 能够在经济高效的 CPU 基础设施上针对关键业务问题训练和部署深度学习模型。

在这篇文章中,我们研究了 AWS Graviton3 处理器加速 ThirdAI 独特的基于 CPU 的深度学习引擎的神经网络训练的潜力。

高性能 CPU 的优势

在 ThirdAI,我们通过专有的动态稀疏算法在 CPU 上的高效神经网络训练方面实现了这些突破,该算法仅激活给定输入的神经元子集(见下图),从而避免了全密集计算的需要。与其他稀疏神经网络训练方法不同,ThirdAI 使用 局部敏感哈希 为给定输入动态选择神经元,如下面的粗线所示。在某些情况下,我们甚至观察到我们的 基于稀疏 CPU 的模型 训练速度比 GPU 上的同类密集架构更快。

密集的神经结构,用粗线显示选择了哪些神经元

鉴于我们的许多目标客户都在云中运行(其中大多数使用 AWS),我们很高兴尝试 AWS Graviton3 处理器,看看 Amazon 芯片创新带来的令人印象深刻的性价比改进是否会转化为我们独特的工作负载稀疏神经网络训练,从而为客户提供进一步的节省。尽管研究社区和 AWS Graviton 团队在加速方面都取得了令人兴奋的进展 神经网络推理 在CPU实例上,据我们所知,我们ThirdAI是第一个认真研究如何在CPU上高效训练神经模型的人。

正如我们的结果所示,我们观察到,在几个代表性建模工作负载上,AWS Graviton3 的训练速度比同类 Intel 和 NVIDIA 实例显着提高。

实例类型

在我们的评估中,我们考虑了两个类似的 AWS CPU 实例:一个由 Intel Ice Lake 处理器驱动的 c6i.8xlarge 机器和一个由 AWS Graviton7 驱动的 c8g.3xlarge 机器。下表总结了每个实例的详细信息。

虚拟CPU RAM(GB) 处理器 按需价格 (us-east-1)
c7g.8x大 32 64 AWS Graviton3 $ 1.1562 /小时
c6i.8xlarge 32 64 英特尔冰湖 $ 1.36 /小时
g5g.8xlarge(GPU) 32 64 个,具有 16 GB GPU 内存 带有 2 个 NVIDIA T1G GPU 的 AWS Graviton4 处理器 $ 1.3720 /小时

评价一:极端分类

对于我们的第一次评估,我们重点关注极端多标签分类(XMC)的问题,这是一种日益流行的机器学习(ML)范式,在搜索和推荐方面有许多实际应用(包括在 Amazon)。对于我们的评估,我们关注的是公众 Amazon-670K 产品推荐任务,给定一个输入产品,它可以从超过 670,000 个项目的集合中识别出类似的产品。

在本实验中,我们在上述硬件选择上对 ThirdAI 的 BOLT 引擎与 TensorFlow 2.11 和 PyTorch 2.0 进行基准测试:Intel Ice Lake、AWS Graviton3 和 NVIDIA T4G GPU。对于 Intel 和 AWS Graviton 上的实验,我们使用 AWS Deep Learning AMI (Ubuntu 18.04) 版本 59.0。对于 GPU 评估,我们使用 NVIDIA GPU 优化的 Arm64 AMI,可通过 AWS Marketplace 获取。对于本次评估,我们使用 幻灯片模型架构,它既在这种极限分类任务上实现了有竞争力的性能,又在 CPU 上实现了强大的训练性能。为了比较 TensorFlow 和 PyTorch,我们实现了具有密集矩阵乘法的 SLIDE 多层感知器 (MLP) 架构的类似版本。我们使用固定批量大小 256 和学习率为 0.001 训练每个模型 33.6 个 epoch(完全遍历训练数据集)。我们观察到所有模型都达到了 XNUMX% 的相同测试精度。

下图比较了 ThirdAI 的 BOLT 与 TensorFlow 2.11 和 PyTorch 2.0 在 Amazon670k 极限分类基准上的训练时间。所有型号均达到相同的测试精度。我们观察到,AWS Graviton3 显着提高了开箱即用的 BOLT 性能,无需进行自定义,提高了约 40%。 ThirdAI 在 AWS Graviton3 上的 BOLT 的训练速度也比在 GPU 上训练的 TensorFlow 或 PyTorch 模型快得多。请注意,NVIDIA GPU 基准测试中没有 ThirdAI 结果,因为 BOLT 设计为在 CPU 上运行。由于训练时间过长,我们不包括 TensorFlow 和 PyTorch CPU 基准测试。

Amazon 670k 训练时间条形图比较实例 c6i.8xlarge 与 c7g.8xlarge

下表总结了每个处理器/专用处理器 (GPU) 的训练时间和测试精度。

处理器 发动机 训练时间(秒) 测试精度
英特尔 Ice Lake (c6i.8xlarge) BOLT 1470 33.6
AWS Graviton3 (c7g.8xlarge) BOLT 935 33.6
NVIDIA T4G (g5g.8xlarge) TensorFlow 7550 33.6
NVIDIA T4G (g5g.8xlarge) PyTorch 5130 33.6

评测2:Yelp Polarity情感分析

对于我们的第二次评估,我们重点关注流行的 Yelp 极性 情绪分析基准,涉及将评论分类为正面或负面。对于本次评估,我们比较了 ThirdAI 的 通用深度变压器 (UDT) 模型针对微调 蒸馏器 网络,一种压缩的预训练语言模型,可实现接近最先进的性能并减少推理延迟。由于在 CPU 上微调 DistilBERT 模型需要非常长的时间(至少几天),因此我们将 ThirdAI 基于 CPU 的模型与在 GPU 上微调的 DistilBERT 进行基准测试。我们训练所有模型的批量大小为 256,单次遍历数据(一个时期)。我们注意到,通过额外传递数据,我们可以使用 BOLT 获得稍高的准确度,但为了保持一致性,我们在此评估中限制为单次传递。

如下图所示,AWS Graviton3再次大幅加速了ThirdAI的UDT模型训练。此外,UDT 能够以一小部分训练时间实现与 DistilBERT 相当的测试精度,并且无需 GPU。我们注意到最近也开展了一些工作 优化微调 CPU 上的 Yelp 极性。然而,我们的模型仍然实现了更大的效率提升,并避免了预训练的成本,预训练的成本很高,需要使用 GPU 等硬件加速器。

Yelp Polarity C7g 与 c6i 上的训练时间

下表总结了训练时间、测试准确性和推理延迟。

处理器 发动机 型号 训练时间(秒) 测试精度 推理延迟(毫秒)
英特尔 Icelake (c6i.8xlarge) BOLT UDT的 47 93.2 <1
Graviton3 (c7g.8xlarge) BOLT UDT的 29 92.9 <1
T4G GPU (g5g.8xlarge) TensorFlow 蒸馏器 4200 93.3 8.7
T4G GPU (g5g.8xlarge) PyTorch 蒸馏器 3780 93.4 8.3

评估3:多类文本分类(DBPedia)

对于我们的最终评估,我们关注多类文本分类问题,其中涉及为来自两个以上输出类的集合中的给定输入文本分配标签。我们专注于 数据库百科 基准,由 14 个可能的输出类别组成。我们再次发现,与同类 Intel 实例相比,AWS Graviton3 将 UDT 性能提高了大约 40%。我们还看到 BOLT 取得了与在 GPU 上微调的基于 DistilBERT 变压器的模型相当的结果,同时实现了亚毫秒级延迟。

ThirdAI BOLT 在 c7g 与 c6i 上的训练时间

下表总结了训练时间、测试准确性和推理延迟。

处理器 发动机 型号 训练时间(秒) 测试精度 推理延迟(毫秒)
英特尔 Icelake (c6i.8xlarge) BOLT UDT的 23 98.23 <1
Graviton3 (c7g.8xlarge) BOLT UDT的 14 98.10 <1
T4G GPU (g5g.8xlarge) TensorFlow 蒸馏器 4320 99.23 8.6
T4G GPU (g5g.8xlarge) PyTorch 蒸馏器 3480 99.29 8

开始在 AWS Graviton 上使用 ThirdAI

我们设计的 BOLT 软件与所有主要 CPU 架构兼容,包括 AWS Graviton3。事实上,我们无需对代码进行任何自定义即可在 AWS Graviton3 上运行。因此,您可以使用 ThirdAI 在 AWS Graviton3 上进行模型训练和部署,无需额外工作。此外,正如我们最近详细介绍的 研究白皮书,我们开发了一套新颖的数学技术来自动调整与我们的稀疏模型相关的专用超参数,使我们的模型能够立即良好地工作。

我们还注意到,我们的模型主要适用于搜索、推荐和自然语言处理任务,这些任务通常具有大、高维的输出空间和极低推理延迟的要求。我们正在积极致力于将我们的方法扩展到其他领域,例如计算机视觉,但请注意,我们的效率改进目前并未转化为所有机器学习领域。

结论

在这篇文章中,我们研究了 AWS Graviton3 处理器加速 ThirdAI 独特的基于 CPU 的深度学习引擎的神经网络训练的潜力。我们的搜索、文本分类和推荐基准测试表明,与同类 x3 实例相比,AWS Graviton30 可以将 ThirdAI 的模型训练工作负载加速 40-86%,性价比提高近 50%。此外,由于 AWS Graviton3 实例的成本比类似的 Intel 和 NVIDIA 机器更低,并且训练和推理时间更短,因此您可以通过使用更低成本来进一步释放 AWS 即用即付使用模型的价值机器的持续时间较短。

我们对 AWS Graviton3 的价格和性能节省感到非常兴奋,并将希望将这些改进传递给我们的客户,以便他们能够在低成本 CPU 上享受更快的 ML 训练和推理以及改进的性能。作为 AWS 的客户,我们对 AWS Graviton3 允许我们试验模型的速度感到高兴,并且我们期待未来使用 AWS 的更多尖端芯片创新。 引力子技术指南 是评估在 Graviton 上运行的 ML 工作负载时值得考虑的好资源。您还可以尝试 Graviton t4g 实例 免费试用.

本文中的内容和观点属于第三方作者,AWS 不对本文的内容或准确性负责。在撰写博客时,最新的实例是 c6i,因此与 c6i 实例进行了比较。


关于作者

维汉·拉克什曼 – Vihan Lakshman 是 ThirdAI Corp. 的研究科学家,专注于开发资源高效型深度学习系统。在加入 ThirdAI 之前,他曾在亚马逊担任应用科学家,并在斯坦福大学获得本科和硕士学位。维汉还是国家科学基金会研究奖学金的获得者。

塔伦·梅迪尼 – Tharun Medini 是 ThirdAI Corp 的联合创始人兼首席技术官。他在莱斯大学获得了“搜索和信息检索的哈希算法”博士学位。在加入 ThirdAI 之前,Tharun 曾在 Amazon 和 Target 工作。 Tharun 因其研究获得了众多奖项,包括肯尼迪研究所 BP 奖学金、美国印度工程师协会奖学金和莱斯大学研究生奖学金。

安舒马利·施里瓦斯塔瓦 – Anshumali Shrivastava 是莱斯大学计算机科学系副教授。他还是 ThirdAI Corp 的创始人兼首席执行官,该公司致力于通过软件创新将人工智能民主化为商品硬件。他广泛的研究兴趣包括资源节约型深度学习的概率算法。 2018 年,《科学新闻》将他评为 10 岁以下最值得关注的 40 名科学家之一。他是美国国家科学基金会职业奖、空军科学研究办公室青年研究员奖、亚马逊机器学习研究奖和 Adob​​e 数据科学研究奖的获得者。他赢得了众多论文奖项,包括 NIPS 2014 和 MLSys 2022 的最佳论文奖,以及 SIGMOD 2019 的最具可重复性论文奖。他在 CPU 上的高效机器学习技术方面的工作已被《华尔街日报》、《华尔街日报》、纽约时报、TechCrunch、NDTV 等

时间戳记:

更多来自 AWS机器学习