为Roblox元宇宙扩展GPU基础设施与用大语言模型

为Roblox元宇宙扩展GPU基础设施与用大语言模型

关键字: [Amazon Web Services re:Invent 2024, 亚马逊云科技, 生成式AI, Unicorn, Gpu Scheduling, Eks Cluster, Ai Platform, Roblox Experiences, Scene Generation, Model Registry, Gpu Access, Gpu Utilization, Gpu Consolidation, Gpu Efficiency, Dynamic Rescheduling]

导读

Roblox作为最大的在线元宇宙平台之一,近年来经历了前所未有的增长,吸引了数百万用户进入其沉浸式虚拟世界。如此庞大的用户基础,要为所有玩家确保无缝和引人入胜的体验,需要大量的计算资源,特别是用于渲染复杂的3D环境和促进实时互动。深入了解Roblox预测GPU需求的方法,这使得主动资源配置和高效利用成为可能。进一步了解在扩展GPU基础设施和使用大型语言模型(LLMs)于元宇宙应用方面的挑战和机遇,以满足其元宇宙平台不断增长的需求。

演讲精华

以下是小编为您整理的本次演讲的精华。

在亚马逊云科技 re:Invent 2024活动上的精彩演讲中,Roblox代表Danny Gupil揭示了该公司在EKS(Elastic Kubernetes Service)集群环境中优化GPU调度的非凡历程。Gupil首先提供了关于人工智能和Roblox的背景信息,阐明Roblox是一个创作平台和MLC 3D世界,一个充满活力的创作者社区利用Roblox Studio应用程序为玩家打造身临其境的体验。

Roblox的人工智能应用涵盖了广泛的用例,包括文本和语音过滤、不当行为检测和处理创作者的滥用报告等安全功能。此外,Roblox还采用人工智能进行自动货币同步、头像设置、照片到头像转换以及针对主页、好友推荐、搜索和发现功能的推荐系统。值得注意的是,Roblox目前正在开发一个令人兴奋的场景生成功能,该功能将使创作者能够从文本提示生成完整的Roblox体验,这体现了该公司的创新精神。

Gupil阐明Roblox的总体目标是通过提供从构思到生产的黄金路径、全面的工具和最佳实践,使人工智能民主化,让机器学习工程师能够以经济高效的方式运作。这包括提供开发环境(如Jupyter笔记本和Visual Studio)进行模型开发、模型注册表用于推送和服务模型,以及为批处理或实时推理提供模型服务的能力。

Roblox的机器学习工程师需要GPU访问权限,用于交互式工作、长时间运行的训练或批处理推理作业,以及自动扩展功能,以适应批处理作业和实时流量模式。然而,Roblox在GPU调度方面遇到了一些挑战,可追溯到2020年。首先,广泛采用的容器编排平台Kubernetes并非为人工智能工作负载而设计,它旨在将工作负载分布在多个节点上,这与人工智能应用的需求存在差异。

其次,并非所有GPU类型都是平等的,例如T4和A100 GPU之间存在显著的性能差异。然而,Kubernetes将这些GPU类型视为相同,未能考虑它们固有的差异。第三,Roblox的团队受到预算和成本约束,需要明智地分配资源。第四,云提供商的资源是有限的,按需获取特定GPU类型变得越来越具有挑战性,这种限制在十年前并不太明显。

为了说明Kubernetes工作负载的问题,Gupil提供了一个生动的例子。考虑一个有两个节点和16个可用GPU的场景,其中已经有8个GPU分配给现有工作负载。如果有两个新的pod到来,它们将默认被调度到不同的节点上,这样就无法容纳后续的4个GPU请求,尽管总共有16个GPU可用(已分配12个)。这种低效的资源利用凸显了bin-packing技术的需求,即合并工作负载以优化资源使用。

