3. Token Embeddings
Token Embeddings
Na die tokenisering van teksdata, is die volgende kritieke stap in die voorbereiding van data vir die opleiding van groot taalmodelle (LLMs) soos GPT die skep van token embeddings. Token embeddings transformeer diskrete tokens (soos woorde of subwoorde) in deurlopende numeriese vektore wat die model kan verwerk en daaruit kan leer. Hierdie verduideliking breek token embeddings, hul inisialisering, gebruik, en die rol van posisionele embeddings in om die model se begrip van tokenreekse te verbeter, af.
Die doel van hierdie derde fase is baie eenvoudig: Ken elkeen van die vorige tokens in die woordeskat 'n vektor van die verlangde dimensies toe om die model op te lei. Elke woord in die woordeskat sal 'n punt in 'n ruimte van X dimensies wees. Let daarop dat die posisie van elke woord in die ruimte aanvanklik net "random" geinisialiseer word en hierdie posisies is opleibare parameters (sal verbeter word tydens die opleiding).
Boonop, tydens die token embedding word 'n ander laag van embeddings geskep wat (in hierdie geval) die absolute posisie van die woord in die opleidingssin verteenwoordig. Op hierdie manier sal 'n woord in verskillende posisies in die sin 'n ander voorstelling (betekenis) hê.
What Are Token Embeddings?
Token Embeddings is numeriese verteenwoordigings van tokens in 'n deurlopende vektorruimte. Elke token in die woordeskat is geassosieer met 'n unieke vektor van vaste dimensies. Hierdie vektore vang semantiese en sintaktiese inligting oor die tokens vas, wat die model in staat stel om verhoudings en patrone in die data te verstaan.
Vocabulary Size: Die totale aantal unieke tokens (bv., woorde, subwoorde) in die model se woordeskat.
Embedding Dimensions: Die aantal numeriese waardes (dimensies) in elke token se vektor. Hoër dimensies kan meer genuanseerde inligting vasvang, maar vereis meer rekenaarhulpbronne.
Example:
Vocabulary Size: 6 tokens [1, 2, 3, 4, 5, 6]
Embedding Dimensions: 3 (x, y, z)
Initializing Token Embeddings
Aan die begin van die opleiding, word token embeddings tipies met klein random waardes geinisialiseer. Hierdie aanvanklike waardes word aangepas (fyngestem) tydens opleiding om die tokens se betekenisse beter te verteenwoordig op grond van die opleidingsdata.
PyTorch Example:
Output:
Verklaring:
Elke ry kom ooreen met 'n token in die woordeskat.
Elke kolom verteenwoordig 'n dimensie in die inbedingsvektor.
Byvoorbeeld, die token by indeks
3
het 'n inbedingsvektor[-0.4015, 0.9666, -1.1481]
.
Toegang tot 'n Token se Inbeding:
Output:
Interpretasie:
Die token by indeks
3
word verteenwoordig deur die vektor[-0.4015, 0.9666, -1.1481]
.Hierdie waardes is opleidingsparameters wat die model tydens opleiding sal aanpas om die token se konteks en betekenis beter te verteenwoordig.
Hoe Token Embeddings Werk Tydens Opleiding
Tydens opleiding word elke token in die invoerdata omgeskakel na sy ooreenstemmende embedding vektor. Hierdie vektore word dan in verskeie berekeninge binne die model gebruik, soos aandagmeganismes en neurale netwerklae.
Voorbeeld Scenario:
Batch Grootte: 8 (aantal monsters wat gelyktydig verwerk word)
Max Volgorde Lengte: 4 (aantal tokens per monster)
Embedding Dimensies: 256
Data Struktuur:
Elke batch word verteenwoordig as 'n 3D tensor met vorm
(batch_size, max_length, embedding_dim)
.Vir ons voorbeeld sou die vorm
(8, 4, 256)
wees.
Visualisering:
Verklaring:
Elke token in die reeks word verteenwoordig deur 'n 256-dimensionele vektor.
Die model verwerk hierdie embeddings om taalpatrone te leer en voorspellings te genereer.
Posisionele Embeddings: Voeg Konteks by Token Embeddings
Terwyl token embeddings die betekenis van individuele tokens vasvang, kodeer hulle nie inherent die posisie van tokens binne 'n reeks nie. Om die volgorde van tokens te verstaan, is noodsaaklik vir taalbegrip. Dit is waar posisionele embeddings in die prentjie kom.
Waarom Posisionele Embeddings Benodig Word:
Token Volgorde Maak Saak: In sinne hang die betekenis dikwels af van die volgorde van woorde. Byvoorbeeld, "Die kat het op die mat gesit" teenoor "Die mat het op die kat gesit."
Embedding Beperking: Sonder posisionele inligting, behandel die model tokens as 'n "sak van woorde," terwyl hulle hul volgorde ignoreer.
Tipes van Posisionele Embeddings:
Absoluut Posisionele Embeddings:
Ken 'n unieke posisie vektor aan elke posisie in die reeks toe.
Voorbeeld: Die eerste token in enige reeks het dieselfde posisionele embedding, die tweede token het 'n ander, en so aan.
Gebruik Deur: OpenAI se GPT-modelle.
Relatiewe Posisionele Embeddings:
Kodeer die relatiewe afstand tussen tokens eerder as hul absolute posisies.
Voorbeeld: Dui aan hoe ver twee tokens van mekaar af is, ongeag hul absolute posisies in die reeks.
Gebruik Deur: Modelle soos Transformer-XL en sommige variasies van BERT.
Hoe Posisionele Embeddings Geïntegreer Word:
Dieselfde Dimensies: Posisionele embeddings het dieselfde dimensionaliteit as token embeddings.
Byvoeging: Hulle word by token embeddings gevoeg, wat token identiteit kombineer met posisionele inligting sonder om die algehele dimensionaliteit te verhoog.
Voorbeeld van Byvoeging van Posisionele Embeddings:
Neem aan 'n token embedding vektor is [0.5, -0.2, 0.1]
en sy posisionele embedding vektor is [0.1, 0.3, -0.1]
. Die gekombineerde embedding wat deur die model gebruik word, sal wees:
Voordele van Posisionele Embeddings:
Kontextuele Bewustheid: Die model kan onderskei tussen tokens gebaseer op hul posisies.
Volgorde Begrip: Stel die model in staat om grammatika, sintaksis, en kontekstafhanklike betekenisse te verstaan.
Kode Voorbeeld
Following with the code example from https://github.com/rasbt/LLMs-from-scratch/blob/main/ch02/01_main-chapter-code/ch02.ipynb:
Verwysings
Last updated