模型部署的任务管理 HyperPod - 亚马逊 SageMaker AI

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

模型部署的任务管理 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 状态