Utilizza i SageMaker modelli di progetto forniti - Amazon SageMaker

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à.

Utilizza i SageMaker modelli di progetto forniti

Amazon SageMaker fornisce modelli di progetto che creano l'infrastruttura necessaria per creare una MLOps soluzione per l'integrazione e la distribuzione continue (CI/CD) di modelli ML. Utilizza questi modelli per elaborare dati, estrarre funzionalità, addestrare e testare modelli, registrare i modelli nel registro dei SageMaker modelli e distribuire i modelli per l'inferenza. È possibile personalizzare il codice iniziale e i file di configurazione in base alle proprie esigenze.

Importante

A partire dal 25 luglio 2022, sono necessari ruoli aggiuntivi per utilizzare i modelli di progetto. Per un elenco completo dei ruoli richiesti e le istruzioni su come crearli, consulta SageMaker Autorizzazioni Studio necessarie per utilizzare i progetti. Se non disponi dei nuovi ruoli, riceverai il messaggio di errore non CodePipeline è autorizzato a eseguire AssumeRole sul ruolo arn:aws:iam: :xxx:role/service-role/ AmazonSageMakerServiceCatalogProductsCodePipelineRole quando tenti di creare un nuovo progetto e non puoi procedere.

SageMaker i modelli di progetto offrono la seguente scelta di archivi di codice, strumenti di automazione del flusso di lavoro e fasi della pipeline:

  • Repository di codice: AWS CodeCommit o repository Git di terze parti come Bitbucket GitHub

  • Automazione del flusso di lavoro CI/CD: o Jenkins AWS CodePipeline

  • Fasi della pipeline: creazione e addestramento del modello, implementazione del modello o entrambi

La discussione seguente fornisce una panoramica di ogni modello che puoi scegliere quando crei il tuo progetto. SageMaker Puoi anche visualizzare i modelli disponibili in Studio (o Studio Classic) seguendo la procedura dettagliata del Passaggio 1: Crea il progetto del progetto.

Per step-by-step istruzioni su come creare un progetto reale, puoi seguire una delle procedure dettagliate del progetto:

MLOpsmodello per la creazione, la formazione e l'implementazione di modelli

Questo modello è una combinazione dei due modelli seguenti, ognuno dei quali può essere utilizzato indipendentemente, e contiene tutte le risorse fornite in tali modelli.

  • Archivio di codice: AWS CodeCommit

  • Automazione del flusso di lavoro CI/CD: AWS CodePipeline

MLOpsmodello per la creazione e la formazione di modelli

Utilizza questo modello quando desideri una MLOps soluzione per elaborare dati, estrarre funzionalità, addestrare e testare modelli e registrare i modelli nel registro dei SageMaker modelli.

Questo modello fornisce le seguenti risorse:

  • Un AWS CodeCommit repository che contiene codice di esempio che crea una SageMaker pipeline Amazon in codice Python e mostra come creare e aggiornare la pipeline. SageMaker Questo repository contiene anche un notebook Python di esempio che puoi aprire ed eseguire in Studio (o Studio Classic).

  • Una AWS CodePipeline pipeline con passaggi di origine e compilazione. La fase di origine punta al CodeCommit repository. La fase di compilazione ottiene il codice da quel repository, crea e aggiorna la SageMaker pipeline, avvia un'esecuzione della pipeline e attende il completamento dell'esecuzione della pipeline.

  • Viene eseguito un bucket Amazon S3 per archiviare gli artefatti, inclusi gli artefatti CodePipeline e tutti gli CodeBuild artefatti generati dalla pipeline. SageMaker

Il diagramma seguente illustra il flusso di lavoro e le AWS risorse utilizzate da questo modello per aiutarti a creare e addestrare i tuoi modelli.

Il flusso di lavoro della pipeline creato utilizzando il modello di progetto per la creazione di modelli e l'addestramento.
MLOpsmodello per la distribuzione del modello

Utilizza questo modello per automatizzare la distribuzione dei modelli nel registro dei modelli sugli SageMaker endpoint per l' SageMaker inferenza in tempo reale. Questo modello riconosce le modifiche nel registro dei modelli. Quando una nuova versione del modello viene registrata e approvata, viene avviata automaticamente l’implementazione.

