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 utilizzandoProcessingStep
. - Registrare il modello ML in Registro dei modelli SageMaker utilizzando
ModelStep
, se la metrica di valutazione precedentemente ottenuta supera una soglia predefinita inConditionStep
. - 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.
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:
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:
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.
- Coinsmart. Il miglior scambio di bitcoin e criptovalute d'Europa.Clicca qui
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/launch-amazon-sagemaker-autopilot-experiments-directly-from-within-amazon-sagemaker-pipelines-to-easily-automate-mlops-workflows/