Utilizzare modelli di fondazione per migliorare l’accuratezza del modello con Amazon SageMaker

Utilizzare modelli di fondazione per ottimizzare la precisione del modello con Amazon SageMaker

Foto di Scott Webb su Unsplash

Foto di Scott Webb su Unsplash

Determinare il valore di una casa è un esempio classico di utilizzo del machine learning (ML). Un’influenza significativa è stata esercitata da Harrison e Rubinfeld (1978), che hanno pubblicato un articolo e un dataset innovativi, divenuti informalmente noti come il dataset delle case di Boston. Questo lavoro fondamentale ha proposto un metodo per stimare i prezzi delle abitazioni come funzione di numerosi fattori, tra cui la qualità dell’aria, che era il principale focus della loro ricerca. Quasi 50 anni dopo, la stima dei prezzi delle case è diventata uno strumento didattico importante per studenti e professionisti interessati all’utilizzo dei dati e del ML nella presa di decisioni aziendali.

In questo post, discutiamo dell’uso di un modello open-source appositamente progettato per l’attività di visual question answering (VQA). Con VQA, puoi fare una domanda su una foto usando il linguaggio naturale e ricevere una risposta alla tua domanda, anche in linguaggio semplice. Il nostro obiettivo in questo post è ispirare e dimostrare cosa è possibile fare utilizzando questa tecnologia. Proporremo di utilizzare questa capacità con la piattaforma di servizi Amazon SageMaker per migliorare l’accuratezza di un modello di regressione in un caso d’uso di ML e, in modo indipendente, per l’etichettatura automatizzata delle immagini visive.

Forniamo un video di YouTube che illustra quanto discusso qui. La riproduzione del video inizierà a metà per evidenziare il punto più saliente. Ti suggeriamo di seguire questa lettura con il video per rafforzare e approfondire la comprensione del concetto.

Modelli di base

Questa soluzione si basa sull’uso di un modello di base pubblicato nel repository dei modelli di Hugging Face. Qui, utilizziamo il termine “modello di base” per descrivere una capacità di intelligenza artificiale (AI) che è stata preaddestrata su un corpo di dati ampio e diversificato. Alcuni modelli di base possono essere pronti all’uso senza la necessità di addestrare un modello da zero. Alcuni modelli di base possono essere addestrati ulteriormente, il che significa insegnar loro ulteriori schemi che sono rilevanti per la tua attività, ma mancanti nel modello pubblicato originale generalizzato. Talvolta è necessario un addestramento ulteriore per ottenere risposte corrette che siano uniche per il tuo caso d’uso o corpus di conoscenza.

Nel repository di Hugging Face, ci sono diversi modelli VQA tra cui scegliere. Abbiamo selezionato il modello con il maggior numero di download al momento della scrittura di questo articolo. Anche se questo post dimostra la capacità di utilizzare un modello da un repository di modelli open-source, lo stesso concetto si applicherebbe a un modello che hai addestrato da zero o utilizzato da un altro fornitore affidabile.

Un approccio moderno a un caso d’uso classico

La stima del prezzo delle case tradizionalmente avviene tramite dati tabulari in cui le caratteristiche della proprietà vengono utilizzate per determinare il prezzo. Sebbene ci possano essere centinaia di caratteristiche da considerare, alcuni esempi fondamentali sono la dimensione dell’abitazione nello spazio finito, il numero di camere da letto e bagni e la posizione della residenza.

Il machine learning è in grado di incorporare fonti di input diverse oltre ai dati tabulari, come audio, immagini fisse, video in movimento e linguaggio naturale. In AI, il termine multimodale si riferisce all’uso di una varietà di tipologie di media, come immagini e dati tabulari. In questo post, mostriamo come utilizzare dati multimodali per individuare e liberare il valore nascosto all’interno dell’abbondante quantità di dati digitali prodotti dal mondo moderno di oggi.

Con questa idea in mente, dimostriamo l’uso dei modelli di base per estrarre caratteristiche latenti dalle immagini della proprietà. Utilizzando le informazioni trovate nelle immagini, non precedentemente disponibili nei dati tabulari, possiamo migliorare l’accuratezza del modello. Sia le immagini che i dati tabulari discussi in questo post sono stati inizialmente resi disponibili e pubblicati su GitHub da Ahmed e Moustafa (2016).

