Solução de problemas do Amazon SageMaker Pipelines
Ao usar o Amazon SageMaker Pipelines, você pode enfrentar 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 SageMaker Python SDK 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 do SageMaker, 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 logs 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 do SageMaker 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 enfrentar dificuldades ao executar suas etapas devido a problemas nos scripts que definem a funcionalidade dos seus trabalhos do SageMaker. Cada trabalho tem um conjunto de logs do CloudWatch. Para ver esses logs a partir do Studio, consulte Visualizar os detalhes de uma execução de pipeline. Para obter informações sobre como usar os logs do CloudWatch no SageMaker, consulte Grupos de logs e fluxos que o Amazon SageMaker 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=(.*?);'} ], )