L'esecuzione di esperimenti di machine learning (ML) nel cloud può estendersi su molti servizi e componenti. La capacità di strutturare, automatizzare e tenere traccia degli esperimenti ML è essenziale per consentire un rapido sviluppo dei modelli ML. Con gli ultimi progressi nel campo dell'apprendimento automatico delle macchine (AutoML), ovvero l'area del ML dedicata all'automazione dei processi ML, puoi costruire modelli decisionali accurati senza la necessità di una profonda conoscenza del ML. In questo post, esaminiamo AutoGluon, un framework AutoML open source che ti consente di creare modelli ML accurati con poche righe di Python.
AWS offre un'ampia gamma di servizi per gestire ed eseguire flussi di lavoro ML, consentendoti di selezionare una soluzione in base alle tue competenze e alla tua applicazione. Ad esempio, se già usi Funzioni AWS Step per orchestrare i componenti delle applicazioni distribuite, puoi utilizzare lo stesso servizio per creare e automatizzare i tuoi flussi di lavoro ML. Altri strumenti MLOps offerti da AWS includono Pipeline di Amazon SageMaker, che ti consente di creare modelli ML in Amazon Sage Maker Studio con funzionalità MLOps (come compatibilità CI/CD, monitoraggio del modello e approvazione del modello). Strumenti open source, come Flusso d'aria Apache—disponibile su AWS tramite Flussi di lavoro gestiti da Amazon per Apache Airflow-e Kube Flow, oltre alle soluzioni ibride, sono supportate. Ad esempio, puoi gestire l'acquisizione e l'elaborazione dei dati con Step Functions durante l'addestramento e la distribuzione dei tuoi modelli ML con SageMaker Pipelines.
In questo post, mostriamo come anche gli sviluppatori senza esperienza di ML possono facilmente creare e mantenere modelli ML all'avanguardia utilizzando AutoGluon su Amazon Sage Maker e Step Functions per orchestrare i componenti del flusso di lavoro.
Dopo una panoramica dell'algoritmo AutoGluon, presentiamo le definizioni del flusso di lavoro insieme a esempi e a tutorial sul codice che puoi applicare ai tuoi dati.
AutoGluone
AutoGluon è un framework AutoML open source che accelera l'adozione di ML addestrando modelli ML accurati con poche righe di codice Python. Sebbene questo post si concentri sui dati tabulari, AutoGluon consente anche di addestrare modelli all'avanguardia per la classificazione delle immagini, il rilevamento degli oggetti e la classificazione del testo. AutoGluon tabular crea e combina diversi modelli per trovare la soluzione ottimale.
Il team di AutoGluon di AWS ha rilasciato a carta che presenta i principi che strutturano la biblioteca:
- Semplicità – È possibile creare modelli di classificazione e regressione direttamente dai dati grezzi senza dover analizzare i dati o eseguire l'ingegneria delle funzionalità
- Robustezza – Il processo di formazione generale dovrebbe avere successo anche se alcuni dei singoli modelli falliscono
- Tempi prevedibili – Puoi ottenere risultati ottimali entro il tempo che vuoi investire per la formazione
- Tolleranza ai guasti – Puoi interrompere la formazione e riprenderla in qualsiasi momento, ottimizzando i costi se il processo viene eseguito su immagini spot nel cloud
Per maggiori dettagli sull'algoritmo, fare riferimento a carta rilasciato dal team AutoGluon di AWS.
Dopo aver installato il file Pacchetto AutoGluon e le sue dipendenze, addestrare un modello è facile come scrivere tre righe di codice:
Il team di AutoGluon ha dimostrato la forza del framework raggiungendo la top 10 della classifica in più competizioni Kaggle.
Panoramica della soluzione
Usiamo Step Functions per implementare un flusso di lavoro ML che copre la formazione, la valutazione e l'implementazione. Il design della pipeline consente esperimenti veloci e configurabili modificando i parametri di input che inserisci nella pipeline in fase di esecuzione.
È possibile configurare la pipeline per implementare diversi flussi di lavoro, come i seguenti:
- Addestra un nuovo modello ML e archivialo nel registro del modello SageMaker, se a questo punto non è necessaria alcuna distribuzione
- Distribuisci un modello ML pre-addestrato, sia per online (Endpoint di SageMaker) o offline (Trasformazione batch SageMaker) inferenza
- Esegui una pipeline completa per addestrare, valutare e distribuire un modello ML da zero
Le soluzioni consistono in un generale macchina a stati (vedere il diagramma seguente) che orchestra l'insieme di azioni da eseguire in base a un insieme di parametri di input.
I passaggi della macchina a stati sono i seguenti:
- Il primo passo
IsTraining
decide se stiamo utilizzando un modello pre-addestrato o addestrando un modello da zero. Se si utilizza un modello pre-addestrato, la macchina a stati salta al passaggio 7. - Quando è richiesto un nuovo modello ML,
TrainSteps
attiva una seconda macchina a stati che esegue tutte le azioni necessarie e restituisce il risultato alla macchina a stati corrente. Entriamo più nel dettaglio della macchina a stati di addestramento nella prossima sezione. - Quando l'allenamento è finito,
PassModelName
memorizza il nome del lavoro di addestramento in una posizione specificata del contesto della macchina a stati da riutilizzare negli stati seguenti. - Se viene selezionata una fase di valutazione,
IsEvaluation
reindirizza la macchina a stati verso il ramo di valutazione. In caso contrario, si passa al passaggio 7. - La fase di valutazione viene quindi implementata utilizzando un AWS Lambda funzione invocata dal
ModelValidation
fare un passo. La funzione Lambda recupera le prestazioni del modello su un set di test e lo confronta con una soglia configurabile dall'utente specificata nei parametri di input. Il codice seguente è un esempio di risultati di valutazione: - Se la valutazione del modello a
EvaluationResults
ha esito positivo, la macchina a stati continua con gli eventuali passaggi di distribuzione. Se il modello funziona al di sotto di un criterio definito dall'utente, la macchina a stati si arresta e la distribuzione viene ignorata. - Se è selezionata la distribuzione,
IsDeploy
avvia una terza macchina a stati attraversoDeploySteps
, che descriviamo più avanti in questo post. Se la distribuzione non è necessaria, la macchina a stati si ferma qui.
Una serie di campioni di parametri di input è disponibile su Repository GitHub.
Macchina dello stato di addestramento
La macchina a stati per addestrare un nuovo modello ML utilizzando AutoGluon è composta da due passaggi, come illustrato nel diagramma seguente. Il primo passaggio è un lavoro di formazione SageMaker che crea il modello. Il secondo salva le voci nel registro dei modelli SageMaker.
È possibile eseguire questi passaggi automaticamente come parte della macchina a stati principale o come processo autonomo.
Macchina a stati di distribuzione
Esaminiamo ora la macchina a stati dedicata alla fase di deployment (si veda il diagramma seguente). Come accennato in precedenza, l'architettura supporta la distribuzione sia online che offline. Il primo consiste nella distribuzione di un endpoint SageMaker, mentre il secondo esegue un processo di trasformazione batch SageMaker.
Le fasi di attuazione sono le seguenti:
ChoiceDeploymentMode
esamina i parametri di input per definire quale modalità di distribuzione è necessaria e dirige la macchina a stati verso il ramo corrispondente.- Se viene scelto un endpoint, il
EndpointConfig
step ne definisce la configurazione, mentreCreateEndpoint
avvia il processo di allocazione delle risorse di calcolo richieste. Questa allocazione può richiedere diversi minuti, quindi la macchina a stati si fermaWaitForEndpoint
e utilizza una funzione Lambda per eseguire il polling dello stato dell'endpoint. - Durante la configurazione dell'endpoint,
ChoiceEndpointStatus
ritorna alWaitForEndpoint
stato, altrimenti continua a farloDeploymentFailed
orDeploymentSucceeded
. - Se è selezionata la distribuzione offline, la macchina a stati esegue un processo di trasformazione batch di SageMaker, dopodiché la macchina a stati si arresta.
Conclusione
Questo post presenta una pipeline di facile utilizzo per orchestrare flussi di lavoro AutoML e consentire esperimenti rapidi nel cloud, consentendo soluzioni ML accurate senza richiedere conoscenze avanzate di ML.
Forniamo una pipeline generale e due modulari che consentono di eseguire formazione e distribuzione separatamente, se necessario. Inoltre, la soluzione è completamente integrata con SageMaker, beneficiando delle sue funzionalità e risorse di calcolo.
Inizia ora con questo tutorial sul codice per distribuire le risorse presentate in questo post nel tuo account AWS ed eseguire i tuoi primi esperimenti AutoML.
Informazioni sugli autori
Federico Piccinini è un architetto di deep learning per Amazon Machine Learning Solutions Lab. È appassionato di machine learning, IA spiegabile e MLOps. Si concentra sulla progettazione di pipeline ML per i clienti AWS. Al di fuori del lavoro, ama lo sport e la pizza.
Paolo Irrara è un Data Scientist presso l'Amazon Machine Learning Solutions Lab, dove aiuta i clienti ad affrontare i problemi aziendali con ML e funzionalità cloud. Ha conseguito un dottorato di ricerca in Computer Vision presso Telecom ParisTech, Parigi.
- Coinsmart. Il miglior scambio di bitcoin e criptovalute d'Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. ACCESSO LIBERO.
- Criptofalco. Radar Altcoin. Prova gratuita.
- Fonte: https://aws.amazon.com/blogs/machine-learning/manage-automl-workflows-with-aws-step-functions-and-autogluon-on-amazon-sagemaker/
- "
- 10
- 100
- 7
- a
- capacità
- Chi siamo
- Il mio account
- preciso
- operanti in
- azioni
- indirizzo
- Adozione
- Avanzate
- avanzamenti
- AI
- algoritmo
- Tutti
- assegnazione
- Consentire
- consente
- già
- Sebbene il
- Amazon
- analizzare
- Applicazioni
- applicazioni
- APPLICA
- architettura
- RISERVATA
- automatizzare
- Automatizzata
- automaticamente
- Automazione
- disponibile
- AWS
- essendo
- sotto
- costruire
- affari
- Può ottenere
- funzionalità
- scelto
- classificazione
- Cloud
- codice
- compatibilità
- Concorsi
- completamento di una
- componenti
- computer
- informatica
- Configurazione
- continua
- Corrispondente
- Costi
- creare
- crea
- criteri
- Corrente
- Stato attuale
- Clienti
- dati
- scienziato di dati
- dedicato
- deep
- schierare
- distribuzione
- deployment
- descrivere
- Design
- progettazione
- dettaglio
- dettagli
- rivelazione
- sviluppatori
- Mercato
- diverso
- direttamente
- distribuito
- facilmente
- facile da usare
- enable
- Abilita
- endpoint
- essential
- valutare
- valutazione
- esempio
- Esempi
- competenza
- FAST
- caratteristica
- Caratteristiche
- Nome
- si concentra
- i seguenti
- segue
- Contesto
- da
- function
- funzioni
- Generale
- avendo
- aiuta
- qui
- detiene
- Come
- HTTPS
- IBRIDO
- Immagine
- immagini
- realizzare
- implementazione
- implementato
- includere
- individuale
- ingresso
- install
- integrato
- IT
- Lavoro
- conoscenze
- laboratorio
- con i più recenti
- apprendimento
- Biblioteca
- Linee
- località
- Guarda
- macchina
- machine learning
- mantenere
- gestire
- gestito
- menzionato
- ML
- modello
- modelli
- componibile
- monitoraggio
- Scopri di più
- multiplo
- cioè
- necessaria
- che necessitano di
- GENERAZIONE
- offerto
- Offerte
- offline
- online
- Altro
- altrimenti
- complessivo
- proprio
- Parigi
- parte
- appassionato
- prestazioni
- esecuzione
- fase
- Pizza
- sondaggio
- presenti
- regali
- problemi
- processi
- i processi
- lavorazione
- fornire
- gamma
- Crudo
- rilasciato
- necessario
- Risorse
- Risultati
- curriculum vitae
- problemi
- Correre
- stesso
- Scienziato
- selezionato
- servizio
- Servizi
- set
- alcuni
- mostrare attraverso le sue creazioni
- abilità
- So
- soluzione
- Soluzioni
- alcuni
- Sports
- Spot
- standalone
- iniziato
- inizio
- Regione / Stato
- state-of-the-art
- stati
- Stato dei servizi
- Tornare al suo account
- negozi
- forza
- di successo
- supportato
- supporti
- team
- telecom
- test
- I
- tre
- soglia
- Attraverso
- tempo
- strumenti
- top
- verso
- pista
- Treni
- Training
- Trasformare
- uso
- visione
- se
- while
- entro
- senza
- Lavora
- flussi di lavoro
- scrittura
- Trasferimento da aeroporto a Sharm