Un’immagine vale più di mille parole

Ora che comprendiamo le capacità di VQA, consideriamo le seguenti due immagini di cucine. Come valuteresti il valore della casa da queste immagini? Quali domande ti faresti? Ogni immagine può suscitare decine di domande nella tua mente. Alcune di queste domande possono portare a risposte significative che migliorano il processo di valutazione di una casa.

Photo credit Francesca Tosolini (L) and Sidekix Media (R) su Unsplash

La seguente tabella fornisce esempi aneddotici di interazioni VQA mostrando domande insieme alle risposte corrispondenti. Le risposte possono essere di tipo categorico, continui o binari.

Esempio di domanda Esempio di risposta dal modello Foundation
Di cosa sono fatti i piani di lavoro? granito, piastrelle, marmo, laminato, ecc.
Questa è una cucina costosa? sì, no
Quanti lavandini separati ci sono? 0, 1, 2

Architettura di riferimento

In questo post, utilizziamo Amazon SageMaker Data Wrangler per fare una serie uniforme di domande visive per migliaia di foto nel dataset. SageMaker Data Wrangler è progettato appositamente per semplificare il processo di preparazione dei dati e l’ingegneria delle feature. Fornendo più di 300 trasformazioni integrate, SageMaker Data Wrangler riduce il tempo necessario per preparare dati tabulari e immagini per l’apprendimento automatico da settimane a minuti. Qui, SageMaker Data Wrangler combina le caratteristiche dei dati dal set tabulare originale con le caratteristiche basate sulle foto dal modello foundation per l’addestramento del modello.

Successivamente, costruiamo un modello di regressione con l’uso di Amazon SageMaker Canvas. SageMaker Canvas può costruire un modello, senza scrivere alcun codice, e fornire risultati preliminari in soli 2-15 minuti. Nella sezione successiva, forniamo un’architettura di riferimento utilizzata per rendere possibile questa guida alla soluzione.

Molti modelli popolari di Hugging Face e altri fornitori sono pronti per il deploy con un clic utilizzando Amazon SageMaker JumpStart. Ci sono centinaia di migliaia di modelli disponibili in questi repository. Per questo post, scegliamo un modello non disponibile in SageMaker JumpStart, che richiede un deployment del cliente. Come mostrato nella figura seguente, deployiamo un modello Hugging Face per l’inferring utilizzando un notebook di Amazon SageMaker Studio. Il notebook viene utilizzato per deployare un endpoint per l’inferring in tempo reale. Il notebook utilizza risorse che includono il modello binario di Hugging Face, un puntatore all’immagine del container e uno script inference.py appositamente sviluppato che corrisponde all’input e all’output atteso dal modello. Mentre leggi questo, la disponibilità dei modelli VQA può cambiarne. Ciò che conta è esaminare i modelli VQA disponibili al momento della lettura di questo testo e essere preparati al deploy del modello scelto, che avrà il proprio contratto di richiesta e risposta dell’API.

Dopo che il modello VQA viene servito dal endpoint SageMaker, utilizziamo SageMaker Data Wrangler per orchestrare il flusso di lavoro che combina i dati tabulari e le caratteristiche estratte dalle immagini digitali, e dare forma ai dati per l’addestramento del modello. La figura successiva offre una panoramica di come viene eseguito il lavoro di trasformazione dei dati in larga scala.

Nella figura successiva, utilizziamo SageMaker Data Wrangler per coordinare le attività di preparazione dei dati e SageMaker Canvas per l’addestramento del modello. Prima, SageMaker Data Wrangler utilizza Amazon Location Service per convertire i codici ZIP disponibili nei dati grezzi in caratteristiche di latitudine e longitudine. Secondo, SageMaker Data Wrangler è in grado di coordinare l’invio di migliaia di foto a un endpoint ospitato da SageMaker per l’inferenza in tempo reale, ponendo un insieme uniforme di domande per ogni scena. Ciò porta a un ricco insieme di caratteristiche che descrivono le caratteristiche osservate in cucine, bagni, esterni di case e altro ancora. Dopo che i dati sono stati preparati da SageMaker Data Wrangler, un set di dati di addestramento è disponibile in Amazon Simple Storage Service (Amazon S3). Utilizzando i dati S3 come input, SageMaker Canvas è in grado di addestrare un modello, in soli 2-15 minuti, senza scrivere alcun codice.

Trasformazione dei dati utilizzando SageMaker Data Wrangler

La seguente immagine mostra il flusso di lavoro di SageMaker Data Wrangler. Il flusso di lavoro inizia con migliaia di foto di case archiviate in Amazon S3. Successivamente, un rilevatore di scene determina la scena, come cucina o bagno. Infine, viene formulato un set di domande specifiche per la scena sulle immagini, ottenendo un dataset tabulare più ricco disponibile per l’addestramento.

Di seguito è riportato un esempio del codice di trasformazione personalizzato di SageMaker Data Wrangler utilizzato per interagire con il modello di base e ottenere informazioni sulle immagini delle cucine. Nella schermata precedente, se scegliessi il nodo delle caratteristiche della cucina, apparirebbe il seguente codice:

from botocore.config import Configimport jsonimport boto3import base64from pyspark.sql.functions import col, udf, struct, litdef get_answer(question,image):   encoded_input_image = base64.b64encode(bytearray(image)).decode()   payload = {     "question": question,       "image": encoded_input_image    }   payload = json.dumps(payload).encode('utf-8')   response = boto3.client('runtime.sagemaker', config=Config(region_name='us-west-2')).invoke_endpoint(EndpointName='my-vqa-endpoint-name', ContentType='application/json', Body=payload) return json.loads(response['Body'].read())["predicted_answer"]vqaUDF = udf(lambda q,img: get_answer(q,img))# process only images of bathroom typedf = df[df['scene']=='kitchen']visual_questions = [    ('kitchen_floor_composition', 'what is the floor made of'), ('kitchen_floor_color', 'what color is the floor'), ('kitchen_counter_composition', 'what is the countertop made of'),  ('kitchen_counter_color', 'what color is the countertop'),  ('kitchen_wall_composition', 'what are the walls made of'), ('kitchen_refrigerator_stainless', 'is the refrigerator stainless steel'),  ('kitchen_refrigerator_builtin', 'is there a built-in refrigerator'),   ('kitchen_refrigerator_visible', 'is a refrigerator visible'),  ('kitchen_cabinet_composition', 'what are the kitchen cabinets made of'),   ('kitchen_cabinet_wood', 'what type of wood are the kitchen cabinets'), ('kitchen_window', 'does the kitchen have windows'),    ('kitchen_expensive', 'is this an expensive kitchen'),  ('kitchen_large', 'is this a large kitchen'),   ('kitchen_recessed_lights', 'are there recessed lights')    ]for i in visual_questions: df = df.withColumn(i[0], vqaUDF(lit(i[1]),col('image_col.data')))

Come considerazione di sicurezza, è necessario abilitare SageMaker Data Wrangler a chiamare il tuo endpoint in tempo reale di SageMaker tramite AWS Identity and Access Management (IAM). Allo stesso modo, qualsiasi risorsa AWS che invochi tramite SageMaker Data Wrangler avrà bisogno di permessi simili.

Strutture dati prima e dopo SageMaker Data Wrangler

In questa sezione, discutiamo della struttura dei dati tabulari originali e dei dati migliorati. I dati migliorati contengono nuove funzionalità relative a questo caso di utilizzo di esempio. Nella tua applicazione, prenditi del tempo per immaginare l’insieme diversificato di domande disponibili nelle tue immagini per aiutare la tua classificazione o compito di regressione. L’idea è immaginare il maggior numero possibile di domande e poi testarle per assicurarsi che forniscono un valore aggiunto.

Struttura dei dati tabulari originali

Come descritto nel repository GitHub di origine, il dataset di esempio contiene 535 record tabulari, incluse quattro immagini per ogni proprietà. La tabella seguente illustra la struttura dei dati tabulari originali.

Funzionalità Commento
Numero di camere da letto .
Numero di bagni .
Superficie (piedi quadrati) .
Codice ZIP .
Prezzo Questa è la variabile target da prevedere.

Struttura dei dati migliorati

La tabella seguente illustra la struttura dei dati migliorati, che contiene diverse nuove funzionalità derivate dalle immagini.

Funzionalità Commento
Numero di camere da letto .
Numero di bagni .
Superficie (piedi quadrati) .
Latitudine Calcolata passando il codice ZIP originale al servizio Amazon Location. Questo è il valore del centroide per il codice ZIP.
Longitudine Calcolata passando il codice ZIP originale al servizio Amazon Location. Questo è il valore del centroide per il codice ZIP.
La camera da letto ha un soffitto a volta? 0 = no; 1 = sì
Il bagno è costoso? 0 = no; 1 = sì
La cucina è costosa? 0 = no; 1 = sì
Prezzo Questa è la variabile target da prevedere.

Addestramento del modello con SageMaker Canvas

Un job di elaborazione di SageMaker Data Wrangler prepara completamente e rende disponibile l’intero dataset di addestramento tabulare su Amazon S3. Successivamente, SageMaker Canvas affronta la fase di costruzione del modello del ciclo di vita dell’apprendimento automatico. Canvas inizia aprendo l’insieme di addestramento S3. Riuscire a comprendere un modello è spesso una richiesta fondamentale del cliente. Senza scrivere codice, e con pochi clic, SageMaker Canvas fornisce un feedback visivo dettagliato sulle prestazioni del modello. Come si può vedere nella schermata successiva, SageMaker Canvas mostra come le singole funzionalità influenzano il modello.

Modello addestrato con dati tabulari originali e caratteristiche derivate dalle immagini immobiliari

Dalla seguente schermata possibile osservare che le caratteristiche sviluppate dalle immagini della proprietà sono state importanti. In base a questi risultati, la domanda “Questo cucina è costosa” proveniente dalla foto è stata più significativa rispetto al “numero di camere” nel set tabulare originale, con valori di importanza delle caratteristiche pari a 7,08 e 5,498, rispettivamente.

Dalla seguente schermata è possibile ottenere informazioni importanti sul modello. Innanzitutto, il grafico residuale mostra la maggior parte dei punti nel gruppo attorno alla zona ombreggiata viola. Qui, sono stati annotati manualmente due outlier al di fuori di SageMaker Canvas per questa illustrazione. Questi outlier rappresentano scarti significativi tra il valore reale dell’abitazione e il valore previsto. Inoltre, viene mostrato il valore di R2, che ha un range possibile del 0-100%, che è pari al 76%. Ciò indica che il modello è imperfetto e non dispone di abbastanza punti di informazione per stimare pienamente i valori delle abitazioni.

Possiamo utilizzare gli outlier per individuare e proporre segnali aggiuntivi per costruire un modello più completo. Ad esempio, queste proprietà outlier potrebbero includere una piscina o essere situate in ampi appezzamenti di terreno. Il dataset non includeva queste caratteristiche; tuttavia, potresti essere in grado di individuare questi dati e addestrare un nuovo modello con “ha una piscina” incluso come caratteristica aggiuntiva. Idealmente, nel tuo prossimo tentativo, il valore di R2 aumenterebbe e i valori di MAE e RMSE diminuirebbero.

Modello addestrato senza caratteristiche derivate dalle immagini immobiliari

Infine, prima di passare alla sezione successiva, esaminiamo se le caratteristiche delle immagini sono state utili. La seguente schermata mostra un altro modello addestrato con SageMaker Canvas senza le caratteristiche derivate dal modello VQA. Possiamo vedere che il tasso di errore del modello è aumentato, con un RMSE passato da 282K a 352K. Da ciò possiamo concludere che tre semplici domande dalle immagini hanno migliorato l’accuratezza del modello di circa il 20%. Non mostrato, ma per completezza, anche il valore di R2 per il modello successivo si è deteriorato, scendendo a un valore del 62% da un valore del 76% con le caratteristiche VQA fornite. Questo è un esempio di come SageMaker Canvas semplifica il processo di sperimentazione e utilizzo di un approccio basato sui dati che produce un modello per soddisfare le esigenze del tuo business.

Prospettive future

Molte organizzazioni stanno dimostrando un interesse crescente per i modelli di base, specialmente da quando i trasformatori pre-addestrati generici (GPT) sono diventati ufficialmente un argomento principale di interesse nel dicembre 2022. Una grande parte dell’interesse per i modelli di base è incentrata sulle grandi modelli di linguaggio (LLM); tuttavia, esistono anche altre diverse applicazioni disponibili, come la visione artificiale e, in modo più specifico, il compito specializzato di VQA descritto qui.

Questo post è un esempio per ispirare l’utilizzo di dati multimodali per risolvere casi d’uso industriali. Sebbene abbiamo dimostrato l’utilizzo e i vantaggi di VQA in un modello di regressione, può essere utilizzato anche per etichettare e categorizzare le immagini per una ricerca successiva o per l’instradamento dei flussi di lavoro aziendali. Immaginati di poter cercare proprietà in vendita o in affitto. Supponiamo che tu voglia trovare una proprietà con pavimenti piastrellati o piani di lavoro in marmo. Oggi, potresti dover ottenere una lunga lista di proprietà candidate e filtrarle tu stesso mentre sfogli ogni candidato. Invece, immagina di poter filtrare le inserzioni che contengono queste caratteristiche, anche se una persona non le ha esplicitamente etichettate. Nell’industria assicurativa, immagina la capacità di stimare i danni nei reclami o instradare le azioni successive in un flusso di lavoro aziendale a partire dalle immagini. Nei social media, le foto potrebbero essere auto-categorizzate per un utilizzo successivo.

Sommario

Questo post ha dimostrato come utilizzare la visione artificiale abilitata da un modello di base per migliorare un caso d’uso di machine learning classico utilizzando la piattaforma SageMaker. Come parte della soluzione proposta, abbiamo individuato un popolare modello VQA disponibile in un registro pubblico dei modelli e lo abbiamo implementato utilizzando un endpoint di SageMaker per inferenze in tempo reale.

In seguito, abbiamo utilizzato SageMaker Data Wrangler per orchestrare un flusso di lavoro in cui sono state poste domande uniformi sulle immagini al fine di generare un ricco set di dati tabulari. Infine, abbiamo utilizzato SageMaker Canvas per addestrare un modello di regressione. È importante notare che il dataset di esempio era molto semplice e, quindi, imperfetto per design. Tuttavia, SageMaker Canvas facilita la comprensione dell’accuratezza del modello e la ricerca di segnali aggiuntivi per migliorarne l’accuratezza di un modello di base.

Speriamo che questo post ti abbia incoraggiato ad utilizzare i dati multimodali che la tua organizzazione potrebbe possedere. Inoltre, speriamo che il post ti abbia ispirato a considerare l’addestramento del modello come un processo iterativo. Un ottimo modello può essere ottenuto con un po’ di pazienza. Modelli che sono quasi perfetti potrebbero essere troppo belli per essere veri, forse il risultato di perdite di dati o sovradattamento. Uno scenario ideale inizierebbe con un modello che è buono, ma non perfetto. Utilizzando errori, perdite e grafici residui, è possibile ottenere segnali di dati aggiuntivi per aumentare l’accuratezza dalla stima iniziale del modello di base.

AWS offre il più ampio e profondo set di servizi di ML e infrastruttura cloud di supporto, mettendo l’ML nelle mani di ogni sviluppatore, data scientist ed esperto praticante. Se sei curioso di saperne di più sulla piattaforma SageMaker, inclusi SageMaker Data Wrangler e SageMaker Canvas, ti preghiamo di contattare il team del tuo account AWS e avviare una conversazione. Inoltre, considera di leggere di più su SageMaker Data Wrangler trasformazioni personalizzate.

Riferimenti

Ahmed, E. H., & Moustafa, M. (2016). House price estimation from visual and textual features. IJCCI 2016-Proceedings of the 8th International Joint Conference on Computational Intelligence, 3, 62–68.

Harrison Jr, D., & Rubinfeld, D. L. (1978). Hedonic housing prices and the demand for clean air. Journal of environmental economics and management, 5(1), 81-102.

Kim, W., Son, B. & Kim, I.. (2021). ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision. Proceedings of the 38th International Conference on Machine Learning, in Proceedings of Machine Learning Research. 139:5583-5594.