Il modello fornisce un CodeCommit repository con file di configurazione per specificare le fasi di implementazione del modello, AWS CloudFormation modelli per definire gli endpoint come infrastruttura e codice iniziale per testare l'endpoint.

Questo modello fornisce le seguenti risorse:

  • Un AWS CodeCommit repository che contiene codice di esempio che distribuisce modelli sugli endpoint in ambienti di staging e produzione.

  • Una AWS CodePipeline pipeline con origine, build e fasi. deploy-to-staging deploy-to-production La fase di origine punta al CodeCommit repository e la fase di compilazione ottiene il codice da quel repository e genera CloudFormation stack da distribuire. Le deploy-to-production fasi deploy-to-staging successive distribuiscono gli CloudFormation stack nei rispettivi ambienti. Esiste una fase di approvazione manuale tra la fase di preparazione e quella di produzione, in modo che un MLOps tecnico debba approvare il modello prima che venga distribuito in produzione.

    C'è anche una fase di approvazione programmatica con test segnaposto nel codice di esempio presente nel repository. CodeCommit È possibile aggiungere test aggiuntivi per sostituire i test segnaposto.

  • Viene eseguito un bucket Amazon S3 per archiviare gli artefatti, inclusi gli artefatti CodePipeline e tutti gli CodeBuild artefatti generati dalla pipeline. SageMaker

  • Un CloudWatch evento per avviare la pipeline quando una versione del pacchetto modello viene approvata o rifiutata.

Il diagramma seguente illustra il flusso di lavoro e AWS le risorse utilizzate da questo modello per aiutarvi a distribuire i modelli.

Il flusso di lavoro della pipeline creato utilizzando il modello di progetto per la distribuzione del modello.

Come accennato in precedenza, consulta la guida dettagliata sui progetti per una dimostrazione che utilizza questo modello per creare un progetto reale.

MLOpsmodello per la creazione di modelli, la formazione, l'implementazione e Amazon SageMaker Model Monitor

Questo modello è un'estensione del MLOps modello per la creazione, la formazione e la distribuzione di modelli. Include sia i componenti per la creazione del modello, la formazione e la distribuzione del modello, sia un SageMaker modello Amazon Model Monitor aggiuntivo che fornisce i seguenti tipi di monitoraggio:

  • Archivio di codice: AWS CodeCommit

  • Automazione del flusso di lavoro CI/CD: AWS CodePipeline

MLOpsmodello per Amazon SageMaker Model Monitor

Puoi utilizzare questo modello per una MLOps soluzione per implementare uno o più monitor Amazon per la qualità dei SageMaker dati, la qualità del modello, la distorsione dei modelli e l'esplicabilità dei modelli per monitorare un modello distribuito su un endpoint di inferenza. SageMaker

Questo modello fornisce le seguenti risorse:

  • Un AWS CodeCommit repository che contiene codice Python di esempio che ottiene le linee di base utilizzate dai monitor dal Model Registry e aggiorna i parametri SageMaker del modello per gli ambienti di staging e produzione. Contiene anche un AWS CloudFormation modello per creare Amazon SageMaker Model Monitor.

  • Una AWS CodePipeline pipeline con fasi di origine, compilazione e distribuzione. La fase di origine rimanda al repository. CodePipeline La fase di creazione recupera il codice da quel repository, ottiene il riferimento dal registro dei modelli e aggiorna i parametri del modello per gli ambienti di staging e di produzione. Le fasi di implementazione implementano i monitor configurati negli ambienti di staging e di produzione. La fase di approvazione manuale, all'interno della DeployStaging fase, richiede di verificare che l' SageMaker endpoint di produzione sia raggiunto InService prima dell'approvazione e del passaggio alla fase. DeployProd

  • Il modello utilizza lo stesso bucket S3 creato dal modello per la creazione, la formazione e l'implementazione del MLOps modello per archiviare gli output dei monitor.

  • Due regole di Amazon EventBridge Events avviano Amazon SageMaker Model Monitor AWS CodePipeline ogni volta che l' SageMaker endpoint di staging viene aggiornato o viene apportata una modifica al codice nel repository. CodePipeline

