Esecuzione di una pipeline - 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à.

Esecuzione di una pipeline

Dopo aver definito i passaggi della pipeline come grafo aciclico diretto (DAG), potete eseguire la pipeline, che esegue i passaggi definiti nel DAG. Le seguenti procedure dettagliate mostrano come eseguire una pipeline Amazon SageMaker AI utilizzando l' drag-and-dropeditor visivo di Amazon Studio SageMaker o l'SDK Amazon Python. SageMaker

Per iniziare una nuova esecuzione della pipeline, procedi come segue:

Studio
  1. Apri SageMaker Studio seguendo le istruzioni in Launch Amazon SageMaker Studio.

  2. Nel riquadro di navigazione a sinistra, seleziona Pipelines (Pipeline).

  3. (Facoltativo) Per filtrare l'elenco delle pipeline per nome, inserisci un nome completo o parziale della pipeline nel campo di ricerca.

  4. Scegliete il nome di una pipeline per aprire la visualizzazione dei dettagli della pipeline.

  5. Scegli Visual Editor in alto a destra.

  6. Per avviare un'esecuzione dalla versione più recente, scegli Esecuzioni.

  7. Per avviare un'esecuzione da una versione specifica, segui questi passaggi:

    • Scegli l'icona della versione nella barra degli strumenti in basso per aprire il pannello della versione.

    • Scegliete la versione della pipeline che desiderate eseguire.

    • Passa il mouse sull'elemento della versione per visualizzare il menu a tre punti, scegli Esegui.

    • (Facoltativo) Per visualizzare una versione precedente della pipeline, scegliete Anteprima dal menu a tre punti nel pannello delle versioni. Puoi anche modificare la versione scegliendo Modifica nella barra delle notifiche.

Nota

Se la pipeline fallisce, il banner di stato mostrerà lo stato Non riuscito. Dopo aver risolto il problema relativo alla fase non riuscita, scegli Riprova nel banner che indica lo stato per riprendere l'esecuzione della pipeline da quella fase.

Studio Classic
  1. Accedi ad Amazon SageMaker Studio Classic. Per ulteriori informazioni, consulta Launch Amazon SageMaker Studio Classic.

  2. Nella barra laterale di Studio Classic, scegli l'icona Home ( Black square icon representing a placeholder or empty image. ).

  3. Seleziona Pipeline dal menu.

  4. Per restringere l'elenco delle pipeline per nome, inserite un nome completo o parziale della pipeline nel campo di ricerca.

  5. Selezionate il nome di una tubazione.

  6. Dalla scheda Esecuzioni o Grafico dell'elenco delle esecuzioni, scegli Crea esecuzione.

  7. Inserisci o aggiorna le seguenti informazioni necessarie:

    • Nome: il nome deve essere univoco per l’account nella Regione AWS .

    • ProcessingInstanceCount— Il numero di istanze da utilizzare per l'elaborazione.

    • ModelApprovalStatus— Per la vostra comodità.

    • InputDataUrl— L'URI Amazon S3 dei dati di input.

  8. Scegli Avvia.

Una volta che la pipeline è in esecuzione, puoi visualizzare i dettagli dell'esecuzione scegliendo Visualizza dettagli nel banner di stato.

Per interrompere l'esecuzione, scegli Stop nel banner di stato. Per riprendere l'esecuzione dal punto in cui era stata interrotta, scegli Riprendi nel banner che indica lo stato.

Nota

Se la pipeline fallisce, il banner di stato mostrerà lo stato Non riuscito. Dopo aver risolto il problema relativo alla fase non riuscita, scegli Riprova nel banner che indica lo stato per riprendere l'esecuzione della pipeline da quella fase.

Dopo aver creato una definizione di pipeline utilizzando SageMaker AI Python SDK, puoi inviarla SageMaker all'IA per avviare l'esecuzione. Il seguente tutorial mostra come inviare una pipeline, avviare un'esecuzione, esaminare i risultati di tale esecuzione ed eliminare la pipeline.

Prerequisiti

Questo tutorial richiede quanto segue:

  • Un' SageMaker istanza di notebook. 

  • Una definizione di pipeline Pipelines. Questo tutorial presuppone che tu stia utilizzando la definizione della pipeline creata completando il tutorial Definire una pipeline.

