Informazioni sui token
I token sono parole, set di caratteri o combinazioni di parole e punteggiatura usati da modelli di linguaggio di grandi dimensioni per scomporre il testo. La tokenizzazione è il primo passaggio del training. L’LLM analizza le relazioni semantiche tra i token, ad esempio la frequenza con cui vengono usate insieme o se vengono usate in contesti simili. Dopo il training, l’LLM usa tali modelli e relazioni per generare una sequenza di token di output in base alla sequenza di input.
Trasformazione del testo in token
Il set di token univoci su cui viene eseguito il training di un LLM è noto come vocabolario.
Si consideri, ad esempio, la frase seguente:
Ho sentito un cane abbaiare forte a un gatto
Questo testo può essere tokenizzato come:
- I
- sentito
- a
- dog
- abbaiare
- forte
- alle
- a
- cat
Avendo un set di testo di training sufficientemente grande, la tokenizzazione può compilare un vocabolario di molte migliaia di token.
Metodi comuni di tokenizzazione
Il metodo di tokenizzazione specifico varia in base all'LLM. I metodi di tokenizzazione comuni includono:
- Tokenizzazione di Word (il testo è suddiviso in singole parole in base a un delimitatore)
- Tokenizzazione dei caratteri (il testo è suddiviso in singoli caratteri)
- Tokenizzazione delle parole secondarie (il testo è suddiviso in parole parziali o set di caratteri)
Ad esempio, i modelli GPT, sviluppati da OpenAI, usano un tipo di tokenizzazione delle parole secondarie nota come Codifica byte-pair (BPE). OpenAI fornisce uno strumento per visualizzare il modo in cui il testo verrà tokenizzato.
Esistono vantaggi e svantaggi per ogni metodo di tokenizzazione:
Dimensioni dei token | Vantaggi | Svantaggi |
---|---|---|
Token più piccoli (tokenizzazione di caratteri o parole secondarie) | - Consente al modello di gestire una gamma più ampia di input, ad esempio parole sconosciute, errori di digitazione o sintassi complessa. - Potrebbe consentire la riduzione delle dimensioni del vocabolario, richiedendo un minor numero di risorse di memoria. |
- Un determinato testo viene suddiviso in più token, che richiedono risorse di calcolo aggiuntive durante l'elaborazione - Dato un limite di token fisso, la dimensione massima dell'input e dell'output del modello è inferiore |
Token più grandi (tokenizzazione di parole) | - Un determinato testo viene suddiviso in meno token, che richiedono meno risorse di calcolo durante l'elaborazione. - Dato lo stesso limite di token, le dimensioni massime dell'input e dell'output del modello sono maggiori. |
- Potrebbe causare un aumento delle dimensioni del vocabolario, richiedendo più risorse di memoria. - Può limitare la capacità dei modelli di gestire parole sconosciute, errori di digitazione o sintassi complessa. |
Modalità di utilizzo dei token da parte degli LLM
Al termine della tokenizzazione da parte dell’LLM, questo assegna un ID a ogni token univoco.
Si consideri la frase di esempio:
Ho sentito un cane abbaiare forte a un gatto
Dopo che il modello usa un metodo di tokenizzazione delle parole, è possibile assegnare degli ID token come indicato di seguito:
- Ho (1)
- sentito (2)
- un (3)
- cane (4)
- abbaiare (5)
- forte (6)
- a (7)
- a (il token "a" è già assegnato un ID pari a 3)
- gatto (8)
Assegnando ID, il testo può essere rappresentato come una sequenza di ID token. La frase di esempio verrebbe rappresentata come [1, 2, 3, 4, 5, 6, 7, 3, 8]. La frase "Ho sentito un gatto" sarebbe rappresentata come [1, 2, 3, 8].
Man mano che il training continua, il modello aggiunge tutti i nuovi token nel testo di training al suo vocabolario e lo assegna a un ID. Ad esempio:
- miagolare (9)
- eseguire (10)
È possibile analizzare le relazioni semantiche tra i token usando queste sequenze di ID token. I vettori numerici multivalore, noti come embeddings, vengono usati per rappresentare queste relazioni. Un incorporamento viene assegnato a ogni token in base alla frequenza con cui viene usato insieme a o in contesti simili agli altri token.
Dopo il training, un modello può calcolare un incorporamento per testo che contiene più token. Il modello tokenizza il testo, quindi calcola un valore complessivo di incorporamenti in base agli incorporamenti appresi dei singoli token. Questa tecnica può essere utilizzata per ricerche semantiche di documenti o per l'aggiunta di archivi vettoriali a un'intelligenza artificiale.
Durante la generazione dell'output, il modello stima un valore vettoriale per il token successivo nella sequenza. Il modello seleziona quindi il token successivo dal vocabolario in base a questo valore vettoriale. In pratica, il modello calcola più vettori usando vari elementi degli incorporamenti dei token precedenti. Il modello valuta quindi tutti i potenziali token da questi vettori e seleziona quello più probabile per continuare la sequenza.
La generazione di output è un'operazione iterativa. Il modello aggiunge il token stimato alla sequenza finora esistente e lo utilizza come input per l'iterazione successiva, creando l'output finale un token alla volta.
Limiti dei token
I moduli LLM presentano delle limitazioni relative al numero massimo di token che possono essere usati come input o generati come output. Questa limitazione spesso comporta la combinazione dei token di input e output in una finestra di contesto massima.
Ad esempio, GPT-4 supporta fino a 8.192 token di contesto. Le dimensioni combinate dei token di input e output non possono superare 8.192.
Insieme, il limite di token e il metodo di tokenizzazione di un modello determinano la lunghezza massima del testo che può essere fornito come input o generato come output.
Si consideri, ad esempio, un modello con una finestra di contesto massima di 100 token. Il modello elabora le frasi di esempio come testo di input:
Ho sentito un cane abbaiare forte a un gatto
Usando un metodo di tokenizzazione basato su parole, l'input è di nove token. In questo modo sono disponibili 91 token di parola per l'output.
Usando un metodo di tokenizzazione basato su caratteri, l'input è di 34 token (inclusi gli spazi). In questo modo sono disponibili solo 66 token di caratteri per l'output.
Prezzi e limitazione della frequenza basati su token
I servizi di intelligenza artificiale generativi spesso usano prezzi basati su token. Il costo di ogni richiesta dipende dal numero di token di input e output. I prezzi possono variare tra input e output. Ad esempio, vedere Prezzi del servizio Azure OpenAI.
I servizi di intelligenza artificiale generativi possono anche essere limitati per quanto riguarda il numero massimo di token al minuto (TPM). Questi limiti di frequenza possono variare a seconda dell'area del servizio e dell'LLM. Per altre informazioni sulle aree specifiche, vedere Quote e limiti del servizio OpenAI di Azure.