Come Earth.com e Provectus hanno implementato la loro infrastruttura MLOps con Amazon SageMaker

Earth.com and Provectus implemented their MLOps infrastructure with Amazon SageMaker.

Questo post del blog è scritto in collaborazione con Marat Adayev e Dmitrii Evstiukhin di Provectus.

Quando i modelli di apprendimento automatico (ML) sono implementati in produzione e utilizzati per prendere decisioni aziendali, la sfida spesso risiede nell’operazione e nella gestione di più modelli. Machine Learning Operations (MLOps) fornisce la soluzione tecnica a questo problema, aiutando le organizzazioni a gestire, monitorare, implementare e governare i loro modelli su una piattaforma centralizzata.

A larga scala, il riconoscimento di immagini in tempo reale è un problema tecnico complesso che richiede anche l’implementazione di MLOps. Consentendo una gestione efficace del ciclo di vita dell’ML, MLOps può aiutare a tener conto delle varie alterazioni nei dati, nei modelli e nei concetti associati allo sviluppo di applicazioni di riconoscimento di immagini in tempo reale.

Una di queste applicazioni è EarthSnap, un’applicazione di riconoscimento di immagini alimentata da intelligenza artificiale che consente agli utenti di identificare tutti i tipi di piante e animali, utilizzando la fotocamera del loro smartphone. EarthSnap è stata sviluppata da Earth.com, una piattaforma online leader per gli appassionati che sono appassionati di ambiente, natura e scienza.

Il team di leadership di Earth.com ha riconosciuto il vasto potenziale di EarthSnap e si è impegnato a creare un’applicazione che utilizza le ultime architetture di deep learning (DL) per la visione artificiale (CV). Tuttavia, si sono confrontati con sfide nella gestione e nella scalabilità del loro sistema ML, che consisteva in vari componenti di ML e infrastruttura silo che dovevano essere mantenuti manualmente. Avevano bisogno di una piattaforma cloud e di un partner strategico con comprovata esperienza nella fornitura di soluzioni AI/ML pronte per la produzione, per portare rapidamente EarthSnap sul mercato. Ed è qui che Provectus, un partner di consulenza premier AWS con competenze in Machine Learning, Data & Analytics e DevOps, è intervenuto.

Questo post spiega come Provectus ed Earth.com siano stati in grado di migliorare le capacità di riconoscimento di immagini alimentate da AI di EarthSnap, ridurre il lavoro pesante di ingegneria e minimizzare i costi amministrativi implementando pipeline di ML end-to-end, fornite come parte di una piattaforma MLOps gestita e servizi AI gestiti.

Sfide affrontate nell’approccio iniziale

Il team esecutivo di Earth.com era desideroso di accelerare il lancio di EarthSnap. Hanno rapidamente iniziato a lavorare sulle capacità di AI/ML costruendo modelli di riconoscimento di immagini utilizzando Amazon SageMaker. Il seguente diagramma mostra il flusso di lavoro iniziale di riconoscimento di immagini ML, eseguito manualmente e sequenzialmente.

I modelli sviluppati da Earth.com vivevano su vari notebook. Richiedevano l’esecuzione sequenziale manuale di una serie di notebook complessi per elaborare i dati e riconfigurare il modello. Gli endpoint dovevano essere implementati manualmente anche.

Earth.com non aveva un team di ingegneria ML in-house, il che rendeva difficile aggiungere nuovi dataset con nuove specie, rilasciare e migliorare nuovi modelli e scalare il loro sistema ML disgiunto.

I componenti ML per l’ingestione dei dati, la preelaborazione e l’addestramento del modello erano disponibili come script e notebook Python disgiunti, che richiedevano molto lavoro manuale da parte degli ingegneri.

La soluzione iniziale richiedeva anche il supporto di un terzo tecnico, per rilasciare nuovi modelli in modo rapido ed efficiente.

Prima iterazione della soluzione

Provectus ha svolto un ruolo cruciale come collaboratore prezioso per Earth.com, aumentando le funzionalità di riconoscimento di immagini guidate dall’AI di EarthSnap. I flussi di lavoro dell’applicazione sono stati automatizzati implementando pipeline di ML end-to-end, fornite come parte della piattaforma MLOps gestita di Provectus e supportate attraverso servizi AI gestiti.

È stata avviata una serie di sessioni di scoperta del progetto da parte di Provectus per esaminare il codice esistente di EarthSnap e l’inventario degli script del notebook, con l’obiettivo di riprodurre i risultati del modello esistente. Dopo che i risultati del modello sono stati ripristinati, i componenti dispersi del flusso di lavoro di ML sono stati fusi in una pipeline di ML automatizzata utilizzando Amazon SageMaker Pipelines, un servizio CI/CD appositamente progettato per ML.

