Solución de problemas de Canalizaciones de Amazon SageMaker - Amazon SageMaker AI

Solución de problemas de Canalizaciones de Amazon SageMaker

Al utilizar Canalizaciones de Amazon SageMaker, es posible que tenga problemas por varios motivos. En este tema se proporciona información sobre errores habituales y cómo resolverlos.

Problemas con la definición de la canalización

Es posible que la definición de la canalización no tenga el formato correcto. Esto puede provocar que la ejecución produzca un error o que el trabajo no sea preciso. Estos errores se pueden detectar cuando se crea la canalización o cuando tiene lugar una ejecución. Si la definición no se valida, Canalizaciones devuelve un mensaje de error que identifica el carácter en el que el archivo JSON está mal formado. Para solucionar este problema, revise los pasos creados con el SageMaker AI Python SDK para comprobar su precisión.

Solo puede incluir los pasos en una definición de canalización una vez. Por este motivo, los pasos no pueden existir como parte de un paso de condición y de una canalización en la misma canalización.

Examinar los registros de las canalizaciones

Puede ver el estado de los pasos con el comando siguiente:

execution.list_steps()

Cada paso incluye la siguiente información:

  • El ARN de la entidad lanzada por la canalización, como el ARN del trabajo de SageMaker AI, el ARN del modelo o el ARN del paquete de modelos.

  • El motivo del error incluye una breve explicación del error del paso.

  • Si el paso es un paso de condición, incluye si la condición se evalúa como verdadera o falsa. 

  • Si la ejecución vuelve a utilizar una ejecución de un trabajo anterior, CacheHit muestra la ejecución de origen. 

También puede ver los mensajes de error y los registros en la interfaz de Amazon SageMaker Studio. Para obtener información sobre cómo ver los registros en Studio, consulte Visualización de los detalles de la ejecución de una canalización.

Permisos ausentes

Se requieren los permisos correctos para el rol que crea la ejecución de la canalización y los pasos que crean cada uno de los trabajos de la ejecución de la canalización. Sin estos permisos, es posible que no pueda enviar la ejecución de la canalización ni ejecutar los trabajos de SageMaker AI según lo previsto. Para asegurarse de que los permisos estén configurados correctamente, consulte Administración de acceso de IAM.

Errores de ejecución del trabajo

Es posible que tenga problemas al ejecutar los pasos debido a problemas en los scripts que definen la funcionalidad de sus trabajos de SageMaker AI. Cada trabajo tiene un conjunto de registros de CloudWatch. Para ver estos registros en Studio, consulte Visualización de los detalles de la ejecución de una canalización. Para obtener más información acerca del uso de los registros de CloudWatch con SageMaker AI, consulte CloudWatch Logs para Amazon SageMaker AI.

Errores en el archivo de propiedades

Es posible que tenga problemas si implementa archivos de propiedades de forma incorrecta en la canalización. Para asegurarse de que la implementación de los archivos de propiedades funcione según lo previsto, consulte Transferencia de datos entre pasos.

Problemas al copiar el script al contenedor en el Dockerfile

Puede copiar el script al contenedor o pasarlo mediante el argumento entry_point (de la entidad estimadora) o el argumento code (de la entidad procesadora), como se muestra en el siguiente ejemplo de código.

step_process = ProcessingStep( name="PreprocessAbaloneData", processor=sklearn_processor, inputs = [ ProcessingInput( input_name='dataset', source=..., destination="/opt/ml/processing/code", ) ], outputs=[ ProcessingOutput(output_name="train", source="/opt/ml/processing/train", destination = processed_data_path), ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation", destination = processed_data_path), ProcessingOutput(output_name="test", source="/opt/ml/processing/test", destination = processed_data_path), ], code=os.path.join(BASE_DIR, "process.py"), ## Code is passed through an argument cache_config = cache_config, job_arguments = ['--input', 'arg1'] ) sklearn_estimator = SKLearn( entry_point=os.path.join(BASE_DIR, "train.py"), ## Code is passed through the entry_point framework_version="0.23-1", instance_type=training_instance_type, role=role, output_path=model_path, # New sagemaker_session=sagemaker_session, # New instance_count=1, # New base_job_name=f"{base_job_prefix}/pilot-train", metric_definitions=[ {'Name': 'train:accuracy', 'Regex': 'accuracy_train=(.*?);'}, {'Name': 'validation:accuracy', 'Regex': 'accuracy_validation=(.*?);'} ], )