AWS Batch permite repartir la capacidad de SageMaker Training entre cuotas virtuales dentro de una cola de trabajos compatible. Puedes reservar la capacidad ociosa, prestarla a otras cuotas o permitir que una cuota preste y tome capacidad prestada. Esta guía está pensada para quienes organizan trabajos de entrenamiento entre equipos o proyectos; la función se aplica a colas conectadas a un entorno SAGEMAKER_TRAINING (documentación de AWS Batch).

Qué hace cada estrategia de cuota

La estrategia define qué ocurre con la capacidad asignada que una cuota no está usando. AWS Batch ofrece tres modos (documentación de cuotas):

EstrategiaDestino de la capacidad ociosa¿La cuota puede tomar capacidad prestada?
RESERVESe mantiene para los trabajos de esa cuota.No.
LENDOtras cuotas pueden usarla.No.
LEND_AND_BORROWSe presta a otras cuotas cuando está ociosa.Sí, según el límite configurado.

RESERVE da prioridad a conservar la capacidad para la cuota que la tiene asignada. LEND permite que otros trabajos aprovechen esa capacidad mientras está libre. LEND_AND_BORROW combina el préstamo con la posibilidad de que la propia cuota tome capacidad prestada.

Límites que condicionan el diseño de la cola

AWS Batch admite hasta 20 cuotas por cola de trabajos. Cada cuota debe definir entre uno y cinco límites de capacidad, expresados mediante tipos de instancia compatibles con SageMaker Training. La función requiere una cola conectada a un entorno SAGEMAKER_TRAINING (límites de las cuotas, requisito de la cola).

ElementoLímite o requisitoConsecuencia para el diseño
Cola de trabajosDebe estar conectada a un entorno SAGEMAKER_TRAINING.Las cuotas no se aplican a cualquier tipo de cola de AWS Batch.
Cuotas por colaHasta 20.El número de equipos o proyectos debe caber en ese máximo.
Límites de capacidad por cuotaDe 1 a 5 tipos de instancia compatibles.Cada cuota necesita al menos un límite de capacidad.
Entorno de servicioUn entorno habilitado para cuotas se conecta a una sola cola habilitada para cuotas.Para otra cola hace falta otro entorno de servicio.

Configurar la política, el entorno y la cola

Antes de crear los recursos, hacen falta permisos de IAM para crear y administrar colas de AWS Batch, políticas de programación y entornos de servicio. AWS detalla los requisitos y las comprobaciones de estado en su guía de creación de recursos.

  1. Define las cuotas y su estrategia. Decide qué equipos o proyectos tendrán cuota, elige RESERVE, LEND o LEND_AND_BORROW para cada una y establece de uno a cinco límites por cuota. Esto determina quién conserva la capacidad ociosa y quién puede utilizarla.
  2. Crea una Scheduling Policy compatible. Configura la política con quotaSharePolicy y las cuotas definidas. La política es la estructura que permite asignar capacidad a las cuotas.
  3. Crea el Service Environment. Elige el tipo SAGEMAKER_TRAINING y expresa los límites mediante tipos de instancia que acepte SageMaker Training. AWS indica que deben usarse tipos de instancia, no NUM_INSTANCES.
  4. Conecta una Job Queue compatible. Asocia la cola a la Scheduling Policy y al Service Environment. Un entorno de servicio con gestión de cuotas no puede conectarse a más de una cola habilitada para cuotas.
  5. Comprueba el estado de la cola. AWS indica que debe aparecer como ENABLED y VALID, con el motivo JobQueue Healthy, antes de basar en ella la organización de los trabajos.

Como ejemplo de dimensionamiento, AWS plantea tres cuotas, cada una con max_capacity=1 para ml.g5.xlarge, y un máximo de capacidad de 3 para ese tipo de instancia en el entorno de servicio. Es una configuración ilustrativa, no una medida del rendimiento de la cola.

Cuándo AWS Batch puede recuperar capacidad o interrumpir trabajos

Si una cuota presta capacidad y luego la necesita, AWS Batch puede recuperar recursos mediante preemption, es decir, desalojando trabajos que los están usando. Para decidir cuáles, el mecanismo considera la cantidad y el tipo de instancias prestadas, las prioridades relativas de los trabajos y su duración, mediante una heurística propia de AWS (documentación de las cuotas).

También puede configurarse la preemption dentro de una misma cuota: los trabajos de mayor prioridad pueden desplazar a los de menor prioridad en estado SCHEDULED, STARTING o RUNNING. Además, reducir el límite de capacidad de una cuota puede hacer que sus trabajos activos sean susceptibles de preemption si el consumo supera el nuevo límite. Esto puede ocurrir incluso con LEND o RESERVE, aunque esos modos no permitan a la cuota tomar capacidad prestada.