Utilizza la condivisione delle schede dei modelli di Amazon SageMaker per migliorare la governance del modello

Usa la condivisione delle schede dei modelli di Amazon SageMaker per migliorare la governance del modello.

Con l’avvento delle tecnologie di Intelligenza Artificiale (IA) e Apprendimento Automatico (ML), molte aziende hanno avuto successo nella creazione di applicazioni aziendali critiche supportate da modelli di ML su larga scala in produzione. Tuttavia, poiché questi modelli di ML prendono decisioni aziendali critiche per l’azienda, è importante che le aziende aggiungano adeguate protezioni lungo l’intero ciclo di vita del ML. Le protezioni assicurano che la sicurezza, la privacy e la qualità del codice, della configurazione e dei dati e della configurazione del modello utilizzati nel ciclo di vita del modello siano versionati e preservati.

L’implementazione di queste protezioni sta diventando sempre più difficile per le aziende perché i processi e le attività di ML all’interno delle aziende stanno diventando sempre più complessi a causa dell’inclusione di processi profondamente coinvolti che richiedono il contributo di più stakeholder e persone coinvolte. Oltre agli ingegneri dei dati e agli scienziati dei dati, sono stati inclusi processi operativi per automatizzare e ottimizzare il ciclo di vita del ML. Inoltre, l’aumento degli stakeholder aziendali e, in alcuni casi, delle revisioni legali e di conformità richiede capacità per aggiungere trasparenza nella gestione del controllo degli accessi, del tracciamento delle attività e della segnalazione lungo tutto il ciclo di vita del ML.

Il framework che offre una visibilità sistematica dello sviluppo, della convalida e dell’utilizzo dei modelli di ML è chiamato governance del ML. Durante AWS re:Invent 2022, AWS ha introdotto nuovi strumenti di governance del ML per Amazon SageMaker che semplificano il controllo degli accessi e aumentano la trasparenza dei tuoi progetti di ML. Uno degli strumenti disponibili come parte della governance del ML è Amazon SageMaker Model Cards, che ha la capacità di creare una singola fonte di verità per le informazioni sul modello centralizzando e standardizzando la documentazione durante tutto il ciclo di vita del modello.

I model cards di SageMaker consentono di standardizzare la documentazione dei modelli, consentendo così una visibilità sul ciclo di vita di un modello, dalla progettazione, alla costruzione, all’addestramento e alla valutazione. I model cards sono destinati a essere una singola fonte di verità per i metadati aziendali e tecnici sul modello che possono essere utilizzati in modo affidabile per scopi di audit e documentazione. Forniscono un elenco di dati importanti per la governance del modello.

Mentre si espandono i modelli, i progetti e i team, è una buona pratica consigliata adottare una strategia multi-account che fornisce isolamento di progetto e team per lo sviluppo e il rilascio dei modelli di ML. Per ulteriori informazioni su come migliorare la governance dei tuoi modelli di ML, consulta Migliora la governance dei tuoi modelli di apprendimento automatico con Amazon SageMaker.

Panoramica dell’architettura

L’architettura è implementata come segue:

  • Account di Data Science: gli scienziati dei dati conducono i loro esperimenti in SageMaker Studio e creano un ambiente MLOps per distribuire i modelli negli ambienti di staging/produzione utilizzando SageMaker Projects.
  • Account di ML Shared Services: l’ambiente MLOps dell’account di Data Science attiverà integrazione continua e distribuzione continua (CI/CD) tramite AWS CodeCommit e AWS CodePipeline.
  • Account di Dev: le pipeline CI/CD attiveranno ulteriori pipeline di ML in questo account che coprono la pre-elaborazione dei dati, l’addestramento del modello e il post-elaborazione come la valutazione e la registrazione del modello. I risultati di queste pipeline distribuiranno il modello negli endpoint di SageMaker per essere utilizzati per scopi di inferenza. A seconda delle tue esigenze di governance, gli account di Data Science e Dev possono essere uniti in un singolo account AWS.
  • Account dei Dati: le pipeline di ML in esecuzione nell’account Dev preleveranno i dati da questo account.
  • Account di Test e Prod: le pipeline CI/CD continueranno il rilascio dopo l’account Dev per configurare la configurazione dell’endpoint di SageMaker in questi account.
  • Sicurezza e Governance: servizi come AWS Identity and Access Management (IAM), AWS IAM Identity Center, AWS CloudTrail, AWS Key Management Service (AWS KMS), Amazon CloudWatch e AWS Security Hub verranno utilizzati in questi account come parte della sicurezza e della governance.

