Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Utilización de los planes de SageMaker formación para trabajos de formación
Puede utilizar un plan de SageMaker formación para sus trabajos de formación especificando el plan de su elección al crear un trabajo de formación.
nota
El plan de formación debe tener el Active
estado Scheduled
o para poder utilizarlo en un puesto de formación.
Si la capacidad requerida no está disponible de inmediato para un puesto de formación, el puesto debe esperar hasta que esté disponible, hasta que StoppingCondition
se alcance esa capacidad, o hasta que el puesto haya estado Pending
disponible durante 2 días, lo que ocurra primero. Si se cumple la condición de parada, el trabajo se detiene. Si un trabajo ha estado pendiente durante 2 días, se rescinde con unInsufficientCapacityError
.
importante
Proceso de cancelación de la capacidad reservada: tiene acceso completo a todas las instancias reservadas hasta 30 minutos antes de la hora de finalización de la capacidad reservada. Cuando queden 30 minutos de capacidad reservada, los planes de SageMaker formación comienzan el proceso de finalización de cualquier instancia en ejecución que se encuentre dentro de esa capacidad reservada.
Para asegurarse de no perder el progreso debido a estas cancelaciones, le recomendamos que revise sus trabajos de formación.
Comprueba tu trabajo de formación
Cuando utilices planes de SageMaker formación para tus trabajos de SageMaker formación, asegúrate de incluir puntos de control en tu guion de formación. Esto te permite guardar el progreso de tu entrenamiento antes de que caduque una capacidad reservada. Los puntos de control son especialmente importantes cuando se trabaja con capacidades reservadas, ya que te permiten reanudar la formación desde el último punto guardado si tu trabajo se interrumpe entre dos capacidades reservadas o cuando tu plan de formación llega a su fecha de finalización.
Para ello, puede utilizar la variable de SAGEMAKER_CURRENT_CAPACITY_BLOCK_EXPIRATION_TIMESTAMP
entorno. Esta variable ayuda a determinar cuándo iniciar el proceso de puntos de control. Al incorporar esta lógica en el guion de entrenamiento, se asegura de que el progreso del modelo se guarde en los intervalos adecuados.
Este es un ejemplo de cómo puedes implementar esta lógica de puntos de control en tu script de entrenamiento de Python:
import os import time from datetime import datetime, timedelta def is_close_to_expiration(threshold_minutes=30): # Retrieve the expiration timestamp from the environment variable expiration_time_str = os.environ.get('SAGEMAKER_CURRENT_CAPACITY_BLOCK_EXPIRATION_TIMESTAMP', '0') # If the timestamp is not set (default '0'), return False if expiration_time_str == '0': return False # Convert the timestamp string to a datetime object expiration_time = datetime.fromtimestamp(int(expiration_time_str)) # Calculate the time difference between now and the expiration time time_difference = expiration_time - datetime.now() # Return True if we're within the threshold time of expiration return time_difference < timedelta(minutes=threshold_minutes) def start_checkpointing(): # Placeholder function for checkpointing logic print("Starting checkpointing process...") # TODO: Implement actual checkpointing logic here # For example: # - Save model state # - Save optimizer state # - Save current epoch and iteration numbers # - Save any other relevant training state # Main training loop num_epochs = 100 final_checkpointing_done = False for epoch in range(num_epochs): # TODO: Replace this with your actual training code # For example: # - Load a batch of data # - Forward pass # - Calculate loss # - Backward pass # - Update model parameters # Check if we're close to capacity expiration and haven't done final checkpointing if not final_checkpointing_done and is_close_to_expiration(): start_checkpointing() final_checkpointing_done = True # Simulate some training time (remove this in actual implementation) time.sleep(1) print("Training completed.")
nota
-
El aprovisionamiento de tareas de entrenamiento sigue un orden First-In-First-Out (FIFO), pero a un trabajo de clúster más pequeño que se cree más adelante se le puede asignar capacidad antes que a un trabajo de clúster más grande creado anteriormente, si no se puede cumplir con el trabajo más grande.
-
SageMaker entrenar una piscina caliente gestionada es compatible con SageMaker los planes de formación. Para la reutilización del clúster, debe proporcionar
TrainingPlanArn
valores idénticos enCreateTrainingJob
las solicitudes posteriores para reutilizar el mismo clúster.