Corso
Ogni progetto di machine learning, prima o poi, arriva al punto in cui servono dati etichettati, e crearne le etichette costa più tempo e denaro di quanto la maggior parte dei team possa permettersi.
Assumere un team per taggare un milione di immagini o trascrivere un milione di clip audio può costare sei cifre. Allo stesso tempo, internet è pieno di testi, immagini, audio e video non etichettati. I team di ML hanno più dati grezzi di quanti ne useranno mai, ma quasi nessuno di questi arriva con le etichette necessarie per addestrare il modello.
L’apprendimento auto-supervisionato non richiede la fase di etichettatura. Trasforma la struttura intrinseca dei dati nelle informazioni di addestramento. Invece di pagare persone per dire cosa c’è in un’immagine o cosa significa una frase, imposti un compito a cui i dati possono già rispondere da soli - ad esempio nascondere una parola e far indovinare al modello quale sia, usando le parole attorno.
In questo articolo, spiegherò come funziona l’apprendimento auto-supervisionato, passerò in rassegna le sue principali tecniche e mostrerò come si confronta con l’apprendimento supervisionato, non supervisionato e semi-supervisionato.
Cos’è l’apprendimento auto-supervisionato?
L’apprendimento auto-supervisionato è un modo per addestrare i modelli senza che nessuno etichetti manualmente i dati in partenza.
Invece che una persona etichetti ogni esempio, i dati hanno una sorta di chiave di risposta incorporata. Il modello osserva una parte dell’input, ne nasconde un’altra e impara cercando di colmare il vuoto. Non serve alcun intervento umano.
Per esempio, puoi prendere una frase, nascondere una parola e chiedere al modello di indovinarla usando le parole circostanti. "L’ingegnere ha pushato il ___ sul branch principale" dà al modello abbastanza contesto per indovinare "codice" o "modifiche" senza che nessuno gli dica la risposta giusta. La frase stessa fa da etichetta.
L’apprendimento auto-supervisionato è in una strana posizione tra due categorie. Il suo obiettivo di addestramento assomiglia all’apprendimento supervisionato: c’è un input chiaro, un target chiaro e una funzione di perdita che misura quanto l’ipotesi fosse sbagliata. Ma poiché nessun umano ha creato quei target, di solito viene raggruppato con l’apprendimento non supervisionato, che pure lavora su dati grezzi non etichettati. L’auto-supervisione prende in prestito la meccanica dell’uno e la fonte dei dati dell’altro.
Come funziona l’apprendimento auto-supervisionato?
Il processo segue uno schema ripetibile, indipendentemente dal tipo di dato con cui lavori. Ecco i passaggi:
- Parti da dati non etichettati: Testo, immagini, audio, video - non importa, purché ne abbia in abbondanza.
- Crea un compito di apprendimento a partire dai dati stessi: si chiama pretext task. Non è il compito che ti interessa davvero; è un problema artificiale progettato per costringere il modello a imparare qualcosa di utile. Nascondere una parola e prevederla è un esempio.
- Addestra il modello a risolvere quel compito: il modello fa un’ipotesi, la confronta con il valore reale e si aggiorna.
- Impara rappresentazioni utili: mentre risolve il pretext task, il modello costruisce una comprensione interna della struttura dei dati, come grammatica, contesto, forme e pattern.
- Adatta quelle rappresentazioni ai compiti a valle: una volta che il modello ha imparato rappresentazioni solide, lo indirizzi al compito che volevi davvero risolvere. Questo è il downstream task.
Il pretext task è solo un esercizio di addestramento. Nessuno distribuisce un modello che predice parole nascoste per divertimento: il valore sta nelle rappresentazioni che apprende lungo la strada, che poi si trasferiscono ai problemi reali.
Apprendimento auto-supervisionato vs altri metodi
Il modo più semplice per capire l’auto-supervisione è vedere dove si sovrappone e dove differisce dagli altri paradigmi di addestramento.
Auto-supervisionato vs. supervisionato
L’apprendimento supervisionato richiede un esempio etichettato per ogni input, come un’immagine taggata "cane" o una recensione taggata "negativa". Qualcuno deve creare a mano quelle etichette, il che significa costi, tempi e un tetto massimo a quanti dati puoi usare realisticamente.
Con l’auto-supervisione, il modello ha comunque un target da prevedere, ma il target viene dai dati stessi - una parola nascosta o il prossimo token in una sequenza. Non serve alcuna annotazione umana per generare il segnale di addestramento.
Auto-supervisionato vs. non supervisionato
Entrambi lavorano su dati non etichettati, perciò spesso vengono confusi. La differenza sta nell’obiettivo.
L’apprendimento non supervisionato cerca struttura senza un target predittivo specifico, come raggruppare clienti simili o ridurre le dimensioni di un dataset. L’auto-supervisione costruisce un compito predittivo esplicito a partire dai dati, poi addestra il modello a risolverlo. Questo obiettivo predittivo dà all’auto-supervisione un ciclo di addestramento in stile supervisionato, anche se le etichette sono auto-generate.
Auto-supervisionato vs. semi-supervisionato
L’apprendimento semi-supervisionato mescola deliberatamente un piccolo dataset etichettato con uno più grande non etichettato, usando entrambi contemporaneamente per migliorare il modello.
Il pretraining auto-supervisionato non ha bisogno di alcuna etichetta per partire. Può pre-addestrarsi interamente su dati non etichettati, poi eventualmente passare più tardi a un dataset etichettato per il fine-tuning. Le etichette, se compaiono, arrivano dopo il pretraining.
| Etichette richieste | Fonte del segnale di apprendimento | Uso tipico | |
|---|---|---|---|
| Supervisionato | Sì, per ogni esempio | Etichette create da umani | Addestrare un modello direttamente sul compito target |
| Non supervisionato | No | Struttura nei dati (cluster, pattern) | Raggruppamento, riduzione della dimensionalità |
| Semi-supervisionato | Alcune, mescolate con dati non etichettati | Esempi etichettati più pattern nei dati non etichettati | Aumentare l’accuratezza quando ci sono poche etichette |
| Auto-supervisionato | No, per il pretraining | Un pretext task costruito dai dati stessi | Pretraining prima del fine-tuning su un compito a valle |
Apprendimento auto-supervisionato rispetto ad altri metodi
Tipi di apprendimento auto-supervisionato
I metodi auto-supervisionati rientrano in alcune grandi famiglie, ciascuna costruita attorno a un diverso tipo di pretext task.
Apprendimento contrastivo
L’apprendimento contrastivo addestra un modello a distinguere esempi correlati da esempi non correlati. Avvicina tra loro le rappresentazioni di esempi simili e allontana quelle di esempi dissimili, senza usare mai un’etichetta manuale per definire "simile".
Due versioni aumentate della stessa immagine contano come correlate. Anche un’immagine e la sua didascalia corrispondente contano come correlate. SimCLR applica questa idea all’interno di una singola modalità, confrontando diversi crop o trasformazioni della stessa immagine. CLIP la applica tra modalità, allineando immagini con il testo che le descrive.
Masked modeling
Il masked modeling nasconde una parte dell’input e addestra il modello a ricostruirla. È la stessa idea dell’esempio del riempi-lo-spazio di prima, solo applicata più in generale.
Nel linguaggio, questo si manifesta come masked language modeling, che include nascondere alcune parole in una frase e prevederle usando il resto. Nella visione, si manifesta come masked image modeling, che include nascondere patch di un’immagine e chiedere al modello di ricostruire i pixel mancanti o la loro rappresentazione sottostante.
Apprendimento autoregressivo
L’apprendimento autoregressivo prevede il prossimo elemento in una sequenza usando tutto ciò che lo precede. Data l’inizio di una frase, il modello predice la parola successiva. Data quella parola, predice la seguente, e così via.
Questo è l’obiettivo dietro la maggior parte del pretraining dei moderni modelli linguistici. È una scelta naturale per il testo, dato che il linguaggio ha già una sequenza da sinistra a destra, e scala bene su enormi corpora di testo senza configurazioni extra.
Self-distillation
La self-distillation addestra un modello usando le proprie predizioni come target, invece di una risposta fissa nascosta nei dati.
Una configurazione comune esegue due versioni della stessa rete - uno "studente" e un "insegnante" - su viste diverse dello stesso input. Lo studente impara a eguagliare l’output dell’insegnante, e l’insegnante viene aggiornato come media a lento movimento dello studente. DINO e BYOL sono approcci rappresentativi qui. Non servono esempi negativi o input mascherati, perché il modello si auto-fornisce la supervisione dalla coerenza tra viste.
Auto-supervisione nei Large Language Model
L’auto-supervisione è l’intera fase di pretraining per i large language model. Ogni LLM che hai usato ha imparato struttura del linguaggio, fatti e schemi di ragionamento senza una sola etichetta scritta da umani, semplicemente risolvendo pretext task auto-supervisionati su testo grezzo.
Predizione del token successivo
La maggior parte degli LLM moderni fa pretraining sulla predizione del token successivo: data una sequenza di token, predire quello che viene dopo. Il modello legge tutto ciò che precede una posizione e indovina cosa segue, si confronta con il token reale successivo e si corregge.
Se lo esegui su trilioni di token estratti da siti web e repository di codice, il modello costruisce lungo la strada un modello funzionante di grammatica, fatti e persino schemi di ragionamento. È lo stesso obiettivo autoregressivo visto prima, solo applicato su scala.
Masked language modeling
Prima che il pretraining autoregressivo prendesse il sopravvento, modelli come BERT usavano un pretext task diverso. Invece di predire cosa viene dopo, BERT nasconde token casuali in una frase e li predice usando il contesto da entrambi i lati.
Quel contesto bidirezionale rende i modelli di masked language adatti a compiti di comprensione come classificazione e question answering, anche se non generano testo come fanno i modelli a predizione del token successivo.
Apprendere da grandi corpora testuali
Nulla di tutto ciò funziona senza volume. Il pretraining attinge da pagine web, libri, repository di codice e forum, filtrati e deduplicati in corpora contenenti miliardi o trilioni di token. Più grande e vario è il corpus, più generali diventano le rappresentazioni risultanti.
Il pretraining è dove l’auto-supervisione fa il suo lavoro, ma non è l’ultima fase. Il fine-tuning su esempi di istruzioni scritti da umani insegna a seguire le indicazioni, e metodi di ottimizzazione delle preferenze come RLHF o DPO usano preferenze umane ordinate per modellare le risposte. Entrambe queste fasi successive richiedono dati etichettati. Il pretraining auto-supervisionato è l’unica fase che non lo fa.
Auto-supervisione nella Computer Vision
La computer vision è l’area perfetta in cui i dati etichettati non bastano. Bounding box e maschere di segmentazione richiedono molto più tempo da produrre di una singola etichetta su un testo, il che ha reso i metodi auto-supervisionati particolarmente preziosi qui.
L’apprendimento contrastivo su immagini applica la stessa idea di avvicinare e allontanare vista prima, includendo la creazione di due versioni aumentate della stessa foto (un crop o un flip) e l’addestramento del modello a riconoscerle come correlate, trattando invece le altre immagini nel batch come non correlate. SimCLR è un esempio noto di questo approccio applicato alle immagini.
Il masked image modeling prende l’idea del riempi-lo-spazio dal linguaggio e la applica ai pixel. L’idea è di nascondere patch di un’immagine e addestrare il modello a ricostruire il contenuto mancante, come pixel grezzi o come rappresentazione di feature appresa. Questo è l’obiettivo dietro MAE (Masked Autoencoders).
L’allineamento immagine-testo addestra un modello ad abbinare immagini alle didascalie che le descrivono, avvicinando le coppie corrispondenti in uno spazio di embedding condiviso e separando quelle non corrispondenti. CLIP è l’esempio più noto, ed è parte del motivo per cui i modelli addestrati in questo modo supportano la classificazione zero-shot: possono riconoscere categorie su cui non sono mai stati addestrati esplicitamente, semplicemente confrontando un’immagine con una descrizione testuale.
Auto-supervisione oltre testo e immagini
Il pretext task segue sempre la forma dei dati, quindi ovunque tu abbia molti dati non etichettati, di solito puoi progettare attorno ad essi un compito auto-supervisionato.
Nel parlato e nell’audio, i modelli predicono segmenti audio mascherati o mettono a confronto clip diverse allo stesso modo in cui i modelli di visione confrontano i crop di immagini, imparando rappresentazioni utili per compiti come il riconoscimento vocale senza bisogno di dati di addestramento trascritti in partenza.
Nel video, il pretext task può consistere nel prevedere fotogrammi futuri o nell’abbinare clip provenienti dallo stesso video sorgente, fornendo al modello un senso del movimento e della struttura temporale che una singola immagine non può dare.
I modelli multimodali combinano due o più di queste idee insieme, allineando testo, immagini, audio e video in uno spazio di rappresentazione condiviso, in modo simile a come CLIP allinea immagini e testo, ma esteso a più tipi di dati.
L’auto-supervisione appare persino nei dati scientifici e da sensori - come sequenze genomiche o serie temporali di sensori - dove mascherare o prevedere parti del segnale consente a un modello di apprendere struttura da misurazioni che non sono mai state pensate per essere "etichettate".
Come si usano a valle i modelli auto-supervisionati
Il pretraining produce un modello bravo a risolvere un pretext task. A nessuno interessa davvero questo: ciò che conta è cosa ci fai dopo.
Fine-tuning
Il fine-tuning prende il modello pre-addestrato e continua ad addestrare tutti i suoi pesi, stavolta su dati etichettati per il compito che vuoi davvero. Poiché il modello comprende già la struttura del dominio, il fine-tuning di solito richiede molte meno etichette rispetto ad addestrare da zero.
Linear probing
Il linear probing congela completamente il modello pre-addestrato e addestra solo un singolo strato lineare sopra il suo output. Se un semplice classificatore lineare riesce a separare le classi usando quelle feature congelate, significa che le rappresentazioni pre-addestrate hanno catturato struttura reale. Per questo il linear probing è un modo comune per testare la qualità delle rappresentazioni di per sé, separatamente da quanto bene si possa fare fine-tuning del modello completo.
Estrazione di feature
L’estrazione di feature funziona come il linear probing, ma senza la parte lineare. Prendi le rappresentazioni congelate e le dai in pasto a qualunque algoritmo a valle tu voglia. Il solo compito del modello pre-addestrato è generare buoni embedding, tutto ciò che viene dopo dipende da te.
Uso zero-shot e few-shot
Alcune rappresentazioni sono sufficientemente buone da poter essere usate senza alcun addestramento a valle. CLIP lo fa incorporando un’immagine e un insieme di etichette testuali candidate nello stesso spazio, quindi scegliendo l’etichetta più vicina all’immagine. Il few-shot learning prende la stessa idea e aggiunge un piccolo numero di esempi etichettati, spesso sufficienti perché le rappresentazioni portano già gran parte della struttura necessaria.
Con l’apprendimento auto-supervisionato ottieni rappresentazioni riutilizzabili. Fai pretraining una volta, poi fai fine-tuning, probing, estrazione di feature o query su quel medesimo core per quanti compiti a valle ti servono. La maggior parte del lavoro costoso avviene una sola volta durante il pretraining, non una volta per compito.
Apprendimento auto-supervisionato in Python
Ecco un esempio leggero che usa un modello pre-addestrato, non un sistema auto-supervisionato costruito da zero - giusto per darti il senso del flusso di lavoro.
all-MiniLM-L6-v2, disponibile tramite il pacchetto sentence-transformers, è stato pre-addestrato con un obiettivo di masked language modeling e poi ulteriormente addestrato con un obiettivo contrastivo su coppie di frasi. Quella è la parte auto-supervisionata già fatta per te: tu stai solo mettendo al lavoro le rappresentazioni risultanti.
Per iniziare, assicurati di installare le dipendenze:
pip install sentence-transformers scikit-learn
Passiamo ora al codice:
from sentence_transformers import SentenceTransformer
from sklearn.linear_model import LogisticRegression
# Create unlabeled data
support_tickets = [
"My order arrived damaged and I need a replacement.",
"The app crashes every time I try to upload a photo.",
"I love how fast the checkout process is now.",
"Can you tell me when my refund will be processed?",
"The new dashboard layout is so much easier to use.",
"I can't log in, it keeps saying my password is wrong.",
]
# Load a model pretrained with a self-supervised objective
model = SentenceTransformer("all-MiniLM-L6-v2")
# Obtain learned representations
embeddings = model.encode(support_tickets)
print(embeddings.shape)

