Integrare le schede dei modelli di Amazon SageMaker con il registro dei modelli

Integrare schede modelli Amazon SageMaker con registro modelli

Amazon SageMaker Model Cards ti consentono di standardizzare la documentazione dei modelli, ottenendo così una visione del ciclo di vita di un modello, dalla progettazione, costruzione, allenamento e valutazione. Le model cards sono destinate ad 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 foglio informativo del modello che è importante per la governance del modello.

Fino ad ora, le model cards erano associate logicamente a un modello nel Registro dei modelli di Amazon SageMaker utilizzando la corrispondenza del nome del modello. Tuttavia, quando si risolve un problema aziendale attraverso un modello di machine learning (ML), poiché i clienti iterano sul problema, creano più versioni del modello e hanno bisogno di operazionalizzare e governare più versioni del modello. Pertanto, è necessaria la capacità di associare una model card a una particolare versione del modello.

In questo post, discutiamo di una nuova funzionalità che supporta l’integrazione delle model cards con il registro dei modelli a livello di versione del modello distribuito. Discutiamo l’architettura della soluzione e le migliori pratiche per la gestione delle versioni delle model cards e descriviamo come configurare, operazionalizzare e governare l’integrazione delle model cards con la versione del modello nel registro dei modelli.

Panoramica della soluzione

Le model cards di SageMaker ti aiutano a standardizzare la documentazione dei tuoi modelli da una prospettiva di governance, e il registro dei modelli di SageMaker ti aiuta a distribuire e operazionalizzare i modelli di ML. Il registro dei modelli supporta una struttura gerarchica per organizzare e archiviare i modelli di ML con informazioni sui metadati del modello.

Quando un’organizzazione risolve un problema aziendale utilizzando il ML, ad esempio una previsione di churn dei clienti, consigliamo i seguenti passaggi:

  1. Crea una model card per il problema aziendale da risolvere.
  2. Crea un gruppo di pacchetti di modelli per il problema aziendale da risolvere.
  3. Costruisci, allena, valuta e registra la prima versione del pacchetto di modelli (ad esempio, Churn dei clienti V1).
  4. Aggiorna la model card collegando la versione del pacchetto di modelli alla model card.
  5. Mentre iteri sulla nuova versione del pacchetto di modelli, clona la model card dalla versione precedente e collegala alla nuova versione del pacchetto di modelli (ad esempio, Churn dei clienti V2).

La figura seguente illustra come una model card di SageMaker si integra con il registro dei modelli.

Come illustrato nel diagramma precedente, l’integrazione delle model cards di SageMaker e del registro dei modelli ti consente di associare una model card a una specifica versione del modello nel registro dei modelli. Ciò ti permette di stabilire una singola fonte di verità per le tue versioni di modelli registrati, con documentazione completa e standardizzata in tutte le fasi del percorso del modello su SageMaker, facilitando la scoperta e promuovendo la governance, la conformità e la responsabilità durante l’intero ciclo di vita del modello.

Migliori pratiche per la gestione delle model cards

L’operare nel machine learning con la governance è un requisito critico per molte organizzazioni aziendali oggi, in particolare in settori altamente regolamentati. Come parte di tali requisiti, AWS fornisce diversi servizi che consentono un’operazione affidabile dell’ambiente ML.

Le model cards di SageMaker documentano dettagli critici sui tuoi modelli di ML in un unico luogo per una governance e una segnalazione efficienti. Le model cards ti aiutano a raccogliere dettagli come l’uso previsto e la valutazione del rischio di un modello, dettagli e metriche di allenamento, risultati e osservazioni di valutazione e ulteriori punti di riferimento come considerazioni, raccomandazioni e informazioni personalizzate.

Le model cards devono essere gestite e aggiornate come parte del tuo processo di sviluppo, durante l’intero ciclo di vita del ML. Sono una parte importante della consegna continua e delle pipeline nel ML. Allo stesso modo in cui un progetto ML ben progettato implementa l’integrazione continua e la consegna continua (CI/CD) sotto l’ombrello di MLOps, un processo continuo di documentazione del ML è una capacità critica in molti settori regolamentati o per casi d’uso ad alto rischio. Le model cards fanno parte delle migliori pratiche per lo sviluppo responsabile e trasparente del ML.

Il diagramma seguente mostra come le model cards dovrebbero far parte di un ciclo di vita di sviluppo.

