AWS 关于 Batch 配额管理与 SageMaker 训练的配图
跨团队借贷 GPU:配额份额与抢占进入 Batch 调度。, AWS Machine Learning Blog

要点

  • AWS Batch 为 SageMaker Training 任务新增配额管理:按团队/项目划分 quota share,策略含 RESERVE、LEND、LEND_AND_BORROW,并支持份额内抢占与跨份额回收。
  • 调度在份额未达上限时优先;已借出容量在本份额来活时通过跨份额抢占收回;份额内可按优先级抢占 SCHEDULED/STARTING/RUNNING 低优先级任务。
  • SageMaker Python SDK v3 的 aws_batch 模块可按 quota_share_name 与 priority 提交;文中用三份额 × 单 ml.g5.xlarge 上限的示例演示借还与改优先级。

多团队共享 GPU 时,经典毛病是:要么静态切队列导致有人饿死、有人空转,要么靠管理员手工改限额与协调。AWS 机器学习博客在 2026年10月29日介绍 Batch 对 SageMaker Training 的配额管理:把「谁拥有多少、闲时是否外借、忙时是否可借」写成调度策略。

主张:多团队训练利用率上不去,首要缺口是调度原语(可借还的配额份额与抢占),不是再买一排加速器。若客户环境里没有借还、仅靠更多容量或人工工单也能稳定高利用,主张过强。

[1]

管理员创建含 quotaSharePolicy 的 Scheduling Policy、按实例类型声明容量的 Service Environment,以及挂接二者的 SageMaker Training 任务队列,再把 quota share 挂到队列上。每个 share 是队列内的虚拟层级:RESERVE 闲置保留;LEND 闲时借出但不借入;LEND_AND_BORROW 双向。跨份额抢占在出借方来任务时收回容量;份额内抢占可让高优先级作业打断低优先级的 SCHEDULED/STARTING/RUNNING(适合有检查点的背景任务)。

SDK 侧 TrainingQueue.submit(..., quota_share_name=..., priority=...),并可用 UpdateServiceJob 调已提交作业优先级以触发份额内抢占。

[1]

文中证据以机制与可运行示例为主:三份额各限制 1×ml.g5.xlarge,总容量 3;QS1 背景任务 LEND_AND_BORROW+份额内抢占;QS2 中优先级仅 LEND;QS3 紧急 RESERVE。演示显示 QS1 高/中优先级先占用自有与借入容量,QS2 提交后触发跨份额收回,提高 QS1 低优先级任务优先级则触发份额内抢占。

缺少的是生产集群周级 GPU 利用率、等待时间分布或客户具名前后对比——证据硬度因此封顶在「可检查的产品机制」,而非独立运营数据。与 SageMaker 训练计划(training plans)的组合被点名为强化利用率的场景。

[1]

钢人:抢占对无检查点作业是伤害;份额内抢占默认关闭的配置存在,正说明不是免费午餐。借还可能引发「公地」博弈——团队虚报优先级或拆作业骗调度。Kubernetes 生态已有类似 fair-share/借贷概念,Batch 的增量是与 SageMaker Training 托管路径的整合深度,而非理论首创。

示例用 Hello World echo,不能代表多小时多节点训练的抢占代价。

[1]

对 ML 平台负责人,这篇把对话从「再申请 50 张 H100」转到「份额策略是否允许闲时外流、忙时回收」。对研究员,优先级与份额选择变成显式产品决策,而不是工单文案。对财务,训练计划锁定的容量若配不上借贷调度,锁定本身也会闲置。

[1]

六个月应看:公开的利用率/排队时间案例是否出现;抢占导致的重跑成本是否被客户量化;以及 RESERVE 份额是否被滥用为永久独占。若借贷份额在多团队池中可测地提高有效利用率且抢占成本可控,主张成立;若客户仍主要靠静态切分,需改写。

[1]