Forma degli embedding
Il metodo .encode() fa passare ogni ticket attraverso il modello pre-addestrato e restituisce un vettore denso che ne rappresenta il significato. Da lì, un compito a valle ha bisogno solo di una manciata di esempi etichettati, dato che gli embedding portano già gran parte della struttura:
# Use the representations for a downstream task, 1 = complaint, 0 = positive feedback
labels = [1, 1, 0, 1, 0, 1]
clf = LogisticRegression()
clf.fit(embeddings, labels)
new_ticket = ["The delivery was late and no one responded to my email."]
new_embedding = model.encode(new_ticket)
print(clf.predict(new_embedding))

Predizione della regressione logistica
Sei ticket etichettati e un classificatore LogisticRegression bastano qui perché sono le rappresentazioni, non il classificatore, a fare la maggior parte del lavoro.
Vantaggi e limiti dell’apprendimento auto-supervisionato
Passiamo ora a pro e contro dell’auto-supervisione.
Vantaggi
- Riduce la dipendenza da dati etichettati manualmente: il pretext task genera i propri target, quindi il budget per l’etichettatura non è più un limite rigido alla quantità di dati su cui puoi addestrare
- Sfrutta dataset molto grandi: collezioni di testo e audio su scala web diventano utilizzabili per l’addestramento, non solo le piccole porzioni etichettate che i team possono permettersi di annotare
- Produce rappresentazioni trasferibili: un singolo modello pre-addestrato può supportare fine-tuning, linear probing, estrazione di feature e uso zero-shot su diversi compiti a valle
- Abilita il pretraining su larga scala: è ciò che rende possibili i foundation model di oggi, innanzitutto.
Limiti
- Consistenti requisiti computazionali: il pretraining su dati in scala internet richiede hardware e tempo importanti, ben oltre la portata della maggior parte dei singoli team
- La progettazione del pretext task conta: un pretext task scelto male produce rappresentazioni che non si trasferiscono bene, a prescindere da quanti dati usi
- Le rappresentazioni apprese possono ereditare bias: qualunque pattern, lacuna o distorsione presente nei dati di addestramento si riflette anche nelle rappresentazioni, poiché nulla li filtra durante il pretraining
- Forte performance in pretraining non garantisce successo a valle: un modello che risolve bene il suo pretext task può comunque sottoperformare su un compito specifico a valle per cui non è stato ottimizzato direttamente
Perché l’auto-supervisione conta per l’IA moderna
L’apprendimento auto-supervisionato è il motivo per cui i foundation model sono possibili, punto.
Il pretraining alla scala richiesta dai modelli moderni sarebbe fuori portata se dipendesse da etichette manuali. Nessuno etichetta a mano un trilione di token di testo o un miliardo di immagini. L’auto-supervisione ha reso pratico il pretraining su collezioni in scala internet, per poi riutilizzare quel singolo modello su una vasta gamma di compiti a valle invece di addestrarne uno separato per ciascuno.
Questo passaggio da molti modelli specifici per compito a un unico modello pre-addestrato generico adattato a molti usi è la direzione in cui si è mossa gran parte dell’IA moderna. L’auto-supervisione è il meccanismo che ha reso possibile la transizione.
Conclusione
L’apprendimento auto-supervisionato genera la propria supervisione dalla struttura dei dati non etichettati, invece che da etichette scritte da umani. Lo schema tipico è nascondere una parola o predire il prossimo token. I dati rispondono alle proprie domande e il modello impara cercando di azzeccare le risposte.
I principali approcci si basano tutti sulla stessa idea declinata in modi diversi. L’apprendimento contrastivo avvicina esempi correlati e allontana quelli non correlati. Il masked modeling nasconde parte dell’input e addestra il modello a ricostruirla. L’apprendimento autoregressivo predice il prossimo elemento in una sequenza a partire da ciò che lo precede. Le meccaniche differiscono, ma il principio di lasciare che sia la struttura dei dati a fornire il segnale di addestramento è lo stesso.
Quel principio è il motivo per cui l’auto-supervisione sta dietro alla maggior parte dei modelli di linguaggio, visione e multimodali che già usi. La predizione del token successivo pre-addestra gli LLM di oggi, obiettivi contrastivi e mascherati pre-addestrano i modelli di visione, e l’allineamento immagine-testo pre-addestra i modelli multimodali che collegano i due mondi.
Se vuoi imparare a creare un LLM da zero, iscriviti al percorso Developing Large Language Models per vedere in azione PyTorch, Hugging Face e le tecniche NLP più recenti.
FAQs
Che cos’è l’apprendimento auto-supervisionato?
L’apprendimento auto-supervisionato è un modo per addestrare modelli senza etichette create da umani. Il modello osserva una parte dell’input, ne nasconde un’altra e impara cercando di prevedere la parte mancante. I dati forniscono il proprio segnale di addestramento: è per questo che si chiama "auto-supervisionato".
In cosa l’auto-supervisione è diversa dall’apprendimento non supervisionato?
Entrambi lavorano su dati non etichettati, ma li affrontano in modo diverso. L’apprendimento non supervisionato cerca struttura senza un target predittivo specifico, ad esempio raggruppando clienti simili. L’auto-supervisione costruisce un compito predittivo esplicito a partire dai dati stessi, poi addestra il modello a risolverlo.
Perché l’auto-supervisione è importante per l’IA moderna?
È il motivo per cui i foundation model sono possibili. Il pretraining alle scale odierne sarebbe fuori portata se dipendesse da etichette manuali, perché nessuno etichetta a mano un trilione di token di testo. L’auto-supervisione consente di riutilizzare un singolo modello pre-addestrato su diversi compiti a valle invece di addestrarne uno per ciascun compito.
Qual è la differenza tra pretext task e downstream task?
Un pretext task è il problema artificiale che un modello risolve durante il pretraining, come predire una parola nascosta. Non è il compito che ti interessa davvero: serve solo a costringere il modello a imparare rappresentazioni utili. Un downstream task è il problema reale a cui applichi quelle rappresentazioni in seguito, come classificazione o ricerca.
L’auto-supervisione può funzionare con zero dati etichettati?
Sì, il pretraining in sé non richiede alcuna etichetta. Una volta che il modello ha imparato le rappresentazioni, alcuni usi a valle, come la classificazione zero-shot di CLIP, non richiedono comunque etichette per funzionare. Altri, come il fine-tuning o il few-shot learning, introducono una piccola quantità di dati etichettati solo in quella fase successiva.


