Apprendimento Auto-Supervisionato: differenze tra le versioni

Da Wiki AI.
Nessun oggetto della modifica
Nessun oggetto della modifica
 
(4 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
= Apprendimento Auto-Supervisionato =
Il ''Self-Supervised Learning'' è un paradigma di apprendimento automatico in cui il modello impara da coppie di input-output generate automaticamente dai dati stessi, senza necessità di etichettatura manuale. La chiave di questo approccio sta nel fatto che il sistema di training crea automaticamente dei "compiti" di supervisione estraendo e manipolando parti dei dati grezzi.


L''''Apprendimento Auto-Supervisionato''' (Self-Supervised Learning) è un paradigma di apprendimento automatico in cui il modello impara dai dati senza la necessità di etichette manuali. Il modello crea automaticamente dei compiti di supervisione dai dati stessi, permettendo l'addestramento su grandi quantità di dati non etichettati.
Questo approccio è particolarmente potente perché:
 
Nell'apprendimento auto-supervisionato, il sistema genera automaticamente la supervisione dai dati grezzi, creando coppie input-output per l'addestramento. Questo approccio è particolarmente potente perché:
* Elimina la necessità di etichettatura manuale costosa
* Elimina la necessità di etichettatura manuale costosa
* Permette l'utilizzo di vasti dataset non etichettati
* Permette l'utilizzo di vasti dataset non etichettati
Riga 9: Riga 7:


== Causal Language Modeling ==
== Causal Language Modeling ==
Il '''Causal Language Modeling''' (CLM) è uno degli esempi più significativi di apprendimento auto-supervisionato nel campo del Natural Language Processing. È la tecnica utilizzata per addestrare modelli come GPT.
Il '''Causal Language Modeling''' (CLM) è uno degli esempi più significativi di apprendimento auto-supervisionato nel campo del Natural Language Processing, in particolare per i modelli generativi - Transformer Decoder-Only: è infatti la tecnica utilizzata per addestrare modelli come GPT.


=== Processo di Addestramento ===
=== Processo di Addestramento ===
Riga 32: Riga 30:


3. '''Funzione di Loss'''
3. '''Funzione di Loss'''
La loss viene calcolata confrontando la distribuzione di probabilità predetta dal modello con il token effettivo successivo:
 
<source lang="python">
La loss viene calcolata confrontando la distribuzione di probabilità predetta dal modello con il token effettivo successivo, spesso viene utilizzata l'Entropia Incrociata (Cross-Entropy Loss)
def calc_loss(pred_distribution, target_token):
    # Cross-entropy loss tra la distribuzione predetta
    # e il token target one-hot encoded
    return -log(pred_distribution[target_token])
</source>


=== Attenzione Causale ===
=== Attenzione Causale ===
Riga 52: Riga 45:
]
]
</source>
</source>
 
*
== Vantaggi dell'Approccio ==
[[Categoria:Concetto]]
L'apprendimento auto-supervisionato nel contesto del causal language modeling offre diversi vantaggi:
 
* '''Scalabilità''': Può utilizzare qualsiasi testo disponibile come dato di addestramento
* '''Comprensione Contestuale''': Il modello impara a capire il contesto per fare previsioni accurate
* '''Generalizzazione''': Le rappresentazioni apprese sono utili per molti compiti downstream
 
== Applicazioni Pratiche ==
Il causal language modeling auto-supervisionato è alla base di molti modelli di linguaggio moderni:
* Generazione di testo
* Completamento di codice
* Traduzione automatica
* Risposta a domande
 
== Bibliografia ==
* Devlin et al., "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"
* Brown et al., "Language Models are Few-Shot Learners"
* Vaswani et al., "Attention Is All You Need"

Versione attuale delle 07:53, 28 nov 2024

Il Self-Supervised Learning è un paradigma di apprendimento automatico in cui il modello impara da coppie di input-output generate automaticamente dai dati stessi, senza necessità di etichettatura manuale. La chiave di questo approccio sta nel fatto che il sistema di training crea automaticamente dei "compiti" di supervisione estraendo e manipolando parti dei dati grezzi.

Questo approccio è particolarmente potente perché:

  • Elimina la necessità di etichettatura manuale costosa
  • Permette l'utilizzo di vasti dataset non etichettati
  • Consente al modello di apprendere rappresentazioni ricche e generalizzabili

Causal Language Modeling

Il Causal Language Modeling (CLM) è uno degli esempi più significativi di apprendimento auto-supervisionato nel campo del Natural Language Processing, in particolare per i modelli generativi - Transformer Decoder-Only: è infatti la tecnica utilizzata per addestrare modelli come GPT.

Processo di Addestramento

Prendiamo come esempio l'addestramento di un modello decoder transformer per il causal language modeling. Il processo si svolge nel seguente modo:

1. Preparazione dei Dati

testo = "Il gatto dorme sul divano"
# Il testo viene tokenizzato
tokens = ["Il", "gatto", "dorme", "sul", "divano"]
# Viene creata una sequenza di input e output sfalsati
inputs = ["<start>", "Il", "gatto", "dorme", "sul"]
targets = ["Il", "gatto", "dorme", "sul", "divano"]

2. Creazione della Supervisione Per ogni posizione nella sequenza, il modello deve prevedere il token successivo:

  • Dato "Il", prevedere "gatto"
  • Dato "Il gatto", prevedere "dorme"
  • Dato "Il gatto dorme", prevedere "sul"
  • E così via...

3. Funzione di Loss

La loss viene calcolata confrontando la distribuzione di probabilità predetta dal modello con il token effettivo successivo, spesso viene utilizzata l'Entropia Incrociata (Cross-Entropy Loss)

Attenzione Causale

Un aspetto fondamentale del causal language modeling è l'utilizzo dell'attenzione causale (o mascherata), che impedisce al modello di "vedere il futuro":

# Esempio di maschera di attenzione per una sequenza di 4 token
attention_mask = [
    [1, 0, 0, 0],  # Il primo token vede solo se stesso
    [1, 1, 0, 0],  # Il secondo token vede i primi due
    [1, 1, 1, 0],  # Il terzo token vede i primi tre
    [1, 1, 1, 1]   # L'ultimo token vede tutta la sequenza
]