CLIP, che sta per Contrastive Language-Image Pretraining, è un modello di deep learning sviluppato da OpenAI nel 2021. Gli incorporamenti di CLIP per immagini e testo condividono lo stesso spazio, consentendo confronti diretti tra le due modalità. Ciò si ottiene addestrando il modello ad avvicinare immagini e testi correlati mentre si allontanano quelli non correlati.
Alcune applicazioni di CLIP includono:
- Classificazione e recupero delle immagini: CLIP può essere utilizzato per attività di classificazione delle immagini associando le immagini a descrizioni in linguaggio naturale. Consente sistemi di recupero delle immagini più versatili e flessibili in cui gli utenti possono cercare immagini utilizzando query testuali.
- Moderazione dei contenuti: CLIP può essere utilizzato per moderare i contenuti sulle piattaforme online analizzando le immagini e il testo di accompagnamento per identificare e filtrare contenuti inappropriati o dannosi.
Il modello CLIP originale mirava a unire le modalità di immagine e testo all’interno di uno spazio di incorporamento condiviso. Questo concetto, insieme alle sue tecniche, si estende oltre le immagini e il testo per abbracciare altre modalità. Netflix, dentro questo post del blogha formato un modello combinando modalità video e testo nello spazio di incorporamento comune per migliorare la ricerca all’interno delle applicazioni video. Preformazione contrastiva linguistica-audio (CLAP) è un altro modello che integra modalità di testo e audio nello stesso spazio di incorporamento, rendendolo utile per migliorare le funzionalità di ricerca all’interno delle applicazioni audio.
La tecnologia alla base di CLIP è estremamente semplice ma molto potente e apre le porte a molte tecniche di apprendimento automatico multimodello. Meta AI recentemente rilasciato ImageBindche apprende un incorporamento congiunto in sei modalità: immagini, testo, audio, profondità, dati termici e IMU. CLIP, il primo modello di intelligenza artificiale su larga scala che accetta due modalità, è un prerequisito per comprendere ImageBind e altri sistemi di intelligenza artificiale multimodali.
Cos’è CLIP
CLIP è progettato per prevedere quali N × N potenziali accoppiamenti (immagine, testo) all’interno del batch sono corrispondenze effettive. Per raggiungere questo obiettivo, CLIP stabilisce uno spazio di incorporamento multimodale attraverso la formazione congiunta di un codificatore di immagini e di un codificatore di testo. La perdita CLIP mira a massimizzare la somiglianza del coseno tra l’immagine e gli incorporamenti di testo per le N coppie autentiche nel batch, riducendo al minimo la somiglianza del coseno per gli N² − N accoppiamenti errati. Il processo di ottimizzazione prevede l’utilizzo di una funzione di perdita di entropia incrociata simmetrica che opera su questi punteggi di somiglianza. Di seguito viene presentato lo pseudocodice (tratto dall’articolo originale) che delinea l’implementazione principale di CLIP.
# image_encoder - ResNet or Vision Transformer
# text_encoder - CBOW or Text Transformer
# I(n, h, w, c) - minibatch of aligned images
# T(n, l) - minibatch of aligned texts
# W_i(d_i, d_e) - learned proj of image to embed
# W_t(d_t, d_e) - learned proj of text to embed
# t - learned temperature parameter
# extract feature representations of each modality
I_f = image_encoder(I) #(n, d_i)
T_f = text_encoder(T) #(n, d_t)
# joint multimodal embedding (n, d_e)
I_e = l2_normalize(np.dot(I_f, W_i), axis=1)
T_e = l2_normalize(np.dot(T_f, W_t), axis=1)
# scaled pairwise cosine similarities (n, n)
logits = np.dot(I_e, T_e.T) * np.exp
Fonte: towardsdatascience.com