Il modello della Fondazione CLIP.  Riepilogo del documento: apprendimento trasferibile… |  di Sascha Kirch |  Agosto 2023

 | Intelligenza-Artificiale

  1. Contesto e sfondo
  2. Metodo
  3. Esperimenti
  4. Ulteriori letture e risorse

CLIPARE (Contrastivo llingua-IOmago Pre-Training) è un modello multimodale che apprende la corrispondenza tra linguaggio naturale e immagini. Viene addestrato su 400 milioni di coppie testo-immagine raccolte da Internet. Come scopriremo più avanti in questo articolo, CLIP ha ottime prestazioni zero-shot, il che significa che si comporta bene su compiti downstream diversi da quelli su cui è stato addestrato, senza eseguire alcuna messa a punto.

CLIP si propone di:

  1. Applicare il successo di tecniche di pre-formazione su larga scala conosciute dall’elaborazione del linguaggio naturale (ad esempio la famiglia GPT, T5 E BERT) alla visione artificiale.
  2. Abilita funzionalità zero-shot flessibili utilizzando il linguaggio naturale anziché etichette di classe con set fisso.

Perché è un grosso problema che potresti chiederti? Innanzitutto, molti modelli di visione artificiale vengono addestrati su set di dati etichettati di crowdsourcing. Questi set di dati contengono spesso centinaia di migliaia di campioni. Alcune eccezioni riguardano milioni di campioni a una o due cifre. Come puoi immaginare, è un processo molto lungo e costoso. D’altra parte, i set di dati per i modelli del linguaggio naturale sono generalmente più grandi di diversi ordini di grandezza e vengono recuperati da Internet. In secondo luogo, se un modello di rilevamento oggetti è stato addestrato su determinate classi e desideri aggiungere una classe extra, dovrai etichettare questa nuova classe nei tuoi dati e addestrare nuovamente il modello.

La capacità di CLIP di combinare il linguaggio naturale e le caratteristiche dell’immagine in combinazione con le sue prestazioni zero-shot ha portato ad un’ampia adozione in molti altri modelli di fondazione popolari come UnCLIP, EVA, SAM, Diffusione stabile, SCORREVOLE O VQGAN-CLIP, per dirne alcuni.

Ora tuffiamoci nel metodo CLIP. L’immagine qui sotto rappresentata in Fig.1 mostra l’architettura di CLIP e il processo con cui viene addestrato

Fig. 1 — Architettura e processo formativo di CLIP. Fonte immagine + annotazioni per autore

L’architettura del modello è costituita da due modelli di encoder, uno per ciascuna modalità. Per il codificatore di testo è stato utilizzato un trasformatore mentre il codificatore di immagini utilizza una versione di ResNet o ViT (Trasformatore di visione). Una trasformazione lineare appresa, una per ciascuna modalità, trasforma le caratteristiche in incorporamenti di dimensioni corrispondenti. Infine, la somiglianza del coseno viene calcolata tra ciascuno degli incorporamenti della modalità opposta ed è scalata da uno scalare di temperatura appreso. Durante l’addestramento, la somiglianza del coseno tra le coppie corrispondenti viene massimizzata mentre viene ridotta al minimo per le coppie errate, da qui il termine “contrastivo” nel nome del framework.

Ci sono alcune sottigliezze che sono cruciali per il successo, oltre ovviamente al grande set di dati. Innanzitutto, l’approccio di apprendimento contrastivo dipende fortemente dalla dimensione del batch N. Più campioni negativi vengono forniti insieme a quelli corretti, più forte è il segnale di apprendimento. CLIP è stato addestrato su una dimensione batch di 32.768, ovvero piuttosto grande. In secondo luogo, CLIP non apprende una corrispondenza della formulazione esatta, ma un compito proxy più semplice per apprendere solo il testo nel suo insieme, chiamato anche sacchetto di parole (BoW).

