本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
模型部署的任务管理 HyperPod
本节介绍如何针对实时推理工作负载优化共享的 SageMaker HyperPod Amazon EKS 集群。您将学习配置 Kueue 的任务管理功能(包括配额管理、优先级调度和资源共享策略),以确保您的推理工作负载在流量高峰期间获得所需的 GPU 资源,同时在团队的训练、评估和测试活动中保持公平分配。有关任务管理的更多一般信息,请参阅SageMaker HyperPod 任务治理。
推理工作负载管理的工作原理
为了有效管理共享 HyperPod EKS 集群中的实时推理流量峰值,请使用 Kueue 的现有功能实施以下任务治理策略。
优先级等级配置
为权重较高的推理工作负载(例如 100)定义专用的优先级类,以确保推理 Pod 在其他任务类型之前被接受和调度。此配置使推理工作负载能够在集群加载期间抢占优先级较低的作业,这对于在流量激增期间保持低延迟要求至关重要。
配额大小和分配
在团队中预留足够的 GPU 资源ClusterQueue
,以应对预期的推理峰值。在推理流量较低的时期,可以将未使用的配额资源临时分配给其他团队的任务。当推理需求增加时,可以回收这些借用的资源,以确定待处理的推理 pod 的优先级。有关更多信息,请参阅集群队列
资源共享策略
根据您的要求,在两种配额共享方法之间进行选择:
-
严格的资源控制:禁用配额借用以保证预留 GPU 容量始终可用于您的工作负载。这种方法需要调整足够大的配额以独立处理峰值需求,并且可能会导致节点在低流量期间处于空闲状态。
-
灵活的资源共享:启用配额借用,以便在需要时利用其他团队的闲置资源。借来的吊舱被标记为抢占式,如果借出团队收回容量,可能会被驱逐出境。
队内抢占权
在相同配额下运行混合工作负载(评估、训练和推理)时,启用团队内部抢占功能。这允许 Kueue 抢占团队中优先级较低的作业,以适应高优先级的推理 pod,从而确保实时推理可以在不依赖外部配额借用的情况下运行。有关更多信息,请参阅抢占
推理工作负载设置示例
以下示例显示了 Kueue 如何在共享的 Ama SageMaker HyperPod zon 集群中管理 GPU 资源。
集群配置和策略设置
您的集群具有以下配置:
-
A 组:10 个 P4 GPU 配额
-
B 组:20 个 P4 GPU 配额
-
静态配置:不支持自动扩展
-
总容量:30 P4 GPUs
共享 GPU 池使用以下优先级策略:
-
实时推理:优先级 100
-
培训:优先级 75
-
评估:优先级 50
Kueue 强制执行队伍配额和优先等级,并启用抢占和配额借用。
初始状态:集群利用率正常
在正常操作中:
-
A 队在所有 10 个 P4 上进行训练和评估工作 GPUs
-
B 队在 20 个 GPU 配额内运行实时推理(10 个 P4)和评估(10 个 P4)
-
集群已得到充分利用,所有作业均已接受并正在运行
推理峰值:B 队需要额外资源 GPUs
当 B 队伍遇到流量激增时,额外的推理 pod 需要另外 5 个 P GPUs 4。Kueue 检测到新的 pod 是:
-
在 B 队的命名空间内
-
优先级 100(实时推断)
-
由于配额限制,正在等待录取
Kueue 的响应过程在两个选项之间进行选择:
选项 1:借用配额 ——如果队伍 A 只使用其 10 个 P4 中的 6 个,Kueue 可以使用闲置的 4 个 P4 接纳 B 队伍的 pod。但是,这些借用的资源是抢占式的——如果团队 A 提交任务以达到其全部配额,Kueue 就会驱逐团队 B 借用的推理舱。
选项 2:自行抢占(推荐)-团队 B 运行低优先级评估作业(优先级 50)。当高优先级推理 pod 正在等待时,Kueue 会抢占团队 B 配额内的评估任务并允许推理 Pod。这种方法提供了安全的资源分配,没有外部驱逐的风险。
Kueue 遵循三个步骤来分配资源:
-
配额检查
问题:B 队有未使用的配额吗?
-
是 → 接受 pod
-
否 → 继续执行步骤 2
-
-
B 队内部的自我抢占权
问题:优先级较低的 B 队工作能否被抢占?
-
是 → 抢占评估任务(优先级 50),免费 5 个 P4,并允许推理窗格
-
否 → 继续执行步骤 3
这种方法将工作负载保持在 B 团队的保证配额内,从而避免了外部驱逐的风险。
-
-
向其他球队借钱
问题:其他队伍是否有闲置的、可借用的配额?
-
是 → 承认使用借用的配额(标记为抢占式)
-
否 → Pod 仍处于
NotAdmitted
状态
-