MLOpsmodello per la creazione di immagini, la creazione di modelli e la distribuzione di modelli

Questo modello è un'estensione di MLOpsmodello per la creazione, la formazione e l'implementazione di modelli. Include sia i componenti per la creazione, l’addestramento e l’implementazione dei modelli, sia le seguenti opzioni:

  • Includi immagine di elaborazione/pipeline di creazione

  • Includi immagine di addestramento/pipeline di creazione

  • Includi immagine di inferenza/pipeline di creazione

Per ciascuno dei componenti selezionati durante la creazione del progetto, utilizzando il modello vengono creati i seguenti componenti:

  • Un ECR repository Amazon

  • Un'immagine SageMaker

  • Un CodeCommit repository contenente un Dockerfile che puoi personalizzare

  • A CodePipeline che viene avviato dalle modifiche al repository CodePipeline

  • Un CodeBuild progetto che crea un'immagine Docker e la registra nel repository Amazon ECR

  • Una EventBridge regola che avvia la pianificazione CodePipeline

Quando CodePipeline viene avviato, crea un nuovo contenitore Docker e lo registra in un repository Amazon. ECR Quando un nuovo contenitore viene registrato nel ECR repository Amazon, ne ImageVersion viene aggiunto uno nuovo all' SageMaker immagine. Questo avvia la pipeline di creazione del modello che, a sua volta, avvia la pipeline di distribuzione.

L'immagine appena creata viene utilizzata nelle parti del flusso di lavoro relative alla creazione, all’addestramento e all’implementazione di modelli, ove applicabile.

MLOpsmodello per la creazione, la formazione e la distribuzione di modelli con repository Git di terze parti utilizzando CodePipeline

  • Repository di codice: Git di terze parti. Stabilisci la AWS CodeStar connessione dal tuo AWS account all' GitHub utente o all'organizzazione. Aggiungi un tag con la chiave sagemaker e il valore true a questa connessione AWS CodeStar .

  • Automazione del flusso di lavoro CI/CD: AWS CodePipeline

Questo modello fornisce le seguenti risorse:

  • Associazioni con uno o più repository Git specificati dal cliente.

  • Una AWS CodePipeline pipeline con origine deploy-to-staging, build e passaggi. deploy-to-production La fase di origine punta al repository Git di terze parti e la fase di compilazione ottiene il codice da quel repository e genera CloudFormation stack da distribuire. Le deploy-to-production fasi deploy-to-staging successive distribuiscono gli CloudFormation stack nei rispettivi ambienti. Esiste una fase di approvazione manuale tra la fase di preparazione e quella di produzione, in modo che un MLOps tecnico debba approvare il modello prima che venga distribuito in produzione.

  • Un AWS CodeBuild progetto per popolare i repository Git con le informazioni sul codice seed. Ciò richiede una AWS CodeStar connessione dal tuo AWS account al tuo account sull'host del repository Git.

  • Viene eseguito un bucket Amazon S3 per archiviare gli artefatti, inclusi gli artefatti CodePipeline e tutti gli CodeBuild artefatti generati dalla pipeline. SageMaker

Come accennato in precedenza, consulta la guida dettagliata sui progetti usando repository Git di terze parti per una dimostrazione che utilizza questo modello per creare un progetto reale.

MLOpsmodello per la creazione, l'addestramento e la distribuzione di modelli con repository Git di terze parti utilizzando Jenkins

  • Repository di codice: Git di terze parti. Stabilisci la AWS CodeStar connessione dal tuo AWS account all' GitHub utente o all'organizzazione. Aggiungi un tag con la chiave sagemaker e il valore true a questa connessione AWS CodeStar .

  • Automazione del flusso di lavoro CI/CD: Jenkins