Fatto divertente: La versione di CLIP che utilizza un ResNet50x64 come codificatore di immagini è stata addestrata per 18 giorni su 592 GPU V100 e mentre la versione con il modello ViT è stata addestrata per 12 giorni su 256 GPU V100. In altre parole, oltre 29 anni E oltre 8 anni rispettivamente su una singola GPU (ignorando il fatto che verrebbe utilizzata una dimensione batch diversa).

Una volta addestrato il modello, è possibile utilizzarlo per eseguire la classificazione degli oggetti su un’immagine. La domanda è: come eseguire la classificazione utilizzando un modello che non è stato addestrato per classificare le immagini e che non include etichette di classe di input ma istruzioni di testo? La Fig 2. mostra come:

Fig. 2 — Architettura di CLIP per la classificazione delle immagini. Fonte immagine + annotazioni per autore

Un’etichetta di classe può essere vista come un messaggio di testo formato da una singola parola. Per indicare al modello quali classi sono disponibili per l’attività di classificazione, nel modello viene immesso un insieme di N classi. Questo è un enorme vantaggio rispetto ai modelli di classificazione addestrati su un insieme fisso di etichette. Ora possiamo inserire 3 classi o 100; è una nostra scelta. Come vedremo in seguito, per migliorare le prestazioni di CLIP, l’etichetta della classe viene trasformata in un prompt per fornire ulteriore contesto al modello. Ogni prompt viene quindi inviato al codificatore di testo e quindi trasformato in un vettore di incorporamento.

L’immagine in input viene inserita nel codificatore di immagini per ottenere il vettore di incorporamento.

Quindi viene calcolata la somiglianza del coseno per ciascuna coppia di incorporamenti di testo e immagini. Un Softmax viene applicato ai valori di somiglianza ottenuti per formare una distribuzione di probabilità. Infine, come previsione finale, viene selezionato il valore con la probabilità più alta.

Il documento CLIP presenta un vasto numero di esperimenti e ablazioni. Qui ne tratteremo cinque, dai quali ritengo siano importanti per comprendere il successo di CLIP. In anticipo i take away (come formulati dagli autori di CLIP) e poi entreremo nei dettagli:

  1. Efficienza della formazione: CLIP è molto più efficiente nel trasferimento zero-shot rispetto alla nostra linea di base per le didascalie delle immagini
  2. Formato di input del testo: La progettazione e l’assemblaggio tempestivi migliorano le prestazioni zero-shot
  3. Prestazioni a tiro zero: CLIP Zero-shot è competitivo con una linea di base completamente supervisionata
  4. Prestazioni con pochi colpi: Il CLIP a scatto zero supera le prestazioni delle sonde lineari a scatto ridotto
  5. Spostamento della distribuzione: CLIP Zero-shot è molto più resistente al cambiamento della distribuzione rispetto ai modelli ImageNet standard

Efficienza della formazione

Durante l’addestramento, il codificatore di immagini e il codificatore di testo vengono addestrati congiuntamente, cioè con un unico obiettivo formativo e contemporaneamente. CLIP non solo esegue uno schema di apprendimento contrastivo, ma i suggerimenti testuali vengono confrontati nel loro insieme con una determinata immagine, quindi l’ordine delle parole non ha importanza. È semplicemente un “sacchetto di parole”. La frase “il mio nome è Sascha” risulta nella stessa incorporazione di “il mio nome Sascha è il mio”.

Prevedere un insieme di parole invece delle parole corrette e la sua posizione in una frase è un obiettivo proxy molto più semplice. La Fig 3. di seguito mostra la precisione zero-shot su ImageNet sul numero di campioni di addestramento del modello del trasformatore iniziale addestrato per prevedere le parole esatte, del modello del trasformatore iniziale addestrato per prevedere un sacchetto di parole e del modello CLIP che esegue l’apprendimento contrastivo utilizzando il sacchetto di parole.

“CLIP è molto più efficiente nel trasferimento zero-shot rispetto alla nostra linea di base per le didascalie delle immagini” — Autori CLIP

Fig. 3 — Efficienza zero-shot. Fonte immagine + annotazioni per autore

Formato di input del testo

