Ottimizza i profili degli animali domestici per l’applicazione di Petfinder di Purina utilizzando Amazon Rekognition Custom Labels e AWS Step Functions

Ottimizza i profili dei tuoi animali domestici per l'applicazione di Petfinder di Purina con l'uso di Amazon Rekognition Custom Labels e AWS Step Functions

Purina US, una sussidiaria di Nestlé, ha una lunga storia nel facilitare alle persone l’adozione di animali domestici attraverso Petfinder, un mercato digitale di oltre 11.000 rifugi per animali e gruppi di soccorso negli Stati Uniti, in Canada e in Messico. Come piattaforma leader nell’adozione di animali domestici, Petfinder ha aiutato milioni di animali a trovare la loro casa per sempre.

Purina cerca costantemente modi per rendere ancora migliore la piattaforma di Petfinder sia per i rifugi che per i gruppi di soccorso e gli adottanti di animali domestici. Una sfida che hanno affrontato era quella di riflettere adeguatamente la specifica razza degli animali disponibili per l’adozione. Poiché molti animali dei rifugi sono di razza mista, identificare correttamente le razze e gli attributi nell’profilo degli animali richiedeva uno sforzo manuale, che richiedeva tempo. Purina ha utilizzato l’intelligenza artificiale (IA) e l’apprendimento automatico (ML) per automatizzare la rilevazione delle razze di animali su larga scala.

In questo post vengono dettagliati come Purina ha utilizzato Amazon Rekognition Custom Labels, AWS Step Functions e altri servizi AWS per creare un modello di ML che rileva la razza dell’animale da un’immagine caricata e quindi utilizza la previsione per popolare automaticamente gli attributi dell’animale. La soluzione si incentra sui principi fondamentali dello sviluppo di un flusso di lavoro per un’applicazione di IA/ML che comprende la preparazione dei dati, l’addestramento del modello, la valutazione del modello e il monitoraggio del modello.

Panoramica della soluzione

Prevedere le razze degli animali da un’immagine richiede modelli di ML personalizzati. Sviluppare un modello personalizzato per analizzare le immagini è un’impegnativa lavoro che richiede tempo, competenze e risorse, spesso richiedendo mesi per essere completato. Inoltre, spesso richiede migliaia o decine di migliaia di immagini etichettate manualmente per fornire al modello abbastanza dati per prendere decisioni accurate. Creare un flusso di lavoro di revisione o audizione delle previsioni dei modelli per convalidare la conformità ai requisiti può ulteriormente aggiungere alla complessità complessiva.

Con Rekognition Custom Labels, che si basa sulle capacità esistenti di Amazon Rekognition, è possibile identificare gli oggetti e le scene nelle immagini che sono specifici delle necessità aziendali. È già stato addestrato su decine di milioni di immagini in molte categorie. Invece di migliaia di immagini, è possibile caricare un piccolo set di immagini di addestramento (tipicamente qualche centinaio di immagini o meno per categoria) che sono specifiche per il proprio caso d’uso.

La soluzione utilizza i seguenti servizi:

  • Amazon API Gateway è un servizio completamente gestito che facilita agli sviluppatori la pubblicazione, la manutenzione, il monitoraggio e la protezione di API su qualsiasi scala.
  • Il AWS Cloud Development Kit (AWS CDK) è un framework di sviluppo software open-source per definire l’infrastruttura cloud come codice con linguaggi di programmazione moderni e distribuirlo attraverso AWS CloudFormation.
  • AWS CodeBuild è un servizio di integrazione continua completamente gestito nel cloud. CodeBuild compila il codice sorgente, esegue i test e produce pacchetti pronti per il rilascio.
  • Amazon DynamoDB è un servizio di database non relazionale rapido e flessibile per qualsiasi scala.
  • AWS Lambda è un servizio di calcolo basato sugli eventi che consente di eseguire codice per praticamente qualsiasi tipo di applicazione o servizio backend senza provisioning o gestione di server.
  • Amazon Rekognition offre funzionalità pre-addestrate e personalizzabili di visione artificiale (CV) per estrarre informazioni e intuizioni dalle immagini e dai video. Con Amazon Rekognition Custom Labels, è possibile identificare gli oggetti e le scene nelle immagini che sono specifici delle necessità aziendali.
  • AWS Step Functions è un servizio completamente gestito che semplifica il coordinamento dei componenti delle applicazioni distribuite e dei microservizi utilizzando flussi di lavoro visivi.
  • AWS Systems Manager è una soluzione completa di gestione end-to-end per le risorse su AWS e in ambienti multicloud e ibridi. Parameter Store, una funzionalità di Systems Manager, fornisce uno spazio di archiviazione gerarchico e sicuro per la gestione dei dati di configurazione e dei dati sensibili.