Il seguente diagramma illustra questa architettura.

Per ulteriori informazioni su come configurare un’architettura ML multi-account scalabile, consulta Fondazione MLOps per le aziende con Amazon SageMaker.

I nostri clienti hanno bisogno della capacità di condividere i model cards tra account per migliorare la visibilità e la governance dei loro modelli attraverso le informazioni condivise nel model card. Ora, con la condivisione dei model cards tra account, i clienti possono beneficiare della strategia multi-account avendo accessibilità ai model cards disponibili nella loro organizzazione, in modo da poter accelerare la collaborazione e garantire la governance.

In questo post, mostreremo come configurare e accedere ai model cards in tutta la durata del ciclo di sviluppo del modello (MDLC) utilizzando la nuova funzionalità di condivisione dei model cards tra account. Prima, descriveremo uno scenario e un’architettura per configurare la funzionalità di condivisione dei model cards tra account, per poi approfondire ogni componente su come configurare e accedere ai model cards condivisi tra account per migliorare la visibilità e la governance del modello.

Panoramica della soluzione

Quando si costruiscono modelli di ML, consigliamo di configurare un’architettura multi-account per fornire un’isolamento del carico di lavoro che migliora la sicurezza, l’affidabilità e la scalabilità. Per questo post, supponiamo di costruire e distribuire un modello per il caso d’uso di Customer Churn. Il diagramma di architettura che segue mostra uno degli approcci consigliati – modello di carta del modello centralizzato – per la gestione di una carta del modello in un’architettura multi-account del ciclo di vita dello sviluppo del modello di apprendimento automatico (MDLC). Tuttavia, è anche possibile adottare un altro approccio, un modello di carta del modello ad hub e spoke. In questo post, ci concentreremo solo su un approccio di carta del modello centralizzato, ma gli stessi principi possono essere estesi a un approccio ad hub e spoke. La differenza principale è che ogni account spoke manterrà la propria versione della carta del modello e avrà processi per aggregare e copiare in un account centralizzato.

Il diagramma seguente illustra questa architettura.

L’architettura è implementata come segue:

  1. Il Data Scientist principale viene notificato per risolvere il caso d’uso di Customer Churn utilizzando l’apprendimento automatico e avvia il progetto di apprendimento automatico attraverso la creazione di una carta del modello per il modello Customer Churn V1 in stato di bozza nell’account dei servizi condivisi di ML
  2. Attraverso l’automazione, quella carta del modello viene condivisa con l’account di sviluppo di ML
  3. Il Data Scientist costruisce il modello e inizia a popolare le informazioni tramite API nella carta del modello in base ai risultati delle sperimentazioni e lo stato della carta del modello viene impostato su “In attesa di revisione”
  4. Attraverso l’automazione, quella carta del modello viene condivisa con l’account di test di ML
  5. L’Ingegnere di Apprendimento Automatico (MLE) esegue test di integrazione e convalida nell’account di test di ML e il modello nel registro centrale viene contrassegnato come “In attesa di approvazione”
  6. L’Approvatore del modello esamina i risultati del modello con la documentazione di supporto fornita nella carta del modello centrale e approva la carta del modello per la distribuzione in produzione.
  7. Attraverso l’automazione, quella carta del modello viene condivisa con l’account di produzione di ML in modalità di sola lettura.

Prerequisiti

Prima di iniziare, assicurati di avere i seguenti prerequisiti:

  • Due account AWS.
  • In entrambi gli account AWS, un ruolo di federazione IAM con accesso amministratore per fare quanto segue:
    • Creare, modificare, visualizzare e eliminare le carte del modello all’interno di Amazon SageMaker.
    • Creare, modificare, visualizzare ed eliminare la condivisione delle risorse all’interno di AWS RAM.

Per ulteriori informazioni, consulta gli esempi di politiche IAM per AWS RAM.

Configurazione della condivisione delle carte del modello

