亚马逊云科技推出Amazon SageMaker HyperPod任务治理,这是一项可在训练、微调和推理等生成式AI模型开发任务中,轻松集中管理并最大限度提高GPU和Trainium利用率的创新功能。
根据客户反馈,他们正迅速加大对生成式AI项目的投资力度,但在有效分配有限的计算资源方面却面临挑战。由于缺乏动态集中式的资源分配管理机制,计算资源分配与利用效率大打折扣,导致部分项目资源未能得到充分利用,而其他项目进展停滞不前。资源利用效率低下的问题,不仅加重了管理员频繁重新规划的工作负担,也让数据科学家和开发者的工作因此延误,最终导致无法及时交付AI创新成果以及成本超支。
借助Amazon SageMaker HyperPod任务治理功能,您可以缩短AI创新成果的上市时间,同时避免因计算资源利用不充分而造成的成本超支问题。只需简单几步操作,管理员即可根据项目预算和任务优先级,设置计算资源分配配额。数据科学家或开发者可以轻松地创建模型训练、微调或评估等任务,Amazon SageMaker HyperPod则会在所分配的配额范围内,自动调度并执行这些任务。
Amazon SageMaker HyperPod任务治理功能负责管理资源,当需要立即处理高优先级任务时,它会自动释放低优先级任务所占用的计算资源,这一过程通过暂停低优先级的训练任务、保存检查点,并在资源重新可用时恢复任务运行而得以实现。此外,团队配额内的闲置计算资源可自动被调配,用于加速其他团队的待处理任务。
数据科学家和开发者能够持续监控任务队列,查看待处理任务,并根据需要灵活调整任务优先级。同时,管理员也可以监控和审计各团队和项目之间的计划任务以及计算资源使用情况,据此调整资源分配,优化成本,并提升整个组织的资源可用性。这一方法有助于确保按时完成关键项目,同时最大限度提高资源利用效率。
开始使用Amazon SageMaker HyperPod任务治理功能
Amazon SageMaker HyperPod任务治理功能在Amazon SageMaker HyperPod中的Amazon EKS集群可用。您可在Amazon SageMaker AI控制台的Amazon SageMaker HyperPod集群下选择“集群管理”,用于配置和管理集群。作为管理员,您可以通过控制台简化Amazon SageMaker HyperPod集群的操作和扩展过程。
Amazon SageMaker HyperPod中的Amazon EKS集群:
https://aws.amazon.com/blogs/machine-learning/introducing-amazon-eks-support-in-amazon-sagemaker-hyperpod/
Amazon SageMaker AI控制台:
https://console.aws.amazon.com/sagemaker/home?#/cluster-management?trk=769a1a2b-8c19-4976-9c45-b6b1226c7d20&sc_channel=el
选择Amazon SageMaker HyperPod集群后,您可在集群详情页看到新的“仪表盘”、“任务”和“策略”选项卡。
1
新的仪表盘
在新的仪表盘中,您可以查看集群利用率、基于团队和基于任务的指标概览。
首先,您可以查看所有实例组中,GPU、vCPU和内存利用率等关键计算资源的即时指标和趋势指标。
接下来,您可以深入了解特定团队的资源管理情况,重点关注GPU利用率与跨团队的计算分配情况。您可以使用可自定义的过滤器来筛选团队和集群实例组,用来分析任务分配的GPU/CPU、借用的GPU/CPU和GPU/CPU利用率等各项指标。
您还可以使用运行中的任务数、待处理任务数、被抢占任务数以及任务的平均运行时间和等待时间等指标,来评估任务性能和资源分配效率。为了全面监控Amzon SageMaker HyperPod集群资源和软件组件,您可以将其与Amazon CloudWatch Container Insights或Amazon Managed Grafana集成。
Amazon CloudWatch Container Insights:
https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html?trk=769a1a2b-8c19-4976-9c45-b6b1226c7d20&sc_channel=el
Amazon Managed Grafana:
https://aws.amazon.com/grafana/?trk=769a1a2b-8c19-4976-9c45-b6b1226c7d20&sc_channel=el
2
创建和管理集群策略
要实现任务优先级排序和公平共享资源分配,您可以配置集群策略,该集群策略能够为关键工作负载设定优先级,并在计算资源分配中定义的各团队之间分配闲置计算资源。
要在集群设置中配置优先级类别和借用的计算资源公平共享功能,请在“集群策略”部分中选择“编辑”。
您可以设定队列中待处理任务的进入处理方式,以实现优先级排序:默认为先到先得原则或选择任务排序。如果选择任务排序,则队列中的待处理任务将根据此集群策略中定义的优先级顺序来接受处理。对于具有相同优先级的任务,则会按照先到先得的规则来执行。
您还可以配置如何在各团队之间分配闲置计算资源的方式:默认为先到先得原则或公平共享。若选择公平共享设置,根据其分配的权重(即在相对计算资源分配中配置)来借用闲置计算资源。如此一来,每个团队都能公平获得闲置计算资源,从而加速解决待处理任务。
在“策略”页面的“计算分配”部分,您可以创建并编辑计算分配,以便在各个团队之间合理分配计算资源。同时,您可以启用设置,允许团队借出和借用闲置计算资源,配置处理低优先级任务的抢占机制,并为团队分配公平共享权重。
在“团队”部分设置团队名称,系统便会为您的数据科学和机器学习团队创建对应的Kubernetes命名空间。您可以为团队配置公平共享权重,以便在各团队之间更公平地分配未使用的容量,并基于任务优先级启用抢占选项,允许高优先级任务优先执行,从而抢占低优先级任务的资源。
在“计算”部分,您可以为团队添加和分配实例类型配额。同时,您还可为集群中尚不可用的实例类型分配预留配额,以便将来扩展。
您可以允许团队将闲置容量出借给其他团队,实现闲置计算资源共享。这种借用机制是互惠的,即团队只有在愿意共享自身闲置资源的前提下,才能借用他人的闲置计算资源。此外,您还可以设定借用限制,使团队能够在其分配配额之外借用计算资源。
3
在Amazon SageMaker HyperPod
集群中运行训练任务
作为数据科学家,您可以利用Amazon SageMaker HyperPod CLI提交训练作业,并使用为您团队所分配的配额。通过Amazon SageMaker HyperPod CLI,您可以启动任务并指定具有相应配额的命名空间。
$ hyperpod start-job --name smpv2-llama2 --namespace hyperpod-ns-ml-engineersSuccessfully created job smpv2-llama2$ hyperpod list-jobs --all-namespaces{ "jobs": [ { "Name": "smpv2-llama2", "Namespace": "hyperpod-ns-ml-engineers", "CreationTime": "2024-09-26T07:13:06Z", "State": "Running", "Priority": "fine-tuning-priority" }, ... ]}Bash
左右滑动查看完整示意
在“任务”选项卡中,您可以查看集群中的所有任务。根据策略,每个任务都有不同的优先级和容量需求。如果您运行另一个优先级更高的任务,现有任务将被暂停,以便先运行该高优先级任务。
点击观看下方演示视频,了解在低优先级任务运行期间添加高优先级训练任务的情况如何。
更多信息,请参阅《Amazon SageMaker AI开发者指南》中的Amazon SageMaker HyperPod任务治理部分。
Amazon SageMaker HyperPod任务治理:
https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html?trk=769a1a2b-8c19-4976-9c45-b6b1226c7d20&sc_channel=el
现已可用
Amazon SageMaker HyperPod任务治理功能现已在美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)亚马逊云科技区域可用,使用该功能无需额外费用。更多信息,请参阅Amazon SageMaker HyperPod产品页面。
Amazon SageMaker HyperPod产品页面:
https://aws.amazon.com/sagemaker/hyperpod?trk=769a1a2b-8c19-4976-9c45-b6b1226c7d20&sc_channel=el
本篇作者
Channy Yun
亚马逊云科技云的首席布道师。作为一名务实的开发者和博客作者,他热爱社区驱动的技术学习和分享。
星标不迷路,开发更极速!
关注后记得星标「亚马逊云开发者」
听说,点完下面4个按钮
就不会碰到bug了!
点击阅读原文查看博客!获得更详细内容!