Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS

Il 9 agosto 2022 abbiamo annunciato la disponibilità generale della condivisione tra account di Entità Amazon SageMaker Pipelines. Ora puoi utilizzare il supporto su più account per Pipeline di Amazon SageMaker per condividere le entità della pipeline tra gli account AWS e accedere direttamente alle pipeline condivise Amazon Sage Maker Chiamate API.

I clienti stanno adottando sempre più architetture multi-account per la distribuzione e la gestione dei flussi di lavoro di machine learning (ML) con SageMaker Pipelines. Ciò comporta la creazione di flussi di lavoro in account di sviluppo o sperimentazione (sviluppo), la loro distribuzione e test in un account di test o pre-produzione (test) e infine la loro promozione negli account di produzione (produzione) per l'integrazione con altri processi aziendali. Puoi trarre vantaggio dalla condivisione tra account delle pipeline SageMaker nei seguenti casi d'uso:

  • Quando i data scientist creano flussi di lavoro ML in un account di sviluppo, tali flussi di lavoro vengono quindi distribuiti da un ingegnere ML come pipeline SageMaker in un account di test dedicato. Per monitorare ulteriormente tali flussi di lavoro, i data scientist ora richiedono l'autorizzazione di sola lettura su più account per la pipeline distribuita nell'account di prova.
  • Anche gli ingegneri ML, gli amministratori ML e i team di conformità, che gestiscono la distribuzione e le operazioni di tali flussi di lavoro ML da un account di servizi condivisi, richiedono visibilità sulla pipeline distribuita nell'account di prova. Potrebbero anche richiedere autorizzazioni aggiuntive per avviare, arrestare e riprovare tali flussi di lavoro ML.

In questo post presentiamo un esempio di architettura multi-account per lo sviluppo e la distribuzione di flussi di lavoro ML con SageMaker Pipelines.

Panoramica della soluzione

Una strategia multi-account ti aiuta a ottenere l'isolamento di dati, progetti e team supportando al contempo le fasi del ciclo di vita dello sviluppo del software. La condivisione della pipeline tra più account supporta una strategia multi-account, eliminando il sovraccarico derivante dall'accesso e dall'uscita da più account e migliorando i flussi di lavoro di test e distribuzione ML condividendo le risorse direttamente su più account.

In questo esempio, abbiamo un team di data science che utilizza un account di sviluppo dedicato per lo sviluppo iniziale della pipeline SageMaker. Questa pipeline viene quindi consegnata a un ingegnere ML, che crea un file pipeline di integrazione continua e distribuzione continua (CI/CD). nel proprio account dei servizi condivisi per distribuire questa pipeline in un account di prova. Per poter continuare a monitorare e controllare la pipeline distribuita dai rispettivi account di sviluppo e di servizi condivisi, condivisioni di risorse sono impostati con Gestore dell'accesso alle risorse AWS negli account di test e di sviluppo. Con questa configurazione, l'ingegnere ML e il data scientist possono ora monitorare e controllare le pipeline negli account di sviluppo e test dai rispettivi account, come mostrato nella figura seguente.

Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Nel flusso di lavoro, il data scientist e l'ingegnere ML eseguono i seguenti passaggi:

  1. Il data scientist (DS) crea una pipeline del modello nell'account di sviluppo.
  2. L'ingegnere ML (MLE) produce la pipeline del modello e crea una pipeline (per questo post la chiameremo sagemaker-pipeline).
  3. sagemaker-pipeline il codice è impegnato in un AWS CodeCommit repository nell'account dei servizi condivisi.
  4. Il data scientist crea una condivisione di risorse RAM AWS per sagemaker-pipeline e lo condivide con l'account dei servizi condivisi, che accetta la condivisione delle risorse.
  5. Dall'account dei servizi condivisi, gli ingegneri ML sono ora in grado di descrivere, monitorare e amministrare le esecuzioni della pipeline nell'account di sviluppo utilizzando Chiamate API SageMaker.
  6. Una pipeline CI/CD attivata nell'account del servizio condiviso crea e distribuisce il codice nell'account di test utilizzando AWS Code Pipeline.
  7. La pipeline CI/CD viene creata ed eseguita sagemaker-pipeline nel conto di prova.
  8. Dopo aver corso sagemaker-pipeline nell'account di prova, la pipeline CI/CD crea una condivisione di risorse per sagemaker-pipeline nel conto di prova.
  9. Una condivisione di risorse dal test sagemaker-pipeline con autorizzazioni di sola lettura viene creato con l'account dev, che accetta la condivisione delle risorse.
  10. Il data scientist è ora in grado di descrivere e monitorare lo stato di esecuzione della pipeline di test utilizzando le chiamate API SageMaker dall'account di sviluppo.
  11. Una condivisione di risorse dal test sagemaker-pipeline con autorizzazioni estese viene creato con l'account dei servizi condivisi, che accetta la condivisione delle risorse.
  12. L'ingegnere ML è ora in grado di descrivere, monitorare e amministrare l'esecuzione della pipeline di test utilizzando le chiamate API SageMaker dall'account dei servizi condivisi.