L’account in cui vengono create le carte del modello è l’account della carta del modello. Gli utenti nell’account della carta del modello le condividono con gli account condivisi in cui possono essere aggiornate. Gli utenti nell’account della carta del modello possono condividere le loro carte del modello tramite AWS Resource Access Manager (AWS RAM). AWS RAM ti aiuta a condividere risorse tra gli account AWS.

Nella sezione seguente, mostriamo come condividere le carte del modello.

Innanzitutto, crea una carta del modello per un caso d’uso di Customer Churn come descritto in precedenza. Sulla console di Amazon SageMaker, espandi la sezione Governance e scegli Carte del modello.

Creiamo la carta del modello in stato Bozza con il nome Customer-Churn-Model-Card. Per ulteriori informazioni, consulta Creazione di una carta del modello. In questa dimostrazione, puoi lasciare vuoti i campi rimanenti e creare la carta del modello.

In alternativa, puoi utilizzare il seguente comando AWS CLI per creare la carta del modello:

aws sagemaker create-model-card --model-card-name Customer-Churn-Model-Card --content "{\"model_overview\": {\"model_owner\": \"model-owner\",\"problem_type\": \"Customer Churn Model\"}}" --model-card-status Draft

Ora, crea la condivisione tra account utilizzando AWS RAM. Nella console di AWS RAM, seleziona Crea una condivisione di risorse.

Inserisci un nome per la condivisione delle risorse, ad esempio “Customer-Churn-Model-Card-Share”. Nella sezione Risorse – opzionale, seleziona il tipo di risorsa come SageMaker Model Cards. La scheda del modello che abbiamo creato nel passaggio precedente apparirà nell’elenco.

Seleziona quel modello e apparirà nella sezione Risorse selezionate. Seleziona di nuovo quella risorsa come mostrato nei passaggi seguenti e scegli Avanti.

Nella pagina successiva, puoi selezionare le autorizzazioni gestite. Puoi creare autorizzazioni personalizzate o utilizzare l’opzione predefinita “AWSRAMPermissionSageMakerModelCards” e selezionare Avanti. Per ulteriori informazioni, consulta la gestione delle autorizzazioni in AWS RAM.

Nella pagina successiva, puoi selezionare i Principali. Sotto Seleziona tipo principale, scegli AWS Account e inserisci l’ID dell’account della condivisione della scheda del modello. Seleziona Aggiungi e continua alla pagina successiva.

Nell’ultima pagina, rivedi le informazioni e seleziona “Crea condivisione delle risorse”. In alternativa, puoi utilizzare il seguente comando AWS CLI per creare una condivisione delle risorse:

aws ram create-resource-share --name <Nome della scheda del modello>

aws ram associate-resource-share --resource-share-arn <ARN della condivisione delle risorse creata dal comando precedente> --resource-arns <ARN della scheda del modello>

<p+Nella console di AWS RAM, vedrai gli attributi della condivisione delle risorse. Assicurati che Risorse condivise, Autorizzazioni gestite e Principali condivisi siano nello stato "Associato“.

Dopo aver utilizzato AWS RAM per creare una condivisione delle risorse, ai principali specificati nella condivisione delle risorse può essere concess l’accesso alle risorse della condivisione.

  • Se attivi la condivisione di AWS RAM con AWS Organizations e i principali con cui condividi sono nella stessa organizzazione dell’account di condivisione, quei principali possono ricevere accesso non appena l’amministratore del loro account concede loro le autorizzazioni.
  • Se non attivi la condivisione di AWS RAM con Organizations, puoi comunque condividere risorse con singoli account AWS che sono nella tua organizzazione. L’amministratore nell’account consumatore riceve un invito a partecipare alla condivisione delle risorse e deve accettare l’invito prima che i principali specificati nella condivisione delle risorse possano accedere alle risorse condivise.
  • Puoi anche condividere con account al di fuori della tua organizzazione se il tipo di risorsa lo supporta. L’amministratore nell’account consumatore riceve un invito a partecipare alla condivisione delle risorse e deve accettare l’invito prima che i principali specificati nella condivisione delle risorse possano accedere alle risorse condivise.

Per ulteriori informazioni su AWS RAM, consulta i Termini e i concetti per AWS RAM.

Accesso alle schede dei modelli condivisi

Ora possiamo accedere all’account AWS condiviso per accedere alla scheda del modello. Assicurati di accedere alla console di AWS utilizzando le autorizzazioni IAM (ruolo IAM) che consentono l’accesso ad AWS RAM.

