在亚马逊,有这样一支负责搜索的团队正在利用深度学习技术帮助公司内各个团队从数据中获取智能。它就是M5搜索团队,正在构建大模型以支持亚马逊的机器学习(ML)应用程序。借助亚马逊云科技的服务,M5搜索团队能够运行数百亿参数模型的深度学习实验。M5搜索团队使用多种亚马逊云科技服务构建、训练和部署多模态的大型机器学习模型。如今,M5搜索团队整合了数据,简化了创建大模型的过程,亚马逊各个团队都可以使用这些模型,为他们的机器学习应用程序带来深度学习的强大能力。
利用深度学习赋能亚马逊各团队
作为一家拥有超过160万员工的跨国科技公司,亚马逊由许多不同的团队组成,各团队的业务重点和优先事项也都不尽相同。其中,亚马逊搜索致力于开发产品和服务以提高亚马逊网站上的终端用户体验。亚马逊搜索应用科学和工程负责人Belinda Zeng表示:“亚马逊搜索是连接不同产品的桥梁,能在不同产品中建立协同,助力业务发展。为了解释丰富的数据集信息,我们构建了预训练模型,从而利用深度学习来增强亚马逊的搜索功能。”
(资料图片仅供参考)
M5搜索团队负责亚马逊的发现式学习策略,并构建多模态大模型,支持多语言、多实体和多任务。本质上很多工作是实验性的。团队需要能够快速扩展实验,并迅速进入生产阶段,同时训练数千个模型,每个模型都拥有超过2亿参数,以及在亚马逊云科技上有效地扩展基础设施。要实现这些并不容易,因此M5搜索团队在基础设施解决方案中使用了Amazon EC2,该服务能够为几乎全部工作负载提供安全且可调整的计算容量。亚马逊搜索首席工程师Rejith Joseph表示:“我们选择Amazon EC2是因为它提供了海量最新硬件资源,且资源可轻松获取。”此外,M5搜索团队需要存储许多大型数据集,每个数据集都有数百TB。他们利用Amazon S3处理存储需求。Amazon S3作为对象存储服务,具有行业领先的可扩展性、数据可用性、安全性和高性能。
每月扩展到数千个训练任务
在2020年第四季度,M5搜索团队开始使用亚马逊云科技服务构建、训练和部署其机器学习模型。截至2022年,团队使用各种亚马逊云科技服务,每月扩展至数千个训练任务,涉及大量GPU集群上的PB级数据。除了使用Amazon S3进行数据存储之外,M5搜索团队还使用了Amazon FSx,在云中轻松启动、运行和扩展功能丰富且性能优越的文件系统。该团队还使用了全托管的批处理服务Amazon Batch,可在任何规模下高效运行批处理计算作业。亚马逊搜索工程经理Roshan Makhijani表示:“通过广泛使用Amazon FSx、Amazon EC2和Amazon Batch的服务,我们提高了实验速度。在亚马逊云科技上进行构建非常灵活,我们在不到3天的时间里就可以扩展到新区域,只要新区域有硬件可用。”
从一开始,M5搜索团队就与亚马逊云科技的产品团队合作解决公司的棘手问题。例如,数据密集型训练作业需要海量计算资源,使用跨区域计算是访问这些资源的必要手段,但以前没有实际解决方案能灵活实现跨区域计算。Belinda Zeng表示:“我们与亚马逊云科技紧密合作,开发了一些新功能,实现了跨区域计算,成功解决了这一难题。”此外,团队不断增长的数据需求日益挑战Amazon FSx的极限。通过与亚马逊云科技合作,M5搜索团队解决了所有性能问题,并为持续扩展打下了基础。正是由于这些增强功能,M5搜索团队现在仅需1-2周就可以扩展机器学习基础设施。
团队还使用C++库开发了一种自定义解决方案,以建立跨流媒体的Amazon S3——即在一个区域存储数据并在另一个区域进行流式数据传输——而不影响训练作业的速度。Makhijani表示:“使用Amazon S3,我们实现了我们需要的高吞吐量流媒体解决方案。” 通过选择最优的GPU、CPU以及亚马逊云科技自研设计的高性能机器学习推理芯片Amazon Inferentia,M5搜索团队成功在机器学习推理过程中降低成本并优化性能。Joseph表示:“不同模型在不同硬件上能提供的吞吐量有所不同,因此,硬件的选择可以帮助我们扩展模型架构,并针对多种类型的硬件进行优化,同时控制成本。”此外,团队在EC2 UltraClusters中部署了Amazon EC2 P4d实例,这些实例由云端高性能计算、网络和云存储构成,以获得最佳的计算和通信吞吐量。亚马逊云科技深度学习AMI和深度学习容器提供了优化且安全的机器学习框架和工具,使机器学习从业者能够在云上加速深度学习,从而简化了EC2实例的配置和部署,并实现了扩展。在解决方案中,团队还使用了Amazon EC2实例的网络接口Elastic Fabric Adapter(EFA),客户可以借此在亚马逊云科技上大规模运行需要高度跨节点通信的应用程序。
此外,M5搜索团队在亚马逊云科技上使用开源深度学习框架PyTorch,用以简化机器学习模型开发并将模型部署到生产中。具体而言,团队试验了多种PyTorch库,如分布式数据并行和Amazon S3插件,以及PyTorch Profiler和完全分片数据并行等工具进行分布式训练。如今,亚马逊各部门都可以利用深度学习的强大功能,以上能力的运用几乎无所不在。例如,M5搜索团队开发了一种机器学习模型,能够准确更正客户在搜索过程中的拼写错误,从而改善搜索体验。Zeng表示:“机器学习应用能够帮助系统准确解读客户的真实意图,并提供多样化的相关推荐列表,这些功能都得益于我们预训练模型中丰富而细致的信息。”
持续提升效率
亚马逊搜索现在已经拥有了大规模构建机器学习模型的技术。下一步,团队计划持续改进其全球集群以提高生产力和使用效率。团队还将使用新的Amazon EC2实例匹配不同的模型,既用于训练,也用于推理。M5搜索团队将继续与亚马逊云科技合作,优化其基础设施的弹性,提高生产力,并降低训练大型模型的前置成本。Joseph表示:“通过使用亚马逊云科技持续提升效率,我们可以释放深度学习和人工智能的无限潜能,最终让我们的客户从中受益。”