La soluzione di Purina viene implementata come un endpoint API Gateway HTTP, che instrada le richieste per ottenere gli attributi degli animali domestici. Utilizza Rekognition Custom Labels per prevedere la razza dell’animale domestico. Il modello di machine learning è addestrato sui profili degli animali domestici estratti dal database di Purina, assumendo che l’etichetta di razza primaria sia l’etichetta corretta. DynamoDB viene utilizzato per memorizzare gli attributi degli animali domestici. Lambda viene utilizzato per elaborare la richiesta degli attributi degli animali domestici orchestrando tra API Gateway, Amazon Rekognition e DynamoDB.

L’architettura è implementata nel seguente modo:

  1. L’applicazione Petfinder instrada la richiesta per ottenere gli attributi degli animali domestici tramite API Gateway.
  2. API Gateway chiama la funzione Lambda per ottenere gli attributi degli animali domestici.
  3. La funzione Lambda chiama il punto di inferenza Rekognition Custom Label per prevedere la razza dell’animale domestico.
  4. La funzione Lambda utilizza le informazioni sulla razza dell’animale domestico previste per eseguire una ricerca degli attributi degli animali domestici nella tabella DynamoDB. Raccoglie gli attributi degli animali domestici e li invia all’applicazione Petfinder.

Il diagramma seguente illustra il flusso di lavoro della soluzione.

Il team di Petfinder di Purina desidera una soluzione automatizzata che possa essere implementata con una manutenzione minima. Per fornire ciò, utilizziamo Step Functions per creare una state machine che addestra i modelli con i dati più recenti, controlla le loro prestazioni su un set di benchmark e reinstalla i modelli se hanno migliorato. Il riallenamento del modello viene avviato dal numero di correzioni delle razze effettuate dagli utenti che inviano informazioni di profilo.

Allenamento del modello

Sviluppare un modello personalizzato per analizzare le immagini è un’impresa significativa che richiede tempo, competenze e risorse. Inoltre, spesso sono necessarie migliaia o decine di migliaia di immagini etichettate manualmente per fornire al modello dati sufficienti per prendere decisioni accurate. Generare questi dati può richiedere mesi e richiede un grande sforzo per etichettarli per l’uso nell’apprendimento automatico. Una tecnica chiamata transfer learning aiuta a produrre modelli di qualità superiore prendendo in prestito i parametri di un modello pre-addestrato e consente di addestrare modelli con meno immagini.

La nostra sfida è che i nostri dati non sono perfettamente etichettati: le persone che inseriscono i dati del profilo possono commettere errori. Tuttavia, abbiamo scoperto che per campioni di dati sufficientemente grandi, le immagini etichettate erroneamente rappresentavano una frazione sufficientemente piccola e le prestazioni del modello non venivano influenzate più del 2% in termini di accuratezza.

Flusso di lavoro di apprendimento automatico e state machine

La state machine di Step Functions è sviluppata per aiutare nel riallenamento automatico del modello Amazon Rekognition. I feedback vengono raccolti durante l’inserimento del profilo: ogni volta che viene modificata l’indicazione di una razza inferita da un’immagine da parte dell’utente in una razza diversa, la correzione viene registrata. Questa state machine viene attivata da un numero configurabile di correzioni e da ulteriori dati.

La state machine esegue diverse fasi per creare una soluzione:

  1. Crea file di manifesto di addestramento e test contenenti l’elenco dei percorsi delle immagini di Amazon Simple Storage Service (Amazon S3) e le loro etichette per l’uso da parte di Amazon Rekognition.
  2. Crea un dataset di Amazon Rekognition utilizzando i file di manifesto.
  3. Addestra una versione del modello di Amazon Rekognition dopo aver creato il dataset.
  4. Avvia la versione del modello quando l’addestramento è completo.
  5. Valuta il modello e produce metriche di performance.
  6. Se le metriche di performance sono soddisfacenti, aggiorna la versione del modello in Parameter Store.
  7. Attendi che la nuova versione del modello si propaghi nelle funzioni Lambda (20 minuti), quindi arresta la versione precedente del modello.

Valutazione del modello

Utilizziamo un set di ritenzione casuale del 20% prelevato dal nostro campione di dati per convalidare il nostro modello. Poiché le razze che rileviamo sono configurabili, non utilizziamo un dataset fisso per la convalida durante l’addestramento, ma utilizziamo un set di valutazione etichettato manualmente per i test di integrazione. L’overlap tra il set etichettato manualmente e le razze rilevabili dal modello viene utilizzato per calcolare le metriche. Se l’accuratezza di rilevamento della razza del modello supera una soglia specificata, promuoviamo il modello per essere utilizzato nell’endpoint.

Ecco alcune schermate del flusso di predizione degli animali domestici da Rekognition Custom Labels.

Deployment con il AWS CDK

La macchina a stati di Step Functions e l’infrastruttura associata (incluse le funzioni Lambda, i progetti CodeBuild e i parametri Systems Manager) vengono distribuiti con il AWS CDK utilizzando Python. Il codice AWS CDK sintetizza un modello CloudFormation, che viene utilizzato per distribuire tutta l’infrastruttura per la soluzione.

Integrazione con l’applicazione Petfinder

L’applicazione Petfinder accede al punto di accesso di classificazione delle immagini tramite il punto di accesso di API Gateway utilizzando una richiesta POST contenente un payload JSON con campi per il percorso Amazon S3 all’immagine e il numero di risultati da restituire.

KPI da influenzare

Per giustificare il costo aggiuntivo dell’esecuzione del punto di accesso di inference delle immagini, abbiamo effettuato esperimenti per determinare il valore che il punto di accesso aggiunge a Petfinder. L’uso del punto di accesso offre due tipi principali di miglioramento:

  • Sforzo ridotto per i rifugi per animali che creano i profili degli animali
  • Profili di animali più completi, che si prevede migliorino la pertinenza della ricerca

Le metriche per misurare lo sforzo e la completezza del profilo includono il numero di campi autocompilati corretti, il numero totale di campi compilati e il tempo di caricamento di un profilo animale. Miglioramenti alla pertinenza della ricerca vengono inferiti indirettamente misurando gli indicatori chiave delle prestazioni relativi ai tassi di adozione. Secondo Purina, dopo che la soluzione è entrata in funzione, il tempo medio per creare un profilo animale sull’applicazione Petfinder è stato ridotto da 7 a 4 minuti. Questo è un enorme miglioramento e un risparmio di tempo perché nel 2022 sono stati caricati 4 milioni di profili di animali.

Sicurezza

I dati che passano attraverso il diagramma di architettura vengono crittografati in transito e a riposo, in conformità con le best practice di AWS Well-Architected. Durante tutti gli impegni AWS, un esperto di sicurezza esamina la soluzione per garantire un’implementazione sicura.

Conclusioni

Con la loro soluzione basata su Rekognition Custom Labels, il team di Petfinder è in grado di accelerare la creazione dei profili degli animali per i rifugi per animali, riducendo l’onere amministrativo sul personale del rifugio. La distribuzione basata sul AWS CDK distribuisce un flusso di lavoro Step Functions per automatizzare il processo di formazione e distribuzione. Per iniziare a utilizzare Rekognition Custom Labels, consulta Guida introduttiva a Amazon Rekognition Custom Labels. Puoi anche dare un’occhiata a qualche esempi di Step Functions e iniziare con il AWS CDK.