Con AWS RAM, puoi visualizzare le condivisioni delle risorse a cui sei stato aggiunto, le risorse condivise a cui puoi accedere e gli account AWS che hanno condiviso risorse con te. Puoi anche lasciare una condivisione delle risorse quando non hai più bisogno di accedere alle sue risorse condivise.

Per visualizzare la scheda del modello nell’account AWS condiviso:

  1. Accedere alla pagina Condiviso con me: Risorse condivise nella console di AWS RAM.
  2. Verificare di essere operanti nella stessa regione AWS in cui è stata creata la condivisione.
  3. Il modello condiviso dall’account del modello sarà disponibile nell’elenco. Se l’elenco delle risorse è lungo, è possibile applicare un filtro per trovare risorse specifiche condivise. È possibile applicare più filtri per restringere la ricerca.
  4. Sono disponibili le seguenti informazioni:
    1. ID risorsa – L’ID della risorsa. Questo è il nome della scheda del modello che abbiamo creato in precedenza nell’account della scheda del modello.
    2. Tipo risorsa – Il tipo di risorsa.
    3. Data ultima condivisione – La data in cui la risorsa è stata condivisa con te.
    4. Condivisioni risorsa – Il numero di condivisioni di risorse in cui è inclusa la risorsa. Scegliere il valore per visualizzare le condivisioni di risorse.
    5. ID proprietario – L’ID del principale che possiede la risorsa.

È anche possibile accedere alla scheda del modello utilizzando l’opzione AWS CLI. Per la policy AWS IAM configurata con le credenziali corrette, assicurarsi di avere le autorizzazioni per creare, modificare ed eliminare schede del modello all’interno di Amazon SageMaker. Per ulteriori informazioni, fare riferimento alla configurazione di AWS CLI.

È possibile utilizzare la seguente policy di autorizzazioni AWS IAM come modello:

{
     "Version": "2012-10-17",
     "Statement": [
        {
             "Effect": "Allow",
             "Action": [
                 "sagemaker:DescribeModelCard",
                 "sagemaker:UpdateModelCard",
                 "sagemaker:CreateModelCardExportJob",
                 "sagemaker:ListModelCardVersions",
                 "sagemaker:DescribeModelCardExportJob"
             ],
             "Resource": [
                 "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-0",
                 "arn:aws:sagemaker:AWS-Region:AWS-model-card-account-id:model-card/example-model-card-name-1/*"
             ]
        },
        { 
             "Effect": "Allow", 
             "Action": "s3:PutObject",
             "Resource": "arn:aws:s3:::Amazon-S3-bucket-storing-the-pdf-of-the-model-card/model-card-name/*"
        }
    ]
}

È possibile eseguire il seguente comando AWS CLI per accedere ai dettagli della scheda del modello condivisa.

aws sagemaker describe-model-card --model-card-name <ARN della scheda del modello>

Ora è possibile apportare modifiche a questa scheda del modello da questo account.

aws sagemaker update-model-card --model-card-name <ARN della scheda del Modello> --content "{\"model_overview\": {\"model_owner\": \"model-owner\",\"problem_type\": \"Customer Churn Model\"}}"

Dopo aver apportato le modifiche, tornare all’account della scheda del modello per visualizzare le modifiche apportate in questo account condiviso.

Il tipo di problema è stato aggiornato a “Customer Churn Model” che abbiamo fornito come parte dell’input del comando AWS CLI.

Pulizia

Ora è possibile eliminare la scheda del modello creata. Assicurarsi di eliminare la condivisione delle risorse di AWS RAM create per condividere la scheda del modello.

Conclusione

In questo post, abbiamo fornito una panoramica dell’architettura multi-account per scalare e governare in modo sicuro e affidabile i carichi di lavoro di machine learning. Abbiamo discusso dei modelli architetturali per configurare la condivisione delle schede del modello ed illustrato come funzionano i modelli di condivisione centralizzata delle schede del modello. Infine, abbiamo configurato la condivisione delle schede del modello tra account multipli per migliorare la visibilità e la governance nel ciclo di sviluppo del modello. Ti incoraggiamo a provare la nuova funzionalità di condivisione delle schede del modello e a farci conoscere i tuoi commenti.