Platone Data Intelligence.
Ricerca verticale e intelligenza artificiale.

Avvia gli esperimenti di Amazon SageMaker Autopilot direttamente da Amazon SageMaker Pipelines per automatizzare facilmente i flussi di lavoro MLOps

Data:

Pilota automatico Amazon SageMaker, un servizio di machine learning (ML) low-code che crea, addestra e ottimizza automaticamente i migliori modelli ML basati su dati tabulari, è ora integrato con Pipeline di Amazon SageMaker, il primo servizio di integrazione continua e consegna continua (CI/CD) appositamente creato per ML. Ciò consente l'automazione di un flusso end-to-end di creazione di modelli ML utilizzando Autopilot e l'integrazione dei modelli nelle successive fasi CI/CD.

Finora, per avviare un esperimento Autopilot all'interno di Pipelines, è necessario creare un flusso di lavoro di creazione di modelli scrivendo codice di integrazione personalizzato con Pipelines Lambda or Processando passi. Per ulteriori informazioni, vedere Sposta i modelli Amazon SageMaker Autopilot ML dalla sperimentazione alla produzione utilizzando Amazon SageMaker Pipelines.

Con il supporto di Autopilot come passaggio nativo all'interno di Pipelines, ora puoi aggiungere un passaggio di addestramento automatizzato (AutoMLStep) in Pipelines e richiamare un esperimento Autopilot con Modalità di allenamento dell'insieme. Ad esempio, se stai creando un flusso di lavoro ML di addestramento e valutazione per un caso d'uso di rilevamento delle frodi con Pipelines, ora puoi avviare un esperimento Autopilot utilizzando il passaggio AutoML, che esegue automaticamente più prove per trovare il modello migliore su un determinato set di dati di input . Dopo aver creato il modello migliore utilizzando il file Passo modello, le sue prestazioni possono essere valutate sui dati di test utilizzando il Passaggio di trasformazione e Fase di elaborazione per uno script di valutazione personalizzato all'interno di Pipelines. Alla fine, il modello può essere registrato nel registro dei modelli di SageMaker utilizzando il file Passo modello in combinazione con a Fase di condizione.

In questo post, mostriamo come creare un flusso di lavoro ML end-to-end per addestrare e valutare un modello ML generato da SageMaker utilizzando il passaggio AutoML appena lanciato in Pipelines e registrarlo con il registro dei modelli SageMaker. Il modello ML con le migliori prestazioni può essere distribuito a un endpoint SageMaker.

Panoramica del set di dati

Usiamo il pubblicamente disponibile Set di dati sul reddito del censimento degli adulti UCI 1994 per prevedere se una persona ha un reddito annuo superiore a $ 50,000 all'anno. Questo è un problema di classificazione binaria; le opzioni per la variabile obiettivo di reddito sono <=50K o >50K.

Il set di dati contiene 32,561 righe per l'addestramento e la convalida e 16,281 righe per il test con 15 colonne ciascuna. Ciò include informazioni demografiche su individui e class come colonna target indicante la classe di reddito.

Nome colonna Descrizione
Educazione
classe operaia Privato, Self-emp-not-inc, Self-emp-inc, Federal-gov, Local-gov, State-gov, Senza retribuzione, Mai lavorato
fnlwgt Educazione
continua Laurea triennale, Some-college, 11, HS-grad, Prof-school, Assoc-acdm, Assoc-voc, 9, 7-8, 12, Master, 1-4, 10, Dottorato, 5-6, Scuola dell'infanzia
numero di istruzione Educazione
stato civile Sposato-coniuge-civ, Divorziato, Mai-sposato, Separato, Vedovo, Sposato-coniuge-assente, Sposato-coniuge-AF
occupazione Supporto tecnico, Riparazioni artigianali, Altri servizi, Vendite, Dirigenti-manageriali, Prof-specialità, Manipolatori-pulitori, Ispezioni macchine, Adm-impiegati, Agricoltura-pesca, Trasporti-traslochi, Priv-house-serv, Servizio protettivo, Forze armate
rapporto Moglie, figlio proprio, marito, non familiare, altro parente, celibe
gara Bianco, Asiatico-Pac-Islander, Amer-Indian-Eskimo, Altro, Nero
sesso Femmina maschio
plusvalenza Educazione
perdita di capitale Educazione
ore per settimana Educazione
Paese d'origine Stati Uniti, Cambogia, Inghilterra, Portorico, Canada, Germania, Outlying-US (Guam-USVI-etc), India, Giappone, Grecia, Sud, Cina, Cuba, Iran, Honduras, Filippine, Italia, Polonia, Giamaica , Vietnam, Messico, Portogallo, Irlanda, Francia, Repubblica Dominicana, Laos, Ecuador, Taiwan, Haiti, Colombia, Ungheria, Guatemala, Nicaragua, Scozia, Tailandia, Jugoslavia, El-Salvador, Trinadad&Tobago, Perù, Hong, Olanda-Paesi Bassi
classe Classe di reddito, <=50K o >50K