La pipeline finale include i seguenti componenti:

  • Data QA & versioning – Questo passaggio viene eseguito come lavoro di elaborazione SageMaker, ingesta i dati di origine da Amazon Simple Storage Service (Amazon S3) e prepara i metadati per il passaggio successivo, contenenti solo immagini valide (URI e label) che vengono filtrate in base alle regole interne. Viene inoltre conservato un file manifesto su Amazon S3, che include tutte le informazioni necessarie per ricreare quella versione del dataset.
  • Preelaborazione dei dati – Questo include più passaggi avvolti come lavori di elaborazione SageMaker e viene eseguito sequenzialmente. I passaggi preelaborano le immagini, le convertono in formato RecordIO, suddividono le immagini in dataset (completo, train, test e validazione) e preparano le immagini per essere consumate da lavori di addestramento SageMaker.
  • Sintonizzazione degli iperparametri – Un lavoro di sintonizzazione degli iperparametri SageMaker prende in input un sottoinsieme dell’insieme di addestramento e di convalida e esegue una serie di piccoli lavori di addestramento sotto il cofano per determinare i migliori parametri per il lavoro di addestramento completo.
  • Addestramento completo – Un lavoro di addestramento SageMaker lancia il lavoro di addestramento sull’intero dataset, dato il miglior parametro dal passaggio di sintonizzazione degli iperparametri.
  • Valutazione del modello – Viene eseguito un lavoro di elaborazione SageMaker dopo che il modello finale è stato addestrato. Questo passaggio produce un rapporto ampliato contenente le metriche del modello.
  • Creazione del modello – Il passaggio ModelCreate di SageMaker avvolge il modello nel pacchetto del modello SageMaker e lo spinge al registro del modello SageMaker.

Tutti i passaggi vengono eseguiti in modo automatico dopo l’esecuzione del pipeline. Il pipeline può essere eseguito tramite uno dei seguenti metodi:

  • In modo automatico utilizzando AWS CodeBuild, dopo che le nuove modifiche sono state pushate su un branch primario e una nuova versione del pipeline è stata upserted (CI)
  • In modo automatico utilizzando Amazon API Gateway, che può essere attivato con una determinata chiamata API
  • Manualmente in Amazon SageMaker Studio

Dopo l’esecuzione del pipeline (lanciato utilizzando uno dei metodi precedenti), viene prodotto un modello addestrato che è pronto per essere distribuito come endpoint SageMaker. Ciò significa che il modello deve prima essere approvato dal PM o dall’ingegnere nel registro dei modelli, poi il modello viene distribuito automaticamente nell’ambiente di stage utilizzando Amazon EventBridge e testato internamente. Dopo che il modello è stato confermato che funziona come previsto, viene distribuito nell’ambiente di produzione (CD).

La soluzione di Provectus per EarthSnap può essere riassunta nei seguenti passaggi:

  • Iniziare con pipeline di ML completamente automatizzati end-to-end per rendere più facile per Earth.com rilasciare nuovi modelli
  • Costruire sopra le pipeline per fornire un’infrastruttura di ML robusta per la piattaforma MLOps, con tutte le componenti per razionalizzare AI/ML
  • Supportare la soluzione fornendo servizi AI gestiti (compresa la fornitura di infrastrutture di ML, manutenzione e monitoraggio e ottimizzazione dei costi)
  • Portare EarthSnap al suo stato desiderato (applicazione mobile e backend) attraverso una serie di impegni, inclusi lavori di AI/ML, operazioni di dati e database e DevOps

Dopo che l’infrastruttura e i processi fondamentali sono stati stabiliti, il modello è stato addestrato e riaddestrato su un dataset più grande. A questo punto, tuttavia, il team ha riscontrato un problema aggiuntivo quando ha cercato di espandere il modello con dataset ancora più grandi. Abbiamo dovuto trovare un modo per ristrutturare l’architettura della soluzione, rendendola più sofisticata e in grado di scalare in modo efficace. Il seguente diagramma mostra l’architettura AI/ML di EarthSnap.

L’architettura AI/ML per EarthSnap è progettata intorno a una serie di servizi AWS:

  • Il pipeline Sagemaker viene eseguito utilizzando uno dei metodi sopra menzionati (CodeBuild, API, manuale) che addestra il modello e produce artefatti e metriche. Di conseguenza, la nuova versione del modello viene pushata nel registro dei modelli Sagemaker
  • Poi il modello viene revisionato da un team interno (PM/ingegnere) nel registro dei modelli e approvato/rifiutato in base alle metriche fornite
  • Una volta che il modello è stato approvato, la versione del modello viene distribuita automaticamente nell’ambiente di stage utilizzando Amazon EventBridge che tiene traccia del cambiamento di stato del modello
  • Il modello viene distribuito nell’ambiente di produzione se il modello supera tutti i test nell’ambiente di stage

Soluzione finale

Per ospitare tutti i set di etichette necessari, la soluzione per il modello di EarthSnap ha richiesto modifiche sostanziali, poiché incorporare tutte le specie in un singolo modello si è rivelato sia costoso che inefficiente. La categoria delle piante è stata selezionata per prima per l’implementazione.

