Solução de problemas do Amazon SageMaker Pipelines - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solução de problemas do Amazon SageMaker Pipelines

Ao usar o Amazon SageMaker Pipelines, você pode ter problemas por vários motivos. Este tópico fornece informações sobre erros comuns e como resolvê-los.

Problemas de definição de pipeline

Sua definição de pipeline pode não estar formatada corretamente. Isso pode resultar na falha de execução ou na imprecisão do trabalho. Esses erros podem ser detectados quando o pipeline é criado ou quando ocorre uma execução. Se sua definição não for validada, o Pipelines retornará uma mensagem de erro identificando o caractere em que o arquivo JSON está malformado. Para corrigir esse problema, revise as etapas criadas usando o SDK do SageMaker AI Python para verificar a precisão.

Você só pode incluir etapas em uma definição de pipeline uma vez. Por esse motivo, as etapas não podem existir como parte de uma etapa de condição e de um pipeline no mesmo pipeline.

Examinar logs de pipeline

Você pode visualizar o status das suas etapas usando o seguinte comando:

execution.list_steps()

Cada etapa inclui as seguintes informações:

  • O ARN da entidade lançada pelo pipeline, como o ARN do trabalho de SageMaker IA, o ARN do modelo ou o ARN do pacote de modelos.

  • O motivo da falha inclui uma breve explicação da falha na etapa.

  • Se a etapa for uma etapa de condição, ela indicará se a condição foi avaliada como verdadeira ou falsa. 

  • Se a execução reutilizar uma execução de trabalho anterior, o CacheHit listará a execução de origem. 

Você também pode visualizar as mensagens de erro e os registros na interface do Amazon SageMaker Studio. Para obter informações sobre como ver os logs no Studio, consulte Visualizar os detalhes de uma execução de pipeline.

Permissões ausentes

As permissões corretas são necessárias para o perfil que cria a execução do pipeline e as etapas que criam cada um dos trabalhos na execução do pipeline. Sem essas permissões, talvez você não consiga enviar a execução do pipeline ou executar seus trabalhos de SageMaker IA conforme o esperado. Para garantir que suas permissões sejam configuradas corretamente, consulte Gerenciamento de acesso do IAM.

Erros de execução do trabalho

Você pode ter problemas ao executar suas etapas devido a problemas nos scripts que definem a funcionalidade de suas tarefas de SageMaker IA. Cada trabalho tem um conjunto de CloudWatch registros. Para ver esses registros do Studio, consulteVisualizar os detalhes de uma execução de pipeline. Para obter informações sobre o uso de CloudWatch registros com SageMaker IA, consulteGrupos de registros e streams que o Amazon SageMaker AI envia para o Amazon CloudWatch Logs.

Erros do arquivo de propriedade

Você pode ter problemas ao implantar incorretamente os arquivos de propriedades com seu pipeline. Para garantir que sua implantação de arquivos de propriedades funcione conforme o esperado, consulte Passe dados entre etapas.

Problemas ao copiar o script para o contêiner no Dockerfile

Você pode copiar o script para o contêiner ou passá-lo por meio do argumento entry_point (da entidade estimadora) ou do argumento code (da entidade processadora), conforme demonstrado no exemplo de código a seguir.

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=(.*?);'} ], )