Transzformerek és a figyelem mechanizmus · Lecke 02

Bemenet, tokenek és beágyazások

A modell nem betűket lát, hanem számokat. Ahhoz, hogy a transzformer bármit kezdjen a szöveggel, előbb darabokra kell bontani, majd minden darabot számvektorrá kell alakítani. Ebben a leckében végigvesszük ezt a két lépést, a tokenizálást és a beágyazást, és tisztázzuk, mi az a d_model dimenzió.

Vissza a tananyaghoz


Miből áll a bemenet

Egy nyelvi modell bemenete szöveg, a modell belseje viszont csak számokkal dolgozik. Két lépésre van szükség, hogy a kettő találkozzon. Az első a tokenizálás, amely a szöveget kisebb egységekre, tokenekre bontja. A második a beágyazás, amely minden tokenhez egy számvektort rendel. A transzformer ezután már ezekkel a vektorokkal számol, nem magukkal a betűkkel. Ez a lépés minden későbbi mechanizmus közös kiindulópontja, ezért érdemes lassan végigmenni rajta.


Nyers szöveg a macska alszik token Tokenek a · macska · alszik beágyazás Vektorok számok sora tokenenként A szövegtől a számokig, két lépésben
A nyers szöveg először tokenekre bomlik, majd minden token egy szám vektorrá alakul. A transzformer ezekkel a vektorokkal dolgozik tovább.

Mi az a token

A token a szöveg legkisebb egysége, amellyel a modell dolgozik. Nem feltétlenül egész szó. A gyakorlatban gyakran szórészek, úgynevezett részszavak (subword) a tokenek, így egy ritka vagy összetett szó több darabra bomlik, egy gyakori szó pedig lehet egyetlen token. Ennek a megoldásnak az az előnye, hogy a modell véges, kezelhető méretű szótárból dolgozik, mégis képes bármilyen szót összerakni a darabokból. Minden tokenhez tartozik egy azonosító szám a szótárban, és ez az azonosító a beágyazás bemenete.


  1. SzövegA modell megkapja a nyers szöveget karakterek sorozataként.
  2. Tokenekre bontásA tokenizáló a szöveget ismert egységekre, tokenekre vágja a szótár alapján.
  3. AzonosítókMinden token megkapja a szótárbeli azonosító számát.
  4. BeágyazásAz azonosítóhoz tartozó vektor lesz a token számszerű jelentése.

A beágyazás és a d_model dimenzió

A beágyazás (embedding) egy tanult táblázat. Minden tokenazonosítóhoz tartozik benne egy fix hosszúságú számvektor. Ez a vektor a token jelentésének sűrű, számszerű megjelenítése. A vektor hossza egy fontos szám a transzformerben, ez a d_model. Az Attention Is All You Need tanulmány alapmodelljében a d_model értéke 512, tehát minden tokent egy 512 elemű vektor ír le. Ez a dimenzió végigkíséri a teljes hálót. A modell minden rétege ilyen hosszú vektorokat vesz és ad tovább, ezért a d_model a transzformer egyik központi mérete.


Egy token beágyazása. Vektor hossza = d_model = 512 macska azonosító 0,18 -0,4 0,92 0,05 -0,7 0,31 0,44 512 elem A számok tanult értékek. A közel hasonló jelentésű tokenek vektorai közel kerülnek egymáshoz.
A beágyazás minden tokent egy 512 elemű vektorrá alakít. Ez a d_model dimenzió az alapmodellben, és végigkíséri a teljes transzformert.

Ami hiányzik. A sorrend

A beágyazás megadja, mit jelent egy token, de nem mondja meg, hányadik helyen áll a mondatban. A figyelem mechanizmus önmagában nem érzékeli a sorrendet, minden pozíciót egyformán kezel. Emiatt a beágyazás vektorokhoz külön hozzá kell adni a helyzet információját, ezt hívjuk pozíciókódolásnak (positional encoding). Erre a 06. leckében térünk vissza részletesen. Most elég annyit rögzíteni, hogy a bemenet a token jelentéséből és a token helyzetéből együtt áll össze, mielőtt belép a figyelem mechanizmusba.


512

Ennyi szám ír le egy tokent az alapmodellben. A d_model dimenzió a tanulmány alapmodelljében 512. Ez a hossz nem véletlen, hanem tervezési döntés, és a teljes hálón végigvonul. Minden réteg 512 elemű vektorokat vesz be és ad ki, így a mechanizmusok egymásra fűzhetők.


← Előző lecke Következő lecke →

Workshop

AI Transformation Day

Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.

Érdekel a program →