È stata condotta un’attenta esame dei dati delle piante, per organizzarli in sottoinsiemi in base alle caratteristiche interne condivise. La soluzione per il modello delle piante è stata ridisegnata implementando un’architettura multi-modello padre/figlio. Ciò è stato realizzato addestrando i modelli figlio su sottoinsiemi raggruppati di dati delle piante e addestrando il modello padre su un insieme di campioni di dati da ciascuna sottocategoria. I modelli figlio sono stati impiegati per la classificazione precisa all’interno delle specie raggruppate internamente, mentre il modello padre è stato utilizzato per categorizzare le immagini delle piante di input in sottogruppi. Questo design ha reso necessari processi di addestramento distinti per ogni modello, portando alla creazione di pipeline di ML separate. Con questo nuovo design, insieme alla base ML/MLOps precedentemente stabilita, l’applicazione EarthSnap è stata in grado di includere tutte le specie di piante essenziali, con un miglioramento dell’efficienza per quanto riguarda la manutenzione e il riaddestramento del modello. Il seguente diagramma illustra lo schema logico delle relazioni dei modelli padre/figlio.

Dopo il ridisegno, la sfida finale era garantire che la soluzione AI che alimentava EarthSnap potesse gestire il notevole carico generato da una vasta base di utenti. Fortunatamente, il processo di integrazione di AI gestita comprende tutta l’automazione, il monitoraggio e le procedure essenziali per la transizione della soluzione in uno stato pronto per la produzione, eliminando la necessità di ulteriori investimenti di capitale.

Risultati

Nonostante l’urgente necessità di sviluppare e implementare le funzionalità di riconoscimento immagini basato su AI di EarthSnap entro pochi mesi, Provectus è riuscita a soddisfare tutti i requisiti del progetto entro il periodo di tempo designato. In soli 3 mesi, Provectus ha modernizzato e prodotto la soluzione di ML per EarthSnap, garantendo che la loro applicazione mobile fosse pronta per la distribuzione pubblica.

L’infrastruttura modernizzata per ML e MLOps ha permesso ad Earth.com di ridurre il carico di lavoro ingegneristico e minimizzare i costi amministrativi associati alla manutenzione e al supporto di EarthSnap. Ottimizzando i processi e implementando le migliori pratiche per CI/CD e DevOps, Provectus ha garantito che EarthSnap potesse migliorare la sua performance, adattabilità, resilienza e sicurezza. Concentrandosi sull’innovazione ed efficienza, abbiamo permesso ad EarthSnap di funzionare senza problemi, fornendo un’esperienza utente senza interruzioni.

Come parte dei suoi servizi gestiti di AI, Provectus è stata in grado di ridurre il carico di lavoro di gestione dell’infrastruttura, stabilire SLA e processi ben definiti, garantire una copertura e un supporto 24 ore su 24, 7 giorni su 7 e aumentare la stabilità complessiva dell’infrastruttura, inclusi i carichi di lavoro di produzione e le release critiche. Abbiamo avviato una serie di miglioramenti per fornire una piattaforma di MLOps gestita e potenziare l’engineering di ML. In particolare, ora ci vogliono pochi minuti ad Earth.com, anziché diversi giorni, per rilasciare nuovi modelli di ML per la loro applicazione di riconoscimento immagini basato su AI.

Con l’assistenza di Provectus, Earth.com è stata in grado di rilasciare la sua applicazione EarthSnap all’Apple Store e al Playstore in anticipo rispetto alla tabella di marcia. L’anticipo del rilascio ha sottolineato l’importanza del lavoro completo di Provectus per il cliente.

“Sono incredibilmente entusiasta di lavorare con Provectus. Le parole non possono descrivere quanto mi sento bene nel consegnare il controllo del lato tecnico del business a Provectus. È un grande sollievo sapere che non devo preoccuparmi di nient’altro che dello sviluppo del lato business.”

– Eric Ralls, fondatore e CEO di EarthSnap.

I prossimi passi della nostra collaborazione includeranno: l’aggiunta di componenti di monitoraggio avanzati alle pipeline, il potenziamento del ritraining del modello e l’introduzione di una fase umana nel loop.

Conclusione

Il team di Provectus spera che Earth.com continui a modernizzare EarthSnap con noi. Non vediamo l’ora di alimentare l’espansione futura dell’azienda, di promuovere ulteriormente i fenomeni naturali e di fare la nostra parte per proteggere il nostro pianeta.

Per saperne di più sull’infrastruttura di ML e MLOps di Provectus, visitate Machine Learning Infrastructure e guardate il webinar per ottenere consigli pratici. Potete anche saperne di più sui servizi gestiti di AI di Provectus presso Managed AI Services.

Se siete interessati a costruire un’infrastruttura robusta per ML e MLOps nella vostra organizzazione, candidati al programma di accelerazione di ML per iniziare.

Provectus aiuta le aziende nei settori della salute e delle scienze della vita, del commercio al dettaglio e dei beni di consumo, dei media e dell’intrattenimento e della produzione, a raggiungere i loro obiettivi attraverso l’AI.

Provectus è un partner AWS Machine Learning Competency e una consulenza e un provider di soluzioni di trasformazione AI-first che aiuta a progettare, architettare, migrare o costruire applicazioni native del cloud su AWS.

Contatta Provectus | Panoramica dei partner