另一个挑战源于GPU类型的多样性。如果一个工作负载请求特定的GPU类型(如V100),但只有其他类型可用(例如P3已满,P4空闲),就会不必要地配置新节点,导致资源浪费。同样,如果一个工作负载需要一定的内存容量(例如A100或更好),它可能会由于资源可用性的限制而被分配到次优的GPU类型上,即使集群中存在更合适的选择。

为了解决这些问题,Roblox引入了GPU scaler的V1版本,将GPU视为“宠物”,因为它们昂贵且需要精心管理。这种方法涉及以下几个关键组件:

  1. 在亚马逊云科技上进行容量预留,以确保根据团队的容量规划和预算分配,可获得特定GPU类型(如A100、A100)的可用性。
  2. 实例所有权,即团队支付并获得特定节点的保证访问权,类似于本地设置。
  3. 累积调度,旨在先填充一个节点,然后再移至下一个节点,偏离Kubernetes默认的跨节点分散工作负载的行为。
  4. 用于抢占的自定义pod过滤插件,允许更高优先级的工作负载在必要时从较低优先级的工作负载中回收节点。
  5. 针对实例所有者节点和工作负载分层的Node亲和力,其中Tier 0代表实例所有者工作负载,Tier 1包括共享池工作负载,Tier 2包括尽力而为的工作负载。
  6. GPU类型分层,使工作负载能够请求“A100或更好”或“低于A100”,实现更细粒度的资源分配。

虽然V1改善了情况,但也带来了新的挑战。由于未使用的预留容量和缓冲区,效率依然较低。即使有GPU可用,也可能发生抢占,这是由实例所有权施加的约束所致。Tier 0工作负载先填充实例所有者节点,而非空闲节点,导致资源利用率不佳,从而阻碍了Bin-packing。此外,频繁的分页和故障排除工作导致了高昂的运营成本。Node亲和力未得到严格遵守,导致资源使用效率低下,而用户会过度请求资源以避免抢占,从而浪费GPU资源。

为了解决这些新出现的问题,Roblox推出了V2版本,将GPU视为“牛群”——一种更加灵活和可扩展的方法。这涉及以下几个关键改进:

  1. 改进监控和仪表板,增强对调度、抢占和分层动态的可见性。
  2. 从实例所有权转向共享资源池,促进更高效的资源利用。
  3. 从固定配额转向基于GPU类型的配额份额,实现更细粒度的资源分配。
  4. 强制执行良好行为,如比例CPU和内存请求,以优化资源使用。

该解决方案利用了Unicorn(一种队列和调度工作流解决方案),从物理实例节点转向虚拟队列。开发了自定义Webhooks,用于注入Kubernetes注释并强制执行最佳实践,例如剔除空闲工作负载(如未使用GPU的非活动笔记本和长时间运行的训练作业),从而减少资源浪费。

V2的结果令人振奋,显示出显著的改进。Bin-packing效率提高,新的GPU请求在空闲节点上合并的百分比更高,促进了更好的资源利用。服务Tier 0(实例所有者)工作负载不再需要专用节点,因为共享资源可以更高效地容纳这些工作负载。工作负载等待资源的时间大幅缩短,这得益于更多空闲节点的可用性。

值得注意的是,由于更好的合并和各层级的空闲容量可用性,抢占(从较低优先级工作负载中回收资源的过程)已被消除。这不仅提高了资源利用率,还减少了运营开销和用户挫折感。此外,由于空闲节点可以立即容纳新请求,因此不再需要从亚马逊云科技进行容量预留,从而消除了长期准备时间和预先资源配置的需求。

Gupil概述了进一步改进RobloxGPU调度解决方案的下一步计划。一个关键领域是根据实际使用模式而非请求的资源来调整容量预留,因为观察到请求资源的总和通常超过了最大实际使用量。通过将容量预留与实际使用模式相匹配,Roblox旨在优化资源分配并减少不必要的开销。

另一个优先事项是通过缩小可用、分配和利用的GPU之间的差距来提高GPU效率。虽然V2解决方案已经显著提高了资源利用率,但通过持续监控和调整资源分配以最小化空闲或利用不足的GPU资源,仍有进一步优化的空间。