Questo modello fornisce le seguenti risorse:

  • Associazioni con uno o più repository Git specificati dal cliente.

  • Codice iniziale per generare pipeline Jenkins con codice sorgente deploy-to-staging, build e deploy-to-production step. La fase di origine punta al repository Git specificato dal cliente. La fase di compilazione ottiene il codice da quel repository e genera due stack. CloudFormation Le fasi di distribuzione distribuiscono gli CloudFormation stack nei rispettivi ambienti. Esiste una fase di approvazione tra la fase di preparazione e quella di produzione.

  • Un AWS CodeBuild progetto per popolare i repository Git con le informazioni sul codice seed. Ciò richiede una AWS CodeStar connessione dal tuo AWS account al tuo account sull'host del repository Git.

  • Un bucket Amazon S3 per archiviare gli elementi del progetto e della pipeline. SageMaker SageMaker

Il modello crea l'associazione tra il progetto e gli archivi di controllo del codice sorgente, ma è necessario eseguire ulteriori passaggi manuali per stabilire la comunicazione tra l'account e Jenkins. AWS Per i passaggi dettagliati, consulta Creare SageMaker progetti Amazon utilizzando il controllo del codice sorgente di terze parti e Jenkins.

Le istruzioni ti aiutano a creare l'architettura mostrata nel diagramma seguente, utilizzata GitHub come repository per il controllo del codice sorgente in questo esempio. Come mostrato, stai collegando il tuo repository Git al progetto per controllare e gestire le versioni del codice. Jenkins avvia la pipeline di compilazione del modello quando rileva modifiche al codice di compilazione del modello nel repository Git. Stai anche collegando il progetto a Jenkins per orchestrare le fasi di distribuzione del modello, che iniziano quando approvi il modello registrato nel registro dei modelli o quando Jenkins rileva modifiche al codice di distribuzione del modello stesso.

Il flusso di lavoro della pipeline creato utilizzando il modello di progetto.

In sintesi, attraverso queste fasi potrai completare le seguenti attività:

  1. Stabilisci la connessione tra i tuoi AWS e i tuoi GitHub account.

  2. Creare l'account Jenkins e importa i plugin necessari.

  3. Crea la politica degli IAM utenti e delle autorizzazioni di Jenkins.

  4. Imposta le AWS credenziali per l'IAMutente Jenkins sul tuo server Jenkins.

  5. Crea un API token per la comunicazione con il tuo server Jenkins.

  6. Utilizza un CloudFormation modello per impostare una EventBridge regola per monitorare il registro dei modelli per i modelli appena approvati.

  7. Crea il SageMaker progetto, che semplifica i tuoi GitHub repository con il codice di compilazione e distribuzione del modello.

  8. Creare la pipeline di compilazione del modello Jenkins con il codice iniziale di compilazione del modello.

  9. Creare la pipeline di distribuzione del modello Jenkins con il codice iniziale di distribuzione del modello.

Implementazione del modello per Salesforce

  • Archivio di codice: AWS CodeCommit

  • Automazione del flusso di lavoro CI/CD: AWS CodePipeline

Questo modello fornisce le seguenti risorse:

  • Un AWS CodeCommit repository che contiene codice di esempio che crea una SageMaker pipeline Amazon in codice Python e mostra come creare e aggiornare la pipeline. Questo repository ha anche un Python Jupyter Notebook che puoi aprire ed eseguire in Studio (o Studio Classic).

  • Una AWS CodePipeline pipeline con passaggi di origine e compilazione. La fase di origine punta al CodeCommit repository. La fase di compilazione recupera il codice dal repository, crea e aggiorna la SageMaker pipeline, avvia l'esecuzione di una pipeline e attende il completamento dell'esecuzione della pipeline.

  • Viene eseguito un bucket Amazon S3 per archiviare gli artefatti, inclusi gli artefatti CodePipeline e tutti gli CodeBuild artefatti generati dalla pipeline. SageMaker

L'amministratore potrebbe dover eseguire configurazioni aggiuntive per consentire l'accesso ai dati da Salesforce Data Cloud a Studio per creare modelli AI/ML. SageMaker Consulta la panoramica della soluzione nel post del blog Usa l'integrazione tra Amazon SageMaker e Salesforce Data Cloud per potenziare le tue app Salesforce con AI/ML per informazioni e istruzioni dettagliate.