Panoramica della soluzione

Usiamo Pipelines per orchestrare diversi passaggi della pipeline necessario per addestrare un modello di pilota automatico. Creiamo e gestiamo un Esperimento pilota automatico come parte di un passaggio AutoML come descritto in questo tutorial.

I seguenti passaggi sono necessari per questo processo di formazione Autopilot end-to-end:

  • Crea e monitora un processo di addestramento del pilota automatico utilizzando il file AutoMLStep.
  • Crea un modello SageMaker utilizzando ModelStep. Questo passaggio recupera i metadati e gli artefatti del modello migliore sottoposti a rendering da Autopilot nel passaggio precedente.
  • Valutare il modello Autopilot addestrato su un set di dati di test utilizzando TransformStep.
  • Confronta l'output dell'esecuzione precedente TransformStep con le effettive etichette di destinazione utilizzando ProcessingStep.
  • Registrare il modello ML in Registro dei modelli SageMaker utilizzando ModelStep, se la metrica di valutazione precedentemente ottenuta supera una soglia predefinita in ConditionStep.
  • Distribuisci il modello ML come endpoint SageMaker a scopo di test.

Architettura

Il diagramma dell'architettura riportato di seguito illustra i diversi passaggi della pipeline necessari per impacchettare tutti i passaggi in una pipeline di addestramento SageMaker Autopilot riproducibile, automatizzata e scalabile. I file di dati vengono letti dal bucket S3 e i passaggi della pipeline vengono chiamati in sequenza.

Soluzione

Questo post fornisce una spiegazione dettagliata dei passaggi della pipeline. Esaminiamo il codice e discutiamo i componenti di ogni passaggio. Per distribuire la soluzione, fare riferimento a quaderno di esempio, che fornisce istruzioni dettagliate per l'implementazione di un flusso di lavoro MLOps di Autopilot tramite Pipelines.

Prerequisiti

Completa i seguenti prerequisiti:

Quando il set di dati è pronto per l'uso, dobbiamo configurare le pipeline per stabilire un processo ripetibile per creare e addestrare automaticamente i modelli ML utilizzando il pilota automatico. Noi usiamo il SDK di SageMaker per definire, eseguire e tenere traccia in modo programmatico di una pipeline di training ML end-to-end.

Passaggi della pipeline

Nelle sezioni seguenti, esaminiamo i diversi passaggi della pipeline SageMaker, tra cui l'addestramento di AutoML, la creazione del modello, l'inferenza batch, la valutazione e la registrazione condizionale del modello migliore. Il diagramma seguente illustra l'intero flusso della pipeline.

Fase di addestramento AutoML

An Oggetto AutoML viene utilizzato per definire l'esecuzione del lavoro di addestramento di Autopilot e può essere aggiunto alla pipeline SageMaker utilizzando il AutoMLStep class, come mostrato nel codice seguente. È necessario specificare la modalità di addestramento dell'insieme, ma altri parametri possono essere regolati secondo necessità. Ad esempio, invece di lasciare che il lavoro AutoML deduca automaticamente il file ML tipo di problema ed metrica oggettiva, questi potrebbero essere hardcoded specificando l' problem_type ed job_objective parametri passati all'oggetto AutoML.

automl = AutoML( role=execution_role, target_attribute_name=target_attribute_name, sagemaker_session=pipeline_session, total_job_runtime_in_seconds=max_automl_runtime, mode="ENSEMBLING",
)
train_args = automl.fit( inputs=[ AutoMLInput( inputs=s3_train_val, target_attribute_name=target_attribute_name, channel_type="training", ) ]
)
step_auto_ml_training = AutoMLStep( name="AutoMLTrainingStep", step_args=train_args,
)

Fase di creazione del modello

Il passaggio AutoML si occupa di generare vari candidati del modello ML, combinarli e ottenere il miglior modello ML. Gli artefatti e i metadati del modello vengono archiviati automaticamente e possono essere ottenuti chiamando il metodo get_best_auto_ml_model() metodo nella fase di addestramento di AutoML. Questi possono quindi essere utilizzati per creare un modello SageMaker come parte della fase Modello:

best_auto_ml_model = step_auto_ml_training.get_best_auto_ml_model( execution_role, sagemaker_session=pipeline_session
)
step_args_create_model = best_auto_ml_model.create(instance_type=instance_type)
step_create_model = ModelStep(name="ModelCreationStep", step_args=step_args_create_model)

Trasformazione in batch e fasi di valutazione