Nelle sezioni seguenti, entriamo più nel dettaglio e forniamo una dimostrazione su come impostare la condivisione tra account per le pipeline SageMaker.

Come creare e condividere pipeline SageMaker tra account

In questa sezione, esaminiamo i passaggi necessari per creare e condividere pipeline tra account utilizzando AWS RAM e l'API SageMaker.

Crea l'ambiente

Innanzitutto, dobbiamo configurare un ambiente multi-account per dimostrare la condivisione tra account delle pipeline SageMaker:

  1. Configura due account AWS (sviluppo e test). Puoi configurarlo come account membro di un'organizzazione o come account indipendenti.
  2. Se stai configurando i tuoi account come membro di un'organizzazione, puoi abilitare condivisione delle risorse con la tua organizzazione. Con questa impostazione, quando condividi risorse nella tua organizzazione, AWS RAM non invia inviti alle entità. Le entità della tua organizzazione ottengono l'accesso alle risorse condivise senza scambiare inviti.
  3. Nell'account di prova, avvia Amazon Sage Maker Studio ed eseguire il notebook modello di pipeline di distribuzione del registro dei treni. Questo crea una pipeline di esempio nel tuo account di prova. Per semplificare la dimostrazione, utilizziamo SageMaker Studio nell'account di prova per avviare la pipeline. Per i progetti di vita reale, dovresti utilizzare Studio solo nell'account di sviluppo e avviare SageMaker Pipeline nell'account di prova utilizzando gli strumenti CI/CD.

Segui le istruzioni nella sezione successiva per condividere questa pipeline con l'account di sviluppo.

Configurare una condivisione delle risorse della pipeline

Per condividere la pipeline con l'account sviluppatore, completa i seguenti passaggi:

  1. Sulla console RAM AWS, scegli Crea condivisione di risorse.
  2. Nel Seleziona il tipo di risorsascegli Pipeline SageMaker.
  3. Seleziona la pipeline creata nel passaggio precedente.
  4. Scegli Avanti.
  5. Nel Permessi, scegli le autorizzazioni associate.
  6. Scegli Avanti.
    Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Successivamente, decidi come concedere l'accesso alle entità.
  7. Se devi condividere la pipeline solo all'interno degli account della tua organizzazione, seleziona Consenti la condivisione solo all'interno della tua organizzazione; altrimenti seleziona Consenti la condivisione con chiunque.
  8. Nel Principals, scegli il tipo di entità (puoi utilizzare un account, un'organizzazione o un'unità organizzativa AWS, in base ai requisiti di condivisione). Per questo post, condividiamo con chiunque a livello di account AWS.
  9. Seleziona il tuo ID principale.
  10. Scegli Avanti.
    Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  11. Sulla Rivedi e crea pagina, verifica che le tue informazioni siano corrette e scegli Crea condivisione di risorse.
    Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.
  12. Passa al tuo account di destinazione (per questo post, il tuo account di sviluppo).
  13. Sulla console RAM AWS, sotto Condiviso con me nel pannello di navigazione, scegli Condivisioni di risorse.
  14. Scegli la tua condivisione di risorse e scegli Accetta la condivisione delle risorse.
    Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Autorizzazioni di condivisione delle risorse

Quando crei la condivisione delle risorse, puoi scegliere tra una delle due policy di autorizzazione supportate da associare al tipo di risorsa della pipeline SageMaker. Entrambe le policy concedono l'accesso a qualsiasi pipeline selezionata e a tutte le sue esecuzioni.

I AWSRAMDefaultPermissionSageMakerPipeline la policy consente le seguenti azioni di sola lettura:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:Search"

I AWSRAMPermissionSageMakerPipelineAllowExecution La policy include tutte le autorizzazioni di sola lettura della policy predefinita e consente inoltre agli account condivisi di avviare, arrestare e riprovare l'esecuzione della pipeline.

La policy di autorizzazione estesa per l'esecuzione della pipeline consente le seguenti azioni:

