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 entrenamiento debe tener el estado Scheduled o Active para poder utilizarlo en un trabajo de entrenamiento.
Si la capacidad requerida no está disponible de inmediato para un trabajo de entrenamiento, el trabajo debe esperar hasta que esté disponible, hasta que se cumpla StoppingCondition o hasta que el trabajo haya estado Pending de capacidad 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 termina con un InsufficientCapacityError.
importante
Proceso de terminació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 inician el proceso de finalización de cualquier instancia en ejecución dentro de esa capacidad reservada.
Para asegurarse de no perder el progreso debido a estas terminaciones, le recomendamos revisar sus trabajos de entrenamiento.
Punto de comprobación del trabajo de entrenamiento
Cuando utilice planes de SageMaker formación para sus trabajos de SageMaker formación, asegúrese de incluir puntos de control en su guion de formación. Esto le permite guardar el progreso del entrenamiento antes de que caduque la capacidad reservada. Los puntos de comprobación son especialmente importantes cuando se trabaja con capacidades reservadas, ya que permiten reanudar el entrenamiento desde el último punto guardado si el trabajo se interrumpe entre dos capacidades reservadas o cuando el plan de entrenamiento alcance la fecha de finalización.
Para ello, puede usar la variable de entorno SAGEMAKER_CURRENT_CAPACITY_BLOCK_EXPIRATION_TIMESTAMP. Esta variable ayuda a determinar cuándo iniciar el proceso de puntos de comprobación. Al incorporar esta lógica en el script de entrenamiento, debe asegurarse de que el progreso del modelo se guarde en los intervalos adecuados.
Este es un ejemplo de cómo puede implementar esta lógica de puntos de comprobación en el 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 (in milliseconds) to a datetime object expiration_time = datetime(1970, 1, 1) + timedelta(milliseconds=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 formación 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 la formación de una piscina caliente gestionada es compatible con los planes de formación. SageMaker Para volver a utilizar el clúster, debe proporcionar valores
TrainingPlanArnidénticos en las solicitudesCreateTrainingJobposteriores.