由于亚马逊(AWS)对其Amazon S3 PyTorch闪电(Lightning)连接器所做的改进,正在训练大型语言模型(LLM)的AWS客户将能够比以往快40%的速度完成模型检查点(checkpoint)。该公司还对其他文件服务进行了更新,包括Mountpoint、Elastic file System和Amazon S3 on Outposts。
LLM检查点的过程已成为开发生成式人工智能(GenAI)应用程序的最大瓶颈之一。虽然用于训练LLM的数据集相对较小,大约为100GB,但LLM本身非常大,用于训练它们的GPU集群也是很庞大。
在这些庞大的GPU集群上训练大型LLM可能需要几个月的时间,因为模型会一次又一次地检查训练数据,提炼它们的权重。为了保护他们的工作,GenAI开发人员需要定期备份LLM,或者检查它们。
AWS杰出工程师Andy Warfield表示,这有点像20世纪80年代的高性能计算。
Warfield称:“客户有一个庞大的分布式系统来构建模型,并且他们有足够多的主机来处理GPU主机故障。要么是他们自己的软件有问题,要么是服务出了问题。他们在数千台服务器上运行这些东西,对于一些大型LLM来说,一次可能需要几个月。你肯定不想因为GPU出了问题而在两周后丢掉整个工作。”
检查点完成得越快,客户就能越快地重新开始培训他们的LLM和开发GenAI产品或服务。Warfield和他的工程师团队开始寻找加速将这些模型指向亚马逊S3(该公司的大型对象存储)的方法。
这项加速功能是去年秋天在re:Invent上发布的Amazon S3 Connector for PyTorch的更新。连接器提供了一种非常快速的方法在S3和PyTorch之间移动数据,PyTorch是用于开发AI模型(包括GenAI模型)的流行AI框架。
具体来说,PyTorch的Amazon S3连接器现在支持PyTorch闪电,这是框架更快、更容易使用的机器学习版本。连接器使用AWS的公共运行库(Common Runtime, CRT),这是一组开源的客户端库,用于AWS用C语言编写的REST API,其功能类似于“增强版SDK”。
根据Warfield的说法,该连接器提供闪电般的数据传输。事实上,它是如此之快,一开始,他很难相信这一点。
他解释说:“我们的团队正在开发PyTorch连接器,他们正在测试将检查点写入S3的速度。”“他们的基准是,使用带有实例存储的GPU实例。所以他们将检查点写入本地SSD。“
“本地SSD显然相当快。”他继续说道,“所以不太可能在这些检查点上打败本地SSD !”
在调查发生了什么并重新运行测试之后,测试人员被证明是正确的。事实证明,将数据移动到单个SSD,即使是通过内部PCIe总线连接,也比通过网络接口控制器(NIC)卡将数据移动到S3要慢。
他说:“关键在于,固态硬盘实际上是受PCIe通道限制的。”“SSD的PCIe通道比网卡的要少。通过将并行化连接到S3, S3在主机上的PCIe总线上的吞吐量实际上比写入数据的本地SSD更高。这是一个很酷的结果。”
在其他文件系统新闻中,AWS宣称Amazon Elastic file system (Amazon EFS)的性能提高了2倍,这是一种多租户文件系统服务,为posix兼容的应用程序公开了NFS协议。这项服务是AWS于2019年推出的,用户可以根据需要扩大或缩小规模。
EFS客户现在可以期望以高达20GB /s的速度读取文件,并以高达5GB /s的速度向EFS写入文件。该公司表示,这使得EFS更适用于具有高吞吐量文件访问要求的工作负载,例如机器学习、基因组学和数据分析应用程序。
Warfield说:“这只是团队不断努力提高表现的一个例子。”
EFS还不能提供像Amazon FSx这样的Netapp ONTAP系统那样的数据吞吐量,该公司本月早些时候也对其进行了改进。AWS还将ONTAP文件服务的性能调高了2倍,为客户提供了最高72GB /s的吞吐量。
Warfield解释说,FSx NetApp ONTAP和EFS的区别在于,ONTAP文件服务运行在AWS数据中心的专用硬件上,而EFS是一个共享的多租户服务。NetApp团队开发他们的文件系统也已经大约30年了,而EFS大约有15年的历史,他补充说,但EFS正在迅速发展。
“如果你看看我们在过去两年中对EFS所做的声明,特别是,EFS的性能、延迟和吞吐量改进的节奏……它进展得相当快。”
AWS客户使用的另一种将S3连接到应用程序的方法是通过Mountpoint服务,这是CRT的另一个组件,它向外部公开HDFS接口(用于Hadoop MapReduce或Spark作业),并在AWS数据中心内与S3对话。
如今,AWS发布了一个新的Mountpoint,用于Amazon S3容器存储接口(CSI)驱动程序,用于托管容器的Linux的免费开源版本Bottlerocket。新的驱动程序使得在Amazon Elastic Kubernetes Service (Amazon EKS)或自管理Kubernetes集群中运行应用程序的客户可以轻松地将它们连接到S3,而无需更改应用程序代码。
Warfield说:“我们做这件事的全部目的是让你尽可能容易地把你想要的任何工具带到你的数据中,而不必担心这个问题。”
最后,AWS还宣布在Outposts上为Amazon S3添加应用程序缓存,该服务面向在本地运行AWS硬件的客户。在这个版本中,AWS不再需要为从客户到AWS数据中心的每个请求进行往返,从而减少了网络延迟。
AWS宣布这些消息是为了Amazon S3推出18周年纪念日(Pi日)。