Come abbiamo visto in Fig. 2, per eseguire la classificazione degli oggetti, l’etichetta della classe è stata convertita in un prompt di testo. Naturalmente, questo non è stato un caso, perché CLIP sarebbe andato benissimo con una sola parola. È stato fatto per sfruttare la descrittività del linguaggio e per fornire un contesto per risolvere possibili ambiguità. Prendiamo ad esempio la parola “boxer”. Potrebbe essere un tipo di cane o un tipo di atleta. Gli autori di CLIP hanno dimostrato che il formato del messaggio di testo è molto importante e può aumentare le prestazioni e l’efficienza.

“L’ingegnerizzazione e l’assemblaggio tempestivi migliorano le prestazioni zero-shot” – Autori CLIP

Fig. 4— Prompt engineering e assemblaggio rispetto a nomi di classi senza contesto. Fonte immagine + annotazioni per autore

Prestazioni a tiro zero

In un altro esperimento, gli autori hanno confrontato le prestazioni di classificazione delle immagini zero-shot di CLIP con un modello addestrato specificamente sul set di dati a confronto.

“Il CLIP zero-shot è competitivo con una linea di base completamente supervisionata” — Autori CLIP

Fig. 5— CLIP Zero-Shot rispetto al riferimento supervisionato. Fonte immagine + annotazioni per autore

Prestazioni con pochi colpi

Sebbene i predittori di tiro zero non siano ottimizzati per il compito a valle, pochi rilevatori di tiro lo sono. Gli autori hanno sperimentato diversi modelli pre-addestrati disponibili al pubblico e hanno confrontato le loro prestazioni con pochi scatti su 20 diversi set di dati con CLIP zero-shot e pochi-shot. I modelli a pochi colpi sono stati messi a punto su 1, 2, 4, 8 e 16 esemplari per classe.

È interessante notare che il CLIP a scatto zero ha prestazioni più o meno altrettanto buone del CLIP a 4 scatti.

Se si confronta CLIP con altri modelli, si deve considerare che i modelli disponibili al pubblico confrontati (es Morso, SimCLR e ResNet) sono stati pre-addestrati su set di dati diversi e più piccoli come il modello CLIP.

“Il CLIP zero-shot supera le prestazioni delle sonde lineari a pochi-shot” — Autori CLIP

Fig. 6— Prestazioni con pochi colpi. Fonte immagine + annotazioni per autore

Spostamento della distribuzione

In generale, la robustezza di un modello rispetto ai cambiamenti di distribuzione si riferisce alla sua capacità di funzionare altrettanto bene sia sui dati di una diversa distribuzione dei dati che sulla distribuzione dei dati su cui è stato addestrato. Idealmente, funzionerebbe altrettanto bene. In realtà, le sue prestazioni diminuiscono.

La robustezza del CLIP zero-shot è stata confrontata con un modello ImageNet ResNet101. Entrambi i modelli vengono valutati sui cambiamenti di distribuzione naturali di ImageNet, come illustrato in Fig. 7.

“CLIP Zero-shot è molto più resistente al cambiamento della distribuzione rispetto ai modelli ImageNet standard” — Autori CLIP

Fig. 7 — Spostamento della distribuzione. Fonte immagine + annotazioni per autore

Come accennato all’inizio di questo articolo, CLIP è stato ampiamente adottato da un vasto numero di progetti.

Di seguito un elenco di documenti che utilizzano CLIP:

  1. (UnCLIP) Generazione gerarchica di immagini condizionali al testo con latenti CLIP
  2. (EVA) Esplorare i limiti dell’apprendimento della rappresentazione visiva mascherata su larga scala
  3. (SAM) Segmenta qualsiasi cosa
  4. (Diffusione stabile) Sintesi di immagini ad alta risoluzione con modelli di diffusione latente
  5. (SCORREVOLE) Verso la generazione e l’editing di immagini fotorealistiche con modelli di diffusione guidata dal testo
  6. (VQGAN-CLIP) Generazione e modifica di immagini di dominio aperto con guida in linguaggio naturale

E un elenco di repository se vuoi immergerti nell’implementazione e testarla tu stesso:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *