AWS Batch 为 SageMaker Training 作业推出配额管理,支持跨团队借还资源
AWS Batch 对 Amazon SageMaker Training 作业的支持上线后,客户可以用全托管方式排队、调度和重试机器学习训练负载,不必自建基础设施。随着 AI/ML 规模扩大、接入团队增多,共享 GPU 容量的协调成本随之上升:管理员要建独立队列、调容量上限、手工编排负载,才能让合适的任务在合适的时间拿到资源。
AWS Batch 此次新增的配额管理(quota management)正对这一场景。管理员可以把计算容量切分为配额份额,按团队、项目或负载组织,每个份额包含容量上限和空闲算力的资源共享策略。
三种共享策略与两级抢占
资源共享策略决定空闲算力如何处置:RESERVE 表示保留至任务到达,LEND 表示借给有其他任务的份额,LEND_AND_BORROW 表示空闲时借出、本份额有任务时也可借入。
配额份额是嵌套在关联作业队列中的虚拟队列。AWS Batch 调度时会优先处理未达容量上限的份额;若借出容量的份额有新任务到达,会触发跨份额抢占,收回资源,管理员无需自行找出并终止借用方的作业。份额达到或超过上限时,系统会检查能否从其他份额借入空闲容量。
份额内抢占可在配置时开启,用于抢占 SCHEDULED、STARTING 或 RUNNING 状态的低优先级作业,让队列前部的高优先级作业更早启动。
配置方式与示例
使用该能力需要创建包含 quotaSharePolicy 的 Scheduling Policy、以具体实例类型定义容量上限的 Service Environment,以及连接两者的 SageMaker Training 作业队列,然后把配额份额关联到作业队列。用户指南提供了 AWS CLI 和控制台示例,SageMaker Python SDK v3 的 aws_batch 模块配有端到端示例 notebook。
示例配置了三个配额份额代表三个项目,容量上限均为一个 ml.g5.xlarge 实例。QS1 代表后台任务,采用 LEND_AND_BORROW 并开启份额内抢占,借用上限设为 200;由于任务均使用 checkpointing,抢占可接受。QS2 代表中优先级负载,原文在此处截断,未给出完整配置。
编辑部观察
配额管理把"谁先用、谁能借、何时收回"从人工协调变成调度策略,对多团队共用 GPU 池的组织,价值在于减少管理员在队列和限额上的配置开销。需要注意的是,借还和抢占都发生在作业队列与份额层级内,实际效果取决于容量上限、借用上限和优先级设置是否与业务优先级一致;开启份额内抢占前,应确认被抢占任务具备 checkpoint 等可恢复机制。
实践建议
试点时可先选一个非关键项目组,用单一实例类型设定小容量份额,验证 LEND_AND_BORROW 下的借还行为和跨份额抢占是否符合预期,再逐步纳入高优先级负载。上线前建议核对 IAM 权限是否覆盖 AWS Batch 与 SageMaker API 的创建和管理操作,并确认 SageMaker Python SDK 版本兼容。