Usiamo il Oggetto trasformatore per inferenza batch sul set di dati di test, che può quindi essere utilizzato per scopi di valutazione. Le previsioni di output vengono confrontate con le etichette di verità effettive o di base utilizzando una funzione di metrica di Scikit-learn. Valutiamo i nostri risultati in base al punteggio F1. Le metriche delle prestazioni vengono salvate in un file JSON, a cui viene fatto riferimento durante la registrazione del modello nel passaggio successivo.

Passi di registrazione condizionale

In questa fase, registriamo il nostro nuovo modello Autopilot nel registro dei modelli SageMaker, se supera la soglia della metrica di valutazione predefinita.

Crea ed esegui la pipeline

Dopo aver definito i passaggi, li combiniamo in una pipeline SageMaker:

pipeline = Pipeline( name="AutoMLTrainingPipeline", parameters=[ instance_count, instance_type, max_automl_runtime, model_approval_status, model_package_group_name, model_registration_metric_threshold, s3_bucket, target_attribute_name, ], steps=[ step_auto_ml_training, step_create_model, step_batch_transform, step_evaluation, step_conditional_registration, ], sagemaker_session=pipeline_session,
)

I passaggi vengono eseguiti in ordine sequenziale. La pipeline esegue tutti i passaggi per un processo AutoML usando Autopilot e Pipelines per il training, la valutazione del modello e la registrazione del modello.

È possibile visualizzare il nuovo modello accedendo al registro dei modelli sulla console di Studio e aprendo AutoMLModelPackageGroup. Scegli qualsiasi versione di un'attività di formazione per visualizzare le metriche oggettive su Qualità del modello scheda.

È possibile visualizzare il rapporto sulla spiegabilità in Spiegabilità scheda per comprendere le previsioni del tuo modello.

Per visualizzare l'esperimento Autopilot sottostante per tutti i modelli creati in AutoMLStep, vai al AutoML pagina e scegli il nome del lavoro.

Distribuire il modello

Dopo aver esaminato manualmente le prestazioni del modello ML, possiamo distribuire il nostro modello appena creato a un endpoint SageMaker. Per questo, possiamo eseguire le celle nel notebook che creano l'endpoint del modello utilizzando la configurazione del modello salvata nel registro del modello SageMaker.

Tieni presente che questo script è condiviso a scopo dimostrativo, ma è consigliabile seguire una pipeline CI/CD più solida per la distribuzione di produzione per l'inferenza ML. Per ulteriori informazioni, fare riferimento a Creazione, automazione, gestione e ridimensionamento dei flussi di lavoro ML utilizzando Amazon SageMaker Pipelines.

Sommario

Questo post descrive un approccio alla pipeline ML di facile utilizzo per addestrare automaticamente modelli ML tabulari (AutoML) utilizzando Autopilot, Pipelines e Studio. AutoML migliora l'efficienza dei professionisti del machine learning, accelerando il percorso dalla sperimentazione del machine learning alla produzione senza la necessità di una vasta esperienza nel machine learning. Descriviamo i rispettivi passaggi della pipeline necessari per la creazione, la valutazione e la registrazione del modello ML. Inizia provando il quaderno di esempio per addestrare e distribuire i tuoi modelli AutoML personalizzati.

Per ulteriori informazioni su Autopilot e Pipelines, fare riferimento a Automatizza lo sviluppo del modello con Amazon SageMaker Autopilot ed Pipeline di Amazon SageMaker.

Un ringraziamento speciale a tutti coloro che hanno contribuito al lancio: Shenghua Yue, John He, Ao Guo, Xinlu Tu, Tian Qin, Yanda Hu, Zhankui Lu e Dewen Qi.


Informazioni sugli autori

Janisha Anand è un Senior Product Manager nel team SageMaker Low/No Code ML, che include SageMaker Autopilot. Le piace il caffè, resta attiva e trascorre del tempo con la sua famiglia.

Marcello Aberle è un ingegnere ML presso AWS AI. Lui aiuta Laboratorio di soluzioni Amazon ML i clienti creano sistemi e framework ML(-Ops) scalabili. Nel tempo libero ama fare escursioni e andare in bicicletta nella San Francisco Bay Area.

Geremia Cohen è un Solutions Architect con AWS, dove aiuta i clienti a creare soluzioni all'avanguardia basate su cloud. Nel tempo libero, ama fare brevi passeggiate sulla spiaggia, esplorare la baia con la sua famiglia, aggiustare le cose in casa, rompere le cose intorno alla casa e fare barbecue.

Shenghua Yue è un ingegnere di sviluppo software presso Amazon SageMaker. Si concentra sulla creazione di strumenti e prodotti ML per i clienti. Al di fuori del lavoro, le piace la vita all'aria aperta, lo yoga e le escursioni.

spot_img

L'ultima intelligenza

spot_img