Organizzare i flussi di lavoro di Machine Learning con AWS Step Functions

Gestire le attività di Machine Learning in modo efficiente con AWS Step Functions

Ingegneria dei dati avanzata e ML Ops con Infrastructure as Code

Foto di Markus Winkler su Unsplash

Questo articolo spiega come creare e orchestrare pipeline di machine learning con AWS Step Functions e come distribuirle utilizzando Infrastructure as Code. Questo articolo è rivolto a ingegneri dei dati e ML Ops che vogliono distribuire e aggiornare le pipeline di ML utilizzando template di CloudFormation. Questi template e il repository Gihub saranno forniti in questo articolo.

Possiamo utilizzare AWS Step Functions per attivare qualsiasi altro servizio, inclusi i servizi gestiti di altri fornitori. È uno strumento potente che ci consente di orchestrare il flusso di come i servizi dati dovrebbero elaborare e trasformare i dati. Utilizzerò AWS Glue e AWS Personalize come esempio per creare una pipeline di Machine Learning (ML) che può essere pianificata a intervalli richiesti e ha un flusso come questo:

Grafico della pipeline. Immagine dell'autore.

Come ingegnere dei dati, mi è stato assegnato il compito di progettare una pipeline dati che prepara i dati nel data lake e attiva l’addestramento del modello di machine learning.

Quindi pensavo che tra gli altri strumenti che potevo utilizzare, ad esempio Airflow, etc., non avevo mai provato AWS Step Functions. Considerando che è un servizio nativo per AWS, ho deciso di provarlo. L’idea era addestrare il modello di ML quotidianamente o su richiesta utilizzando AWS Step Functions. Ciò garantiva una configurazione flessibile per eventuali aggiornamenti del modello necessari quando ne avevo bisogno. I vantaggi dell’utilizzo dell’infrastructure as code per le piattaforme di dati non sono contestati e ne ho già scritto in precedenza qui:

Integrazione continua e distribuzione per piattaforme di dati

CI/CD per data engineer e ML Ops

towardsdatascience.com

Ho scelto di utilizzare AWS Personalize per scopi di test. Questo servizio può essere utilizzato per offrire migliori raccomandazioni di prodotto agli utenti delle mie applicazioni. Sembra che AWS Personalize sia la scelta giusta poiché non è necessario preoccuparsi dell’apprendimento automatico…