"sagemaker:DescribePipeline"
"sagemaker:DescribePipelineDefinitionForExecution"
"sagemaker:DescribePipelineExecution"
"sagemaker:ListPipelineExecutions"
"sagemaker:ListPipelineExecutionSteps"
"sagemaker:ListPipelineParametersForExecution"
"sagemaker:StartPipelineExecution"
"sagemaker:StopPipelineExecution"
"sagemaker:RetryPipelineExecution"
"sagemaker:Search"

Accedi alle entità della pipeline condivise tramite chiamate API dirette

In questa sezione spiegheremo come utilizzare varie chiamate API SageMaker Pipeline per ottenere visibilità sulle pipeline in esecuzione su account remoti che sono stati condivisi con te. Per testare le API rispetto alla pipeline in esecuzione nell'account di prova dall'account di sviluppo, accedi all'account di sviluppo e utilizza AWS CloudShell.

Per le chiamate API SageMaker Pipeline su più account, devi sempre utilizzare l'ARN della pipeline come identificazione della pipeline. Ciò include anche i comandi che richiedono il nome della pipeline, in cui è necessario utilizzare l'ARN della pipeline come nome della pipeline.

Per ottenere l'ARN della pipeline, nel tuo account di prova vai ai dettagli della pipeline in Studio tramite Risorse SageMaker.

Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Scegli Condotte nell'elenco delle tue risorse.

Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Scegli la tua pipeline e vai alla tua pipeline Impostazioni profilo scheda. Puoi trovare l'ARN della pipeline con il tuo Metadati informazione. Per questo esempio, il tuo ARN è definito come "arn:aws:sagemaker:us-east-1:<account-id>:pipeline/serial-inference-pipeline".

Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

ElencoEsecuzioniPipeline

Questa chiamata API elenca le corse della tua pipeline. Esegui il comando seguente, sostituendo $SHARED_PIPELINE_ARN con l'ARN della pipeline di CloudShell o utilizzando il file Interfaccia della riga di comando di AWS (AWS CLI) configurato con il file appropriato Gestione dell'identità e dell'accesso di AWS (SONO) ruolo:

aws sagemaker list-pipeline-executions --pipeline-name $SHARED_PIPELINE_ARN

La risposta elenca tutte le esecuzioni della pipeline con i relativi file PipelineExecutionArn, StartTime, PipelineExecutionStatuse PipelineExecutionDisplayName:

{
  "PipelineExecutionSummaries": [
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:32:05.543000+00:00",
      "PipelineExecutionStatus": "Executing",
      "PipelineExecutionDisplayName": "execution-321"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:28:03.680000+00:00",
      "PipelineExecutionStatus": "Stopped",
      "PipelineExecutionDisplayName": "test"
    },
    {
      "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
      "StartTime": "2022-08-10T11:03:47.406000+00:00",
      "PipelineExecutionStatus": "Succeeded",
      "PipelineExecutionDisplayName": "execution-123"
    }
  ]
}

DescriviPipeline

Questa chiamata API descrive il dettaglio della tua pipeline. Esegui il comando seguente, sostituendo $SHARED_PIPELINE_ARN con l'ARN della pipeline:

aws sagemaker describe-pipeline --pipeline-name $SHARED_PIPELINE_ARN

La risposta fornisce i metadati della pipeline, nonché informazioni sulla sua creazione e modifica:

Output(truncated): 
{
"PipelineArn": "arn:aws:sagemaker:<region>:<account-id>:pipeline/<pipeline_name>",
"PipelineName": "serial-inference-pipeline",
"PipelineDisplayName": "serial-inference-pipeline",
"PipelineDefinition": "{"Version": "2020-12-01", "Metadata": {}, "Parameters": [{"Name": "TrainingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceType", "Type": "String", "DefaultValue": "ml.m5.xlarge"}, {"Name": "ProcessingInstanceCount", "Type": "Integer", "DefaultValue": 1}, {"Name": "InputData", "Type":

..

"PipelineStatus": "Active",
"CreationTime": "2022-08-08T21:33:39.159000+00:00",
"LastModifiedTime": "2022-08-08T21:48:14.274000+00:00",
"CreatedBy": {},
"LastModifiedBy": {}
}

Descrivere l'esecuzione della pipeline

Questa chiamata API descrive il dettaglio della corsa della pipeline. Esegui il comando seguente, sostituendo $SHARED_PIPELINE_ARN con l'ARN della pipeline:

aws sagemaker describe-pipeline-execution 
--pipeline-execution-arn $PIPELINE_EXECUTION_ARN

La risposta fornisce dettagli sull'esecuzione della pipeline, incluso il file PipelineExecutionStatus, ExperimentNamee TrialName:

{
  "PipelineArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>",
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>",
  "PipelineExecutionDisplayName": "execution-123",
  "PipelineExecutionStatus": "Succeeded",
  "PipelineExperimentConfig": {
  "ExperimentName": "<pipeline_name>",
  "TrialName": "<execution_id>"
},
  "CreationTime": "2022-08-10T11:03:47.406000+00:00",
  "LastModifiedTime": "2022-08-10T11:15:01.102000+00:00",
  "CreatedBy": {},
  "LastModifiedBy": {}
}

StartPipelineExecution

Questa chiamata API inizio una corsa di pipeline. Esegui il comando seguente, sostituendo $SHARED_PIPELINE_ARN con l'ARN della pipeline e $CLIENT_REQUEST_TOKEN con un identificatore univoco con distinzione tra maiuscole e minuscole generato per questa esecuzione. L'identificatore deve contenere tra 32 e 128 caratteri. Ad esempio, puoi generare una stringa utilizzando il comando Comando AWS CLI km generate-random.

aws sagemaker start-pipeline-execution 
  --pipeline-name $SHARED_PIPELINE_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

Come risposta, questa chiamata API restituisce il file PipelineExecutionArn della corsa iniziata:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

InterrompiesecuzionePipeline

Questa chiamata API si ferma una corsa di pipeline. Esegui il comando seguente, sostituendo $PIPELINE_EXECUTION_ARN con l'ARN di esecuzione della pipeline della pipeline in esecuzione e $CLIENT_REQUEST_TOKEN con un identificatore univoco con distinzione tra maiuscole e minuscole generato per questa esecuzione. L'identificatore deve contenere tra 32 e 128 caratteri. Ad esempio, puoi generare una stringa utilizzando il comando Comando AWS CLI km generate-random.

aws sagemaker stop-pipeline-execution 
  --pipeline-execution-arn $PIPELINE_EXECUTION_ARN 
  --client-request-token $CLIENT_REQUEST_TOKEN

Come risposta, questa chiamata API restituisce il file PipelineExecutionArn della pipeline fermata:

{
  "PipelineExecutionArn": "arn:aws:sagemaker:<region>:<account_id>:pipeline/<pipeline_name>/execution/<execution_id>"
}

Conclusione

La condivisione tra account delle pipeline SageMaker ti consente di condividere in modo sicuro le entità della pipeline tra account AWS e di accedere alle pipeline condivise tramite chiamate API dirette, senza dover accedere e disconnettersi da più account.

In questo post, abbiamo approfondito la funzionalità per mostrare come condividere le pipeline tra account e accedervi tramite chiamate API SageMaker.

Come passaggio successivo, puoi utilizzare questa funzionalità per il tuo prossimo progetto ML.

Risorse

Per iniziare con SageMaker Pipelines e condividere pipeline tra account, fare riferimento alle seguenti risorse:


Circa gli autori

Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Ram Vital è un ML Specialist Solutions Architect presso AWS. Ha oltre 20 anni di esperienza nell'architettura e nella costruzione di applicazioni distribuite, ibride e cloud. È appassionato di creazione di soluzioni AI/ML e Big Data sicure e scalabili per aiutare i clienti aziendali con il loro percorso di adozione e ottimizzazione del cloud per migliorare i loro risultati aziendali. Nel tempo libero ama il tennis, la fotografia e i film d'azione.

Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Maira Ladeira Tanke è un ML Specialist Solutions Architect presso AWS. Con un background in data science, ha 9 anni di esperienza nell'architettura e nella creazione di applicazioni ML con clienti di tutti i settori. In qualità di responsabile tecnico, aiuta i clienti ad accelerare il raggiungimento del valore aziendale attraverso tecnologie emergenti e soluzioni innovative. Nel suo tempo libero, Maira ama viaggiare e passare il tempo con la sua famiglia in un posto caldo.

Utilizza la condivisione della pipeline Amazon SageMaker per visualizzare o gestire le pipeline tra gli account AWS PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Gabriele Zylka è un consulente di servizi professionali presso AWS. Lavora a stretto contatto con i clienti per accelerare il loro percorso di adozione del cloud. Specializzato nel dominio MLOps, si concentra sulla produzione di carichi di lavoro di machine learning automatizzando i cicli di vita del machine learning end-to-end e aiutando a raggiungere i risultati aziendali desiderati. Nel tempo libero ama viaggiare e fare escursioni nelle Alpi Bavaresi.

Timestamp:

Di più da Apprendimento automatico di AWS