最后,Roblox计划实施动态重新调度机制,在工作负载完成和新工作负载到来时持续进行bin-packing。这将确保资源始终得到最佳利用,最小化碎片化并最大化GPU基础设施的效率。

总之,Danny Gupil在亚马逊云科技 re:Invent 2024活动上的演讲全面概述了Roblox在其EKS集群上优化GPU调度的历程。从Kubernetes固有设计和人工智能工作负载的多样化需求带来的挑战开始,Roblox逐步开发和完善了GPU调度解决方案。从“宠物”到“牛群”的转变,利用Unicorn和自定义Webhooks等解决方案,实现了资源利用率、成本效率和运营开销减少方面的显著改进。凭借进一步改进的明确路线图,Roblox展现了其在GPU基础设施优化方面保持领先地位的决心,为其创新的人工智能应用和不断发展的元宇宙做出贡献。

下面是一些演讲现场的精彩瞬间:

演讲者首先概述了议程,提供了关于人工智能和Roblox的背景信息,并介绍了GPU调度之旅、所面临的挑战以及实施的解决方案。

Meta展示了其在各种用例中的人工智能能力,包括安全功能、内容审核、头像创建以及社交平台的推荐系统。

演讲者强调了单独分配GPU资源的低效性,并强调了需要进行聚合和装箱,以优化资源利用率和节省成本。

演讲者强调了根据工作负载需求灵活分配GPU资源的必要性,从而能够有效利用可用资源,如A100 GPU。

亚马逊云科技推出了容量预留功能,确保为客户提供计算资源(如A100 GPU)的可用性,允许他们提前预留容量,同时只为所需的资源付费。

演讲者讨论了自8月引入V2系统以来,GPU在空闲节点上的装箱效率得到改善,从而提高了资源利用率。

演讲者讨论了动态重新调度,调度系统可以实时重新安排工作负载,以优化资源利用率。

总结

在不断演进的元宇宙领域中,Roblox作为一个先锋创作平台,着手优化其GPU基础设施并利用大型语言模型的强大能力,开启了一段转型之旅。这个故事讲述了他们在EKS集群环境中应对GPU调度复杂性的同时,努力实现AI能力民主化的历程。

Roblox的AI平台旨在为从构思到生产提供无缝路径,为ML工程师提供经济高效的工具和最佳实践。然而,最初的挑战是多方面的:Kubernetes在处理AI工作负载方面存在固有限制,各种GPU类型具有不同的能力,预算有限,云资源匮乏。意识到这些障碍,Roblox采取了两阶段解决方案。

第一阶段被称为“GPU作为宠物”,引入了容量预留、实例所有权和节点亲和力策略,以确保资源可用性和优先级。虽然这种方法缓解了一些问题,但也带来了新的挑战,如效率低下、频繁抢占和运营复杂性。

不屈不挠,Roblox过渡到第二阶段“GPU作为牛”,采用更加动态和可扩展的方法。虚拟队列取代了物理实例,实现了更好的资源利用和整合。自定义Webhook和策略强制执行最佳实践,优化了CPU、内存和GPU请求。空闲工作负载剔除进一步提高了成本效率。

结果令人瞩目:GPU整合得到改善,对专用节点的依赖减少,等待时间几乎为零。Roblox的敏捷方法不仅解决了当前的挑战,而且为未来的增强奠定了基础,包括动态重新调度和GPU利用率优化,确保了元宇宙的AI基础设施面向未来。

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者。提供200多类广泛而深入的云服务,服务全球245个国家和地区的数百万客户。做为全球生成式AI前行者,亚马逊云科技正在携手广泛的客户和合作伙伴,缔造可见的商业价值 – 汇集全球40余款大模型,亚马逊云科技为10万家全球企业提供AI及机器学习服务,守护3/4中国企业出海。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值