AWS представила управление квотами в AWS Batch для задач обучения Amazon SageMaker Training: администраторы делят общие мощности на доли квот по командам или проектам. Каждая доля получает лимит мощности и стратегию совместного использования, а простаивающие GPU автоматически передаются другим командам и возвращаются владельцу при появлении его задач. Функция рассчитана на среды обучения, где несколько команд делят ограниченные ресурсы.
Как доли квот делят мощности GPU
Доля квоты работает как виртуальная очередь внутри очереди заданий Batch. Администратор задает лимиты мощности для каждой команды или проекта и выбирает одну из трех стратегий: RESERVE удерживает простаивающие мощности, LEND передает их другим долям, а LEND_AND_BORROW одновременно отдает простаивающие мощности и занимает свободные мощности при наличии собственных задач. При планировании Batch отдает предпочтение долям, работающим ниже своих лимитов.
Когда задачи поступают в долю, ранее отдавшую мощности, Batch выполняет межквотное вытеснение и возвращает ресурсы без ручной остановки чужих заданий. Когда доля достигла лимита или превысила его, Batch проверяет доступные для займа простаивающие мощности и запускает задачи на них при наличии. Отдельная опция включает вытеснение внутри доли по приоритету: задания с низким приоритетом в состояниях SCHEDULED, STARTING или RUNNING вытесняются, чтобы приоритетные задачи из начала очереди стартовали раньше.
Для настройки нужны аккаунт AWS с правами на ресурсы Batch и SageMaker, а также SageMaker Python SDK v3. Администратор создает Scheduling Policy с quotaSharePolicy, Service Environment с лимитами в конкретных инстансах и очередь обучения SageMaker Training, связанную с ними, затем привязывает доли квот к очереди. Руководство содержит примеры для AWS CLI и консоли, а примерный ноутбук показывает сквозной сценарий через модуль aws_batch и вспомогательные функции.
Что общее планирование GPU меняет для бизнеса
Пример из публикации настраивает три доли квот, каждая с лимитом в один инстанс ml. g5.xlarge. QS1 предназначена для фоновых заданий с контрольными точками, использует LEND_AND_BORROW и включает вытеснение внутри доли, поэтому приоритетные задачи замещают менее важные. QS2 подходит для среднеприоритетной работы, где ожидание предпочтительнее лишних вытеснений, а QS3 резервирует мощности, не отдает и не занимает их, отключает внутреннее вытеснение ради минимальных прерываний.
Задания попадают в очередь с квотами через конструктор TrainingQueue в модуле aws_batch с использованием ModelTrainer и образа под конкретный регион. В пошаговом примере три задания с высоким, средним и низким приоритетом поступают в QS1, причем два самых приоритетных запускаются благодаря свободным мощностям QS2. Поздняя отправка задания в QS2 возвращает отданные мощности от QS1 через межквотное вытеснение, а мощности QS3 остаются нетронутыми.
Приоритеты можно менять после отправки через API UpdateServiceJob. В примере повышение приоритета ожидающего задания с низким приоритетом в QS1 запускает вытеснение внутри доли, когда свободных мощностей для займа нет. Компаниям перед внедрением стоит сопоставить устойчивость задач к прерываниям с тремя стратегиями, проверить контрольные точки там, где вытеснение включено, и протестировать схему приоритетов до перевода продуктивного обучения в общие очереди.