Considera le seguenti migliori pratiche:

  • Raccomandiamo di creare le model cards all’inizio del ciclo di vita del tuo progetto. Nella prima fase del progetto, quando stai lavorando per identificare l’obiettivo aziendale e definire il problema di ML, dovresti avviare la creazione della model card. Man mano che procedi attraverso le diverse fasi dei requisiti aziendali e delle metriche di prestazione importanti, puoi creare la model card in stato di bozza e determinare i dettagli aziendali e gli utilizzi previsti.
  • Come parte della fase di sviluppo del modello, dovresti utilizzare il registro dei modelli per catalogare i modelli per la produzione, gestire le versioni del modello e associare metadati a un modello. Il registro dei modelli consente il tracciamento della lineage.
  • Dopo aver iterato con successo e essere pronti a distribuire il modello in produzione, è il momento di aggiornare la model card. Nella fase di distribuzione del ciclo di vita, puoi aggiornare i dettagli del modello della model card. Dovresti anche aggiornare i dettagli di allenamento, i dettagli di valutazione, le considerazioni etiche e le raccomandazioni e le informazioni personalizzate.

Le schede modello hanno versioni associate ad esse. Una data versione del modello è immutabile per tutti gli attributi diversi dallo stato della scheda modello. Se apporti altre modifiche alla scheda modello, come metriche di valutazione, descrizione o utilizzi previsti, SageMaker crea una nuova versione della scheda modello per riflettere le informazioni aggiornate. Ciò serve a garantire che una scheda modello, una volta creata, non possa essere alterata. Inoltre, ogni nome di modello univoco può avere una sola scheda modello associata e non può essere modificata dopo la creazione della scheda modello.

I modelli di apprendimento automatico sono dinamici e i componenti di automazione del flusso di lavoro ti consentono di scalare facilmente la tua capacità di costruire, addestrare, testare e distribuire centinaia di modelli in produzione, iterare più velocemente, ridurre gli errori dovuti all’orchestrazione manuale e creare meccanismi ripetibili.

Pertanto, il ciclo di vita delle tue schede modello sarà come descritto nel seguente diagramma. Ogni volta che aggiorni la tua scheda modello attraverso il ciclo di vita del modello, crei automaticamente una nuova versione della scheda modello. Ogni volta che fai delle iterazioni su una nuova versione del modello, crei una nuova scheda modello che può ereditare alcune informazioni dalla scheda modello delle versioni precedenti e seguire lo stesso ciclo di vita.

Prerequisiti

In questo post si presume che tu abbia già dei modelli nel tuo registro dei modelli. Se vuoi seguire, puoi utilizzare il seguente esempio di SageMaker su GitHub per popolare il tuo registro dei modelli: Integrazione di SageMaker Pipelines con Model Monitor e Clarify.

Integra una scheda modello con la versione del modello nel registro dei modelli

In questo esempio, abbiamo il pacchetto model-monitor-clarify-group nel nostro registro dei modelli.

In questo pacchetto, sono disponibili due versioni del modello.

Per questo esempio, collegiamo la Versione 1 del modello a una nuova scheda modello. Nel registro dei modelli, puoi vedere i dettagli per la Versione 1.

Ora possiamo utilizzare la nuova funzionalità nel SDK di Python di SageMaker. Dal modulo sagemaker.model_card ModelPackage, puoi selezionare una specifica versione del modello dal registro dei modelli a cui desideri collegare la scheda modello.

Ora puoi creare una nuova scheda modello per la versione del modello e specificare il parametro model_package_details con il pacchetto del modello precedente recuperato. Devi popolare la scheda modello con tutti i dettagli aggiuntivi necessari. Per questo post, creiamo una semplice scheda modello come esempio.

Puoi quindi utilizzare quella definizione per creare una scheda modello utilizzando il SDK di Python di SageMaker.

Quando si carica nuovamente la scheda del modello, è possibile vedere il modello associato sotto "__model_package_details".

È anche possibile aggiornare una scheda del modello esistente con il model_package come mostrato nell’esempio di codice qui sotto:

my_card = ModelCard.load(("<model_card_name>")
mp_details = ModelPackage.from_model_package_arn("<arn>")
my_card.model_package_details = mp_details
my_card.update()

Infine, quando si crea o si aggiorna una nuova versione del pacchetto di modelli in un pacchetto di modelli esistente, se una scheda del modello esiste già in quel gruppo di pacchetti di modelli, alcune informazioni come i dettagli aziendali e gli utilizzi previsti possono essere trasferiti alla nuova scheda del modello.

Pulizia

Gli utenti sono responsabili della pulizia delle risorse se create utilizzando il notebook menzionato nella sezione dei prerequisiti. Seguire le istruzioni nel notebook per pulire le risorse.

Conclusioni

In questo post, abbiamo discusso come integrare una scheda del modello SageMaker con una versione del modello nel registro dei modelli. Abbiamo condiviso l’architettura della soluzione con le migliori pratiche per implementare una scheda del modello e mostrato come configurare e operazionalizzare una scheda del modello per migliorare la postura di governance del modello. Vi incoraggiamo a provare questa soluzione e condividere i vostri commenti nella sezione dei commenti.