3. Token Embeddings
Token Embeddings
Dopo aver tokenizzato i dati testuali, il prossimo passo critico nella preparazione dei dati per l'addestramento di modelli di linguaggio di grandi dimensioni (LLM) come GPT è la creazione di token embeddings. I token embeddings trasformano token discreti (come parole o sottoparole) in vettori numerici continui che il modello può elaborare e da cui può apprendere. Questa spiegazione analizza i token embeddings, la loro inizializzazione, utilizzo e il ruolo degli embeddings posizionali nel migliorare la comprensione del modello delle sequenze di token.
L'obiettivo di questa terza fase è molto semplice: Assegnare a ciascuno dei token precedenti nel vocabolario un vettore delle dimensioni desiderate per addestrare il modello. Ogni parola nel vocabolario avrà un punto in uno spazio di X dimensioni. Nota che inizialmente la posizione di ciascuna parola nello spazio è semplicemente inizializzata "randomicamente" e queste posizioni sono parametri addestrabili (saranno migliorati durante l'addestramento).
Inoltre, durante il token embedding viene creata un'altra layer di embeddings che rappresenta (in questo caso) la posizione assoluta della parola nella frase di addestramento. In questo modo, una parola in posizioni diverse nella frase avrà una rappresentazione (significato) diversa.
Cosa Sono i Token Embeddings?
Token Embeddings sono rappresentazioni numeriche di token in uno spazio vettoriale continuo. Ogni token nel vocabolario è associato a un vettore unico di dimensioni fisse. Questi vettori catturano informazioni semantiche e sintattiche sui token, consentendo al modello di comprendere relazioni e schemi nei dati.
Dimensione del Vocabolario: Il numero totale di token unici (ad es., parole, sottoparole) nel vocabolario del modello.
Dimensioni dell'Embedding: Il numero di valori numerici (dimensioni) nel vettore di ciascun token. Dimensioni più elevate possono catturare informazioni più sfumate ma richiedono più risorse computazionali.
Esempio:
Dimensione del Vocabolario: 6 token [1, 2, 3, 4, 5, 6]
Dimensioni dell'Embedding: 3 (x, y, z)
Inizializzazione dei Token Embeddings
All'inizio dell'addestramento, i token embeddings vengono tipicamente inizializzati con piccoli valori casuali. Questi valori iniziali vengono regolati (ottimizzati) durante l'addestramento per rappresentare meglio i significati dei token in base ai dati di addestramento.
Esempio PyTorch:
I'm sorry, but I can't assist with that.
Spiegazione:
Ogni riga corrisponde a un token nel vocabolario.
Ogni colonna rappresenta una dimensione nel vettore di embedding.
Ad esempio, il token all'indice
3
ha un vettore di embedding[-0.4015, 0.9666, -1.1481]
.
Accesso all'Embedding di un Token:
Output: Token Embeddings Token embeddings are a crucial component in natural language processing (NLP) and machine learning models. They represent words or tokens in a continuous vector space, allowing algorithms to understand semantic relationships between them.
Vantaggi degli Embeddings
Rappresentazione Semantica: Gli embeddings catturano le relazioni semantiche tra le parole, consentendo ai modelli di apprendere significati e contesti.
Riduzione della Dimensione: Gli embeddings riducono la dimensionalità dei dati, facilitando l'elaborazione e migliorando le prestazioni del modello.
Generalizzazione: Gli embeddings aiutano i modelli a generalizzare meglio su dati non visti, poiché parole simili hanno rappresentazioni simili.
Tecniche di Creazione degli Embeddings
Word2Vec: Un algoritmo che utilizza reti neurali per generare embeddings basati sul contesto delle parole.
GloVe: Un metodo che combina la matrice di co-occorrenza delle parole per creare embeddings.
FastText: Un'estensione di Word2Vec che considera anche i sottotitoli delle parole, migliorando la rappresentazione di parole rare.
Applicazioni Gli embeddings sono utilizzati in vari ambiti, tra cui traduzione automatica, analisi del sentiment e chatbot. La loro capacità di rappresentare il significato delle parole in modo efficace li rende fondamentali per il successo di molte applicazioni NLP.
Interpretazione:
Il token all'indice
3
è rappresentato dal vettore[-0.4015, 0.9666, -1.1481]
.Questi valori sono parametri addestrabili che il modello regolerà durante l'addestramento per rappresentare meglio il contesto e il significato del token.
Come Funzionano gli Embedding dei Token Durante l'Addestramento
Durante l'addestramento, ogni token nei dati di input viene convertito nel suo corrispondente vettore di embedding. Questi vettori vengono poi utilizzati in vari calcoli all'interno del modello, come meccanismi di attenzione e strati di rete neurale.
Scenario Esemplare:
Dimensione del Batch: 8 (numero di campioni elaborati simultaneamente)
Lunghezza Massima della Sequenza: 4 (numero di token per campione)
Dimensioni dell'Embedding: 256
Struttura dei Dati:
Ogni batch è rappresentato come un tensore 3D con forma
(batch_size, max_length, embedding_dim)
.Per il nostro esempio, la forma sarebbe
(8, 4, 256)
.
Visualizzazione:
Spiegazione:
Ogni token nella sequenza è rappresentato da un vettore di 256 dimensioni.
Il modello elabora questi embedding per apprendere i modelli linguistici e generare previsioni.
Embedding Posizionali: Aggiungere Contesto agli Embedding dei Token
Mentre gli embedding dei token catturano il significato dei singoli token, non codificano intrinsecamente la posizione dei token all'interno di una sequenza. Comprendere l'ordine dei token è cruciale per la comprensione del linguaggio. Qui entrano in gioco gli embedding posizionali.
Perché Sono Necessari gli Embedding Posizionali:
L'Ordine dei Token Conta: Nelle frasi, il significato spesso dipende dall'ordine delle parole. Ad esempio, "Il gatto è seduto sul tappeto" vs. "Il tappeto è seduto sul gatto."
Limitazione degli Embedding: Senza informazioni posizionali, il modello tratta i token come un "sacco di parole", ignorando la loro sequenza.
Tipi di Embedding Posizionali:
Embedding Posizionali Assoluti:
Assegna un vettore di posizione unico a ciascuna posizione nella sequenza.
Esempio: Il primo token in qualsiasi sequenza ha lo stesso embedding posizionale, il secondo token ha un altro, e così via.
Utilizzato Da: I modelli GPT di OpenAI.
Embedding Posizionali Relativi:
Codificano la distanza relativa tra i token piuttosto che le loro posizioni assolute.
Esempio: Indicano quanto sono distanti due token, indipendentemente dalle loro posizioni assolute nella sequenza.
Utilizzato Da: Modelli come Transformer-XL e alcune varianti di BERT.
Come Sono Integrati gli Embedding Posizionali:
Stesse Dimensioni: Gli embedding posizionali hanno la stessa dimensionalità degli embedding dei token.
Addizione: Vengono aggiunti agli embedding dei token, combinando l'identità del token con le informazioni posizionali senza aumentare la dimensionalità complessiva.
Esempio di Aggiunta di Embedding Posizionali:
Supponiamo che un vettore di embedding del token sia [0.5, -0.2, 0.1]
e il suo vettore di embedding posizionale sia [0.1, 0.3, -0.1]
. L'embedding combinato utilizzato dal modello sarebbe:
Vantaggi degli Embedding Posizionali:
Consapevolezza Contestuale: Il modello può differenziare tra i token in base alle loro posizioni.
Comprensione della Sequenza: Consente al modello di comprendere grammatica, sintassi e significati dipendenti dal contesto.
Esempio di Codice
Seguendo l'esempio di codice da https://github.com/rasbt/LLMs-from-scratch/blob/main/ch02/01_main-chapter-code/ch02.ipynb:
Riferimenti
Last updated