View a markdown version of this page

Risoluzione dei problemi di Amazon Pipelines SageMaker - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi di Amazon Pipelines SageMaker

Quando usi Amazon SageMaker Pipelines, potresti riscontrare problemi per vari motivi. In questo argomento vengono fornite informazioni sugli errori comuni e su come risolverli.

Problemi relativi alla definizione della pipeline

La definizione della pipeline potrebbe essere formattata in modo errato. Ciò può comportare la mancata esecuzione o un’imprecisione nel processo. Tali errori possono essere rilevati quando viene creata la pipeline o quando si verifica un'esecuzione. Se la definizione non viene convalidata, Pipelines restituisce un messaggio di errore che identifica il carattere in cui il file JSON non è valido. Per risolvere questo problema, rivedi i passaggi creati utilizzando SageMaker AI Python SDK per verificarne la precisione.

È possibile includere le fasi in una definizione di pipeline solo una volta. Per questo motivo, le fasi non possono esistere all’interno di una fase condizionale e di una pipeline nella stessa pipeline.

Esame dei file di log della pipeline

È possibile visualizzare lo stato delle tue fasi con il comando seguente:

execution.list_steps()

Ogni fase include le seguenti informazioni:

  • L'ARN dell'entità lanciata dalla pipeline, ad esempio SageMaker AI job ARN, model ARN o model package ARN.

  • Il motivo dell'errore comprende una breve spiegazione del mancato successo della fase.

  • Se si tratta di una fase condizionale, questa indica se la condizione viene valutata come vera o falsa.

  • Se l'esecuzione riutilizza un'esecuzione di un processo precedente, CacheHit elenca l'esecuzione di origine.

Puoi anche visualizzare i messaggi di errore e i log nell'interfaccia di Amazon Studio. SageMaker Per informazioni su come visualizzare i log in Studio, consultaVisualizzazione dei dettagli dell’esecuzione di una pipeline.

Autorizzazioni mancanti

Sono necessarie le autorizzazioni corrette per il ruolo che crea l'esecuzione della pipeline e le fasi che creano ciascuno dei processi nell'esecuzione della pipeline. Senza queste autorizzazioni, potresti non essere in grado di inviare l'esecuzione della pipeline o eseguire i lavori di SageMaker intelligenza artificiale come previsto. Per garantire che le autorizzazioni siano configurate correttamente, consulta Gestione degli accessi IAM.

Errori di esecuzione dei job

Potresti riscontrare problemi durante l'esecuzione dei passaggi a causa di problemi negli script che definiscono la funzionalità dei tuoi lavori di SageMaker intelligenza artificiale. Ogni job ha una serie di CloudWatch log. Per visualizzare questi registri da Studio, vedereVisualizzazione dei dettagli dell’esecuzione di una pipeline. Per informazioni sull'utilizzo CloudWatch dei log con SageMaker AI, consultaCloudWatch Log per Amazon AI SageMaker.

Errori dei file di proprietà

Potreste avere problemi in caso di implementazione errata dei file di proprietà nella tua pipeline. Per garantire che l'implementazione dei file di proprietà funzioni come previsto, consulta Passaggio dei dati tra le fasi.

Problemi durante la copia dello script nel container nel Dockerfile

Puoi copiare lo script nel contenitore o passarlo tramite l'entry_pointargomento (della tua ModelTrainer entità) o l'codeargomento (dell'entità del tuo processore), come dimostrato nel seguente esempio di codice.

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'] ) from sagemaker.core import image_uris sklearn_image_uri = image_uris.retrieve( framework="sklearn", region=region, version="0.23-1", instance_type=training_instance_type ) sklearn_estimator = ModelTrainer( source_code=SourceCode(entry_script=os.path.join(BASE_DIR, "train.py")), ## Code is passed through source_code training_image=sklearn_image_uri, 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=(.*?);'} ], )