English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

ospite
1 / ?
torna alle lezioni

Parole a Numeri

Un Traduttore a un Confine

Un modello linguistico non vede mai testo. Vede interi. Un tokenizzatore si trova a un valico di frontiera: le parole umane entrano, gli ID interi escono. La generazione inverte il flusso: gli ID interi tornano, un tokenizzatore rende il testo.


Tre compiti:


1. Segmenta. Taglia una stringa in pezzi (token).

2. Mappa. Assegna a ogni pezzo un ID intero univoco da un vocabolario fisso.

3. Inverti. Ricostruisci il testo dagli ID al momento della generazione.


Perché pezzi, non parole intere

Un vocabolario di parole intere esplode. L'inglese da solo ha centinaia di migliaia di forme. Peggio ancora, un modello addestrato su parole intere non può gestire un errore di battitura, un nuovo nome o una frase straniera: qualsiasi parola non vista mappa in un singolo slot <UNK>.


La tokenizzazione subword risolve questo problema. Un vocabolario di pezzi comuni si compone in qualsiasi parola, incluse quelle mai viste durante l'addestramento. Due strategie dominano: BPE (byte pair encoding) & segmentazione distributiva. ANDREA sceglie una seconda strategia.


Harris vs BPE

Perché Subword

Un tokenizer a parola intera fallisce sulla parola rara `proporian` (una parola prodotta da ANDREA-12M al passo 43,100). Nomina due problemi distinti che un tokenizer subword (BPE o Harris) evita e che un tokenizer a parola intera non può.

Dove Si Spezza una Parola

Zellig Harris, 1955

Un linguista di nome Zellig Harris notò qualcosa. All'interno di una parola, il conteggio delle lettere distinte che seguono una data sequenza di lettere varia bruscamente. Dopo un si possono trovare decine di lettere: a, b, c, d, e ... Dopo unbel solo un piccolo insieme segue: i (poi ievable).


Un picco nella varietà dei successori segna un probabile confine di morfema. Dopo un (un prefisso), la varietà aumenta perché molte radici possono seguire. All'interno di una radice come believ, la varietà rimane bassa perché le lettere si prevedono a vicenda. A una transizione tra morfemi, la varietà aumenta di nuovo.


Dai Picchi di Varietà ai Segmenti

Esegui quel rilevatore su un corpus di addestramento. Ogni parola dona evidenza statistica. Un tokenizer raccoglie segmenti ad alta frequenza che ricorrono ai confini a forma di morfema: un, re, pre, believ, know, ing, able, ly, tion, ed.


Nessuna etichetta. Nessun linguista etichetta a mano i morfemi. Una statistica di co-occorrenza delle lettere fa il lavoro.


Harris vs BPE


ProprietàHarrisBPE
Criterio di confinePicco di varietà dei successoriFrequenza di coppia
Forma linguisticaAllineata a morfema (prefisso, radice, suffisso)Coppie di byte frequenti
Esempio: unbelievablyun + believ + abl + yunb + eli + eva + bly
GeneralizzazioneForte (radice + affisso si ricombinano)Più debole (le coppie non devono allinearsi)

Entrambi producono pezzi subword. I pezzi di Harris tendono ad allinearsi con ciò che un linguista chiamerebbe morfema: l'unità significativa più piccola. I pezzi BPE ottimizzano la compressione: la coppia di byte più frequente viene unita, indipendentemente dal significato.

Segmenta una Parola

Applica il ragionamento in stile Harris alla parola `replayed`. Proponi tre segmenti morfologici & giustifica ciascuno in una frase (qual è il suo ruolo: prefisso, radice o suffisso).

Tre Strati del Vocabolario

Anatomia di un Vocabolario ANDREA

La tokenizzazione Harris produce un vocabolario con tre strati:


Livello 1: 256 byte base. Ogni possibile byte UTF-8 (0x00 attraverso 0xFF) ottiene il proprio ID di token. Una rete di sicurezza: qualsiasi carattere presente in un corpus, un tokenizer può rappresentarlo come una sequenza di byte. Nessun <UNK> si attiva mai.


Livello 2: N segmenti morfologici. Pezzi comuni scoperti tramite analisi distributiva. ANDREA-12M addestrato N = 4096; ANDREA-120M addestrato N = 8192. Ogni segmento comprime una stringa multi-byte ricorrente in un singolo token.


Livello 3: 1 token BOS. Un marcatore speciale posto all'inizio di ogni sequenza di addestramento. Permette a un modello di imparare 'questa posizione non ha passato'. ANDREA-12M & ANDREA-120M riservano esattamente un ID per BOS.


Dimensioni del Vocabolario


ModelloByte baseSegmenti morfemi (N)BOSDimensione vocabolario
ANDREA-12M256409614353
ANDREA-120M256819218449

256 + N + 1 = dimensione del vocabolario. Semplice. Riproducibile. Aperto.


Perché un Byte Slab è Importante

Un fallback a byte garantisce la copertura. Se un modello incontra 日本語 e un tokenizer non ha morfemi giapponesi, i singoli byte UTF-8 portano una sequenza attraverso. Un modello si allena sui byte; la qualità sugli script rari dipende dalla capacità e dall'esposizione, ma nessun input fa mai crashare un tokenizer.

Calcola un Vocabolario

ANDREA-480M (un terzo modello in una famiglia, l'attività futura 24 lo copre) pianifica di addestrare un tokenizer Harris con N = 16.384 segmenti su un corpus più grande. Calcola la sua dimensione del vocabolario. Mostra una formula. Poi spiega in una frase perché un byte slab rimane a 256 anche quando N cresce.

Inizio della Sequenza

Perché una Sequenza Ha Bisogno di un Marcatori

Un transformer solo-decoder prevede il token successivo dal contesto precedente. La posizione 0 non ha contesto precedente. Senza un marcatore, la posizione 0 si trova in un buco logico: un modello non ha nulla a cui prestare attenzione.


BOS risolve un buco. Un singolo token speciale (ID = 256 + N) si trova all'inizio di ogni sequenza durante l'addestramento. Un modello impara:


- 'Quando vedi BOS, predici un probabile primo token di testo naturale.'

- 'Quando vedi BOS seguito da una parola, quella parola è l'inizio di una sequenza, non una continuazione.'


Un Token, Molti Usi


BOS appare in:


- Durante l'addestramento: preposto a ogni chunk di testo immesso nel modello.

- Durante l'inferenza: preposto a un prompt in modo che il modello veda un segnale familiare di 'nuovo inizio'.

- Marcatura dei confini: in alcuni pipeline, un separatore tra documenti concatenati.


ANDREA riserva esattamente un ID per BOS. Nessun EOS, nessun PAD, nessun token speciale oltre a ciò che serve a un vocabolario. La semplicità rimane un valore permacomputer: ogni token deve guadagnarsi il suo posto.


Attività 3 Continua

L'Attività 3 (grow_a_language_model_tokenizer_diet) copre cosa succede quando N è troppo grande o un corpus del tokenizer diverge da un corpus di addestramento. ANDREA-12M ha sprecato il 63.6% del suo vocabolario; ANDREA-120M l'ha corretto. Continua a leggere.

Compromessi Solo BOS

Rifletti su una scelta di design che ANDREA fa: solo un token speciale (BOS), nessun EOS, nessun PAD. Nomina un compromesso che questo crea. Il compromesso può essere un beneficio (motore più semplice, meno slot sprecati) o un vincolo (alcuni trucchi di addestramento richiedono token extra). Una frase è sufficiente.