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

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

模型部署的任务管理 HyperPod

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

推理工作负载管理的工作原理

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

优先级等级配置

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

配额大小和分配

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

资源共享策略

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

  1. 严格的资源控制:禁用配额借用以保证预留 GPU 容量始终可用于您的工作负载。这种方法需要调整足够大的配额以独立处理峰值需求,并且可能会导致节点在低流量期间处于空闲状态。

  2. 灵活的资源共享:启用配额借用,以便在需要时利用其他团队的闲置资源。借来的吊舱被标记为抢占式,如果借出团队收回容量,可能会被驱逐出境。

队内抢占权

在相同配额下运行混合工作负载(评估、训练和推理)时,启用团队内部抢占功能。这允许 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 借用的推理舱。

选项 2:自行抢占(推荐)-团队 B 运行低优先级评估作业(优先级 50)。当高优先级推理 pod 正在等待时,Kueue 会抢占团队 B 配额内的评估任务并允许推理 Pod。这种方法提供了安全的资源分配,没有外部驱逐的风险。

Kueue 遵循三个步骤来分配资源:

  1. 配额检查

    问题:B 队有未使用的配额吗?

    • 是 → 接受 pod

    • 否 → 继续执行步骤 2

  2. B 队内部的自我抢占权

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

    • 是 → 抢占评估任务(优先级 50),免费 5 个 P4,并允许推理窗格

    • 否 → 继续执行步骤 3

    这种方法将工作负载保持在 B 团队的保证配额内,从而避免了外部驱逐的风险。

  3. 向其他球队借钱

    问题:其他队伍是否有闲置的、可借用的配额?

    • 是 → 承认使用借用的配额(标记为抢占式)

    • 否 → Pod 仍处于NotAdmitted状态