Fase 1: avvio della pipeline

Per prima cosa dovrai avviare la pipeline.

Per avviare la pipeline
  1. Esamina la definizione della pipeline JSON per assicurarti che sia ben formata.

    import json json.loads(pipeline.definition())
  2. Invia la definizione della pipeline al servizio Pipelines per creare una pipeline se non esiste o aggiorna la pipeline se esiste. Il ruolo passato viene utilizzato da Pipelines per creare tutti i lavori definiti nei passaggi.

    pipeline.upsert(role_arn=role)
  3. Avvio dell'esecuzione di una pipeline.

    execution = pipeline.start()

Fase 2: esame dell'esecuzione di una pipeline

Successivamente, è necessario esaminare l'esecuzione della pipeline.

Per esaminare l'esecuzione di una pipeline
  1. Descrivi lo stato di esecuzione della pipeline per assicurarti che sia stata creata e avviata correttamente.

    execution.describe()
  2. Attendi la fine dell'esecuzione.

    execution.wait()
  3. Elenca le fasi di esecuzione e il loro stato.

    execution.list_steps()

    L'aspetto dell'output deve essere simile al seguente:

    [{'StepName': 'AbaloneTransform', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 870000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 45, 50, 492000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TransformJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:transform-job/pipelines-cfvy1tjuxdq8-abalonetransform-ptyjoef3jy'}}}, {'StepName': 'AbaloneRegisterModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 929000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 28, 15000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'RegisterModel': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model-package/abalonemodelpackagegroupname/1'}}}, {'StepName': 'AbaloneCreateModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 895000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 708000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Model': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model/pipelines-cfvy1tjuxdq8-abalonecreatemodel-jl94rai0ra'}}}, {'StepName': 'AbaloneMSECond', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 25, 558000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 329000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Condition': {'Outcome': 'True'}}}, {'StepName': 'AbaloneEval', 'StartTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 767000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 18, 80000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneeval-zfraozhmny'}}}, {'StepName': 'AbaloneTrain', 'StartTime': datetime.datetime(2020, 11, 21, 2, 34, 55, 867000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 34000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TrainingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:training-job/pipelines-cfvy1tjuxdq8-abalonetrain-tavd6f3wdf'}}}, {'StepName': 'AbaloneProcess', 'StartTime': datetime.datetime(2020, 11, 21, 2, 30, 27, 160000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 34, 48, 390000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneprocess-mgqyfdujcj'}}}]
  4. Una volta completata l'esecuzione della pipeline, scarica il file  evaluation.jsonrisultante da Amazon S3 per esaminare il report.

    evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)

Fase 3: sostituzione dei parametri predefiniti per l'esecuzione di una pipeline

È possibile eseguire esecuzioni aggiuntive della pipeline specificando diversi parametri della pipeline per sovrascrivere i valori predefiniti.

Per sovrascrivere i parametri predefiniti
  1. Crea l'esecuzione della pipeline. Ciò avvia un'altra esecuzione della pipeline con la sovrascrittura dello stato di approvazione del modello impostata su “Approvato”. Ciò significa che la versione del pacchetto modello generata dalla RegisterModel fase è automaticamente pronta per la distribuzione tramite CI/CD pipeline, ad esempio con SageMaker Projects. Per ulteriori informazioni, consulta MLOps Automazione con SageMaker progetti.

    execution = pipeline.start( parameters=dict( ModelApprovalStatus="Approved", ) )
  2. Attendi la fine dell'esecuzione.

    execution.wait()
  3. Elenca le fasi di esecuzione e il loro stato.

    execution.list_steps()
  4. Una volta completata l'esecuzione della pipeline, scarica il file  evaluation.jsonrisultante da Amazon S3 per esaminare il report.

    evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)

Fase 4: interruzione ed eliminazione dell'esecuzione di una pipeline

Quando hai terminato con la pipeline, puoi interrompere le esecuzioni in corso ed eliminare la pipeline.

Per interropere ed eliminare l'esecuzione di una pipeline
  1. Interrompi l'esecuzione della pipeline.

    execution.stop()
  2. Elimina la pipeline

    pipeline.delete()