Il diagramma seguente illustra il flusso di lavoro di alto livello utilizzato da questo modello per aiutarti a creare e addestrare i tuoi modelli. Dopo aver impostato una connessione tra il Cloud dei dati Salesforce e Data Wrangler e aver preelaborato i dati, utilizza il modello di progetto Distribuzione del modello per Salesforce per automatizzare l’addestramento e la distribuzione dei modelli. Il modello fornisce un codice di implementazione del modello personalizzabile e un taccuino di esempio da cui AWS CodePipeline addestrare il modello e registrarlo nel registro dei modelli. SageMaker Una volta approvato il modello, l'endpoint viene esposto a Salesforce API tramite API Gateway e i clienti possono iniziare a fare previsioni con il modello implementato direttamente da Salesforce.

Nota

Questo modello consente la configurazione del gateway nelle versioni 1.0 e 1.1 della policy Transport Layer Security (TLS). API È possibile rendere questa configurazione più sicura con nomi di dominio personalizzati. Per i dettagli, vedere Configurazione di nomi di dominio personalizzati per REST APIs.

Un diagramma semplificato delle fasi utilizzate dal modello di progetto Salesforce.

Il post sul blog Usa l'integrazione tra Amazon SageMaker e Salesforce Data Cloud per potenziare le tue app Salesforce con AI/ML fornisce istruzioni dettagliate per guidarti nei seguenti passaggi:

  1. Seleziona il modello di progetto Distribuzione del modello per Salesforce e fornisci il nome del gestore dei segreti.

  2. Clona il repository per utilizzare il notebook di esempio personalizzabile fornito e il codice di distribuzione del modello SageMaker.

  3. Preelabora i tuoi dati con Data Wrangler.

    1. Crea una connessione al Cloud dei dati Salesforce e importa i dati in Data Wrangler.

    2. Usa Data Wrangler per preparare i dati con alcune trasformazioni di esempio.

    3. Avvia un processo di elaborazione per elaborare i dati utilizzando la configurazione di Data Wrangler.

  4. Addestra il modello.

  5. Registra il modello nel registro dei modelli.

  6. Approva il modello nel registro dei modelli.

  7. Visualizza il tuo endpoint nella console. SageMaker

  8. Richiama Salesforce Einstein Studio per registrare e utilizzare le inferenze del modello in Einstein Studio. API URL

Il diagramma seguente mostra in modo più dettagliato il flusso di lavoro e le AWS risorse utilizzate dal modello di SageMaker progetto con Salesforce Data Cloud Integration.

Un diagramma delle fasi e delle risorse utilizzate dal modello di progetto Salesforce.

Aggiorna SageMaker i progetti per utilizzare repository Git di terze parti

La policy gestita collegata al ruolo AmazonSageMakerServiceCatalogProductsUseRole è stata aggiornata il 27 luglio 2021 per essere utilizzata con i modelli Git di terze parti. Gli utenti che effettuano l'accesso ad Amazon SageMaker Studio (o Studio Classic) dopo questa data e abilitano i modelli di progetto utilizzano la nuova politica. Gli utenti che hanno effettuato l'onboarding prima di questa data devono aggiornare la policy per utilizzare questi modelli. Per aggiornare la policy, utilizza una delle seguenti opzioni:

  • Elimina il ruolo e attiva le impostazioni di Studio (o Studio Classic)

    1. Nella IAM console, elimina. AmazonSageMakerServiceCatalogProductsUseRole

    2. Nel pannello di controllo di Studio (o Studio Classic), scegli Modifica impostazioni.

    3. Attiva/disattiva entrambe le impostazioni, quindi scegli Invia.

  • Nella IAM console, aggiungi le seguenti autorizzazioni aAmazonSageMakerServiceCatalogProductsUseRole:

    { "Effect": "Allow", "Action": [ "codestar-connections:UseConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*", "Condition": { "StringEqualsIgnoreCase": { "aws:ResourceTag/sagemaker": "true" } } }, { "Effect": "Allow", "Action": [ "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::sagemaker-*" ] }