模型部署的任务管理 HyperPod - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

模型部署的任务管理 HyperPod

本节介绍如何针对实时推理工作负载优化共享的 SageMaker HyperPod Amazon EKS 集群。您将了解如何配置 Kueue 的任务治理功能(包括配额管理、优先级调度和资源共享策略),以确保推理工作负载在流量高峰期间获得所需的 GPU 资源,同时在团队的训练、评估和测试活动中保持公平分配。有关任务治理的更多一般信息,请参阅 SageMaker HyperPod 任务治理

推理工作负载管理的工作方式

为了有效管理共享 HyperPod EKS 集群中的实时推理流量峰值,请使用 Kueue 的现有功能实施以下任务治理策略。

优先级类配置

为推理工作负载定义权重较高(例如 100)的专用优先级类,确保推理容器组(pod)在其他任务类型之前被调度和接纳。此配置使推理工作负载能够在集群加载期间抢占优先级较低的作业,这对于在流量激增期间满足低延迟要求至关重要。

配额大小调整和分配

在团队的 ClusterQueue 中预留足够的 GPU 资源,以应对预期的推理峰值。在推理流量较低的时段内,可以将未使用的配额资源临时分配给其他团队的任务。当推理需求增加时,可以回收这些借入的资源,以确定待处理的推理容器组(pod)的优先级。有关更多信息,请参阅集群队列

资源共享策略

根据您的要求,在以下两种配额共享方法中进行选择:

  1. 严格的资源控制:禁用配额借出与借入功能,确保预留的 GPU 容量始终可用于工作负载。此方法要求配额大小设定需足够大,以独立应对峰值需求,这可能导致在低流量时段出现节点闲置的情况。

  2. 灵活的资源共享:启用配额借入功能,以便在需要时利用其他团队的闲置资源。借入的容器组(pod)会被标记为可抢占状态,如果借出团队回收资源容量,这些容器组(pod)可能会被驱逐。

团队内抢占

在同一配额下运行混合工作负载(评估、训练和推理)时,启用团队内抢占功能。这使得 Kueue 能够在团队内部抢占低优先级作业,以容纳高优先级的推理容器组(pod),从而确保实时推理可独立运行,而无需依赖外部配额借入。有关更多信息,请参阅抢占

推理工作负载设置示例

以下示例显示了 Kueue 如何在共享的 Ama SageMaker HyperPod zon 集群中管理 GPU 资源。

集群配置和策略设置

您的集群具有以下配置:

  • 团队 A:10 个 P4 GPU 配额

  • 团队 B:20 个 P4 GPU 配额

  • 静态预调配:不自动扩缩

  • 总容量:30 P4 GPUs

共享 GPU 池使用以下优先级策略:

  1. 实时推理:优先级 100

  2. 训练:优先级 75

  3. 评估:优先级 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 借入的推理容器组(pod)。

选项 2:自抢占(推荐)– 团队 B 运行低优先级评估作业(优先级 50)。当高优先级推理容器组(pod)处于等待状态时,Kueue 会在团队 B 的配额内抢占评估作业的资源,并接纳这些推理容器组(pod)。此方法可实现安全的资源分配,且不存在外部驱逐风险。

Kueue 遵循三步流程来分配资源:

  1. 配额检查

    问题:团队 B 是否有未使用的配额?

    • 是 → 接纳容器组(pod)

    • 否 → 继续执行步骤 2

  2. 团队 B 内部的自抢占

    问题:低优先级的团队 B 作业能否被抢占?

    • 是 → 抢占评估作业(优先级 50),释放 5 个 P4,并接纳推理容器组(pod)

    • 否 → 继续执行步骤 3

    此方法可将工作负载控制在团队 B 的保障配额范围内,从而避免外部驱逐风险。

  3. 从其他团队借入

    问题:其他团队是否有闲置的可借入配额?

    • 是 → 使用借入的配额接纳(标记为可抢占状态)

    • 否 → 容器组(pod)保持 NotAdmitted 状态