Dai a CLIP la fotografia di un gatto e una lista di parole scritte a mano — gatto, cane, tostapane — e lui sceglie «gatto». Fin qui niente di strano. La stranezza è un’altra: nessuno ha mai addestrato CLIP a distinguere gatti da cani. Non ha visto un dataset di gatti etichettati, non ha un ultimo strato con una casella per ogni animale. Ha solo imparato, durante l’addestramento, a mettere in relazione immagini e frasi pescate da internet. E questo, si scopre, basta.
Un solo spazio per immagini e parole, l’esame nei due sensi, la temperatura e la loss in dieci righe: nel libro.
Leggi «Un solo spazio per le immagini e le parole» nel libro →
Il paper si intitola Learning Transferable Visual Models From Natural Language Supervision, pubblicato da OpenAI all’inizio del 2021. CLIP sta per Contrastive Language–Image Pre-training. È uno di quei lavori la cui influenza si misura non dai suoi risultati diretti, ma da quante altre cose ha reso possibili.
Un classificatore che nessuno ha addestrato a classificare
La visione artificiale, fino a quel momento, funzionava così: scegli le categorie in anticipo (le 1000 classi di ImageNet, per dire), raccogli migliaia di immagini etichettate a mano per ognuna, addestri una rete a scegliere tra quelle 1000 caselle. Il modello diventa bravissimo su quelle categorie e cieco su tutto il resto. Vuoi aggiungere «quaderno»? Ricominci: nuove foto, nuove etichette, nuovo addestramento.
CLIP rompe questo schema. Invece di imparare «quale delle N caselle», impara «quanto questa immagine somiglia a questa frase». Le categorie non sono più incise nel modello: le fornisci al momento dell’uso, scrivendole in italiano (o in inglese). È la differenza tra un modulo con le caselle prestampate e un foglio bianco su cui scrivi tu le opzioni ogni volta.
L’idea: due spazi che diventano uno
Dentro CLIP ci sono due reti separate. Un encoder di immagini (una ResNet o un Vision Transformer) che trasforma una foto in un vettore di numeri. Un encoder di testo (un Transformer) che trasforma una frase in un vettore della stessa lunghezza. Due mondi diversi — pixel e parole — ridotti alla stessa unità di misura.
Il punto è che questi due vettori vivono nello stesso spazio. Immagina un dizionario bilingue in cui la parola italiana e quella inglese non stanno su pagine diverse, ma vengono entrambe appese allo stesso scaffale, quello del concetto che condividono. L’addestramento serve esattamente a questo: spingere il vettore di una foto di cane e il vettore della frase «una foto di un cane» verso lo stesso scaffale, e allontanarli dalle frasi sbagliate.
Come si allena: il gioco degli abbinamenti
Il materiale grezzo sono circa 400 milioni di coppie (immagine, testo) raccolte dal web: una foto e la didascalia che la accompagnava. Nessun umano ha etichettato niente; l’etichetta è la didascalia che c’era già.
L’allenamento è un gioco di memoria su larga scala. Prendi un lotto di, diciamo, N coppie. Calcoli i vettori delle N immagini e delle N frasi. Ottieni una griglia N×N di similarità: ogni immagine confrontata con ogni frase. Sulla diagonale ci sono le coppie giuste (l’immagine con la sua didascalia); tutto il resto sono abbinamenti sbagliati. Il modello viene premiato quando la diagonale ha i punteggi alti e tutto il resto bassi. Ripeti per centinaia di milioni di esempi. Questo è il «contrastive» del nome: non impari cosa è una cosa, impari a distinguere l’abbinamento corretto dai tanti sbagliati.
Ogni immagine di un lotto viene confrontata con ogni didascalia: sulla diagonale ci sono le coppie vere, che il modello impara a premiare. È il cuore dell’addestramento contrastivo.
Zero-shot: riconoscere senza esempi
Finito l’addestramento, arriva il trucco che ha reso CLIP famoso. Per classificare un’immagine tra un insieme di categorie, non serve un addestramento aggiuntivo. Basta scrivere le categorie come frasi — «una foto di un {gatto}», «una foto di un {cane}» — passarle all’encoder di testo, e vedere quale vettore-frase è più vicino al vettore-immagine. La categoria vince per prossimità.
È come riconoscere un ornitorinco pur non avendolo mai visto, solo perché ne hai letto la descrizione: «un mammifero col becco d’anatra che depone uova». Le parole fanno da ponte verso qualcosa di visivo mai osservato direttamente. E poiché le categorie sono frasi e non caselle fisse, puoi cambiarle al volo: oggi classifichi razze di cani, domani stili di quadri, senza toccare il modello. La stessa rete diventa mille classificatori diversi a seconda di cosa le scrivi.
Senza usare un solo esempio di addestramento di ImageNet, CLIP eguaglia in zero-shot l’accuratezza di una ResNet-50 addestrata su quel dataset con supervisione completa.
Questo risultato è il cuore del paper. Non solo: proprio perché non ha memorizzato le foto specifiche di un singolo dataset, CLIP regge molto meglio quando le immagini cambiano stile — disegni, schizzi, versioni «difficili» — dove i modelli tradizionali crollano. Aveva imparato il concetto, non i pixel di un particolare set di prova.
Cosa ha cambiato (e cosa no)
L’eredità più visibile di CLIP non è la classificazione, ma la generazione. Il suo encoder di testo, o la sua capacità di misurare quanto un’immagine «corrisponde» a una frase, è diventato un ingranaggio dentro i generatori di immagini: DALL·E 2 nasce sopra le rappresentazioni di CLIP, e Stable Diffusion usa un encoder testuale della stessa famiglia per capire cosa gli stai chiedendo di disegnare. Ogni volta che scrivi un prompt e ottieni un’immagine, da qualche parte c’è l’idea di CLIP.
Restando onesti: CLIP eredita i difetti dei suoi 400 milioni di didascalie prese dal web, bias culturali compresi. Fatica sui compiti che richiedono precisione fine — contare oggetti, leggere numeri, distinguere razze molto simili — e i suoi risultati dipendono in modo fastidioso da come formuli le frasi delle categorie (il cosiddetto prompt engineering arriva nella visione prima ancora che nei chatbot). Non è magia: è un ottimo misuratore di somiglianza semantica, con tutti i limiti dei dati che l’hanno formato.
Il paper e chi l’ha scritto
Il lavoro originale è Learning Transferable Visual Models From Natural Language Supervision (Radford, Kim, Hallacy, Ramesh, Goh, Agarwal, Sastry, Askell, Mishkin, Clark, Krueger, Sutskever), OpenAI, 2021, disponibile su arXiv con identificativo 2103.00020. Se lavori con immagini e testo — ricerca semantica, moderazione, generazione — vale la pena leggere almeno l’introduzione e la Figura 1: quel diagramma di allineamento è, letteralmente, l’idea da cui è partito mezzo mondo dell’AI generativa visiva.

I commenti sono riservati agli iscritti.
Accedi per commentare