Transzformerek és a figyelem mechanizmus · Lecke 06

Pozíciókódolás és maradékkapcsolatok

A figyelem önmagában nem tudja, hányadik helyen áll egy szó. A mély háló pedig könnyen elveszíti a tanulás jeleit, ha sok réteget fűzünk egymásra. Ebben a leckében két kiegészítést nézünk meg, amelyek ezt a két gondot orvosolják. A pozíciókódolás visszaadja a sorrendet, a maradékkapcsolatok és a rétegnormalizálás pedig stabillá teszik a mély hálót.

Vissza a tananyaghoz


Miért kell a sorrend

A figyelem mechanizmus minden pozíciót egyformán kezel. Ha felcserélnénk két szót a mondatban, a figyelem önmagában ugyanazokat a súlyokat számolná, mert nem tud a helyükről. A nyelvben viszont a sorrend jelentést hordoz. A kutya megharapta az embert és az ember megharapta a kutyát ugyanazokból a szavakból áll, mégis mást jelent. Ezért a transzformernek külön be kell építenie a pozíció információját. Ezt úgy teszi, hogy minden beágyazás vektorhoz hozzáad egy pozíciófüggő vektort, a pozíciókódolást.


Szinusz és koszinusz alapú kódolás

A tanulmány szinusz és koszinusz függvényekből építi fel a pozíciókódolást. Minden pozícióhoz és a vektor minden dimenziójához egy hullámérték tartozik. A páros indexű dimenziókban szinusz, a páratlanokban koszinusz szerepel, és a hullámok frekvenciája dimenziónként változik, egy 10000 alapú léptékkel. A pos a szó helye a sorozatban, az i a dimenzió indexe, a d_model pedig a vektor teljes hossza.

PE(pos, 2i) = sin( pos / 100002i / d_model )
PE(pos, 2i+1) = cos( pos / 100002i / d_model )

A kis indexű dimenziók lassan változó, hosszú hullámai a durva helyzetet írják le, a nagy indexűek gyors hullámai a finom helyzetet. Együtt minden pozícióhoz egyedi mintázatot adnak, amelyet a modell fel tud használni. Mivel a kódolás egy szabályos függvény, a modell a relatív távolságokat is meg tudja tanulni belőle.


Pozíciókódolás. Különböző frekvenciájú hullámok lassú hullám gyors hullám pozíció a sorozatban
A pozíciókódolás különböző frekvenciájú szinusz és koszinusz hullámokból áll. A lassú hullámok a durva, a gyorsak a finom helyzetet írják le, együtt minden pozícióhoz egyedi mintázatot adnak.

A mély háló másik gondja

A transzformer nem egyetlen figyelemből áll, hanem sok réteget fűz egymásra. Az alapmodellben az enkóder és a dekóder is N = 6 azonos rétegből épül fel. Ha sok réteget rakunk egymásra, a tanulás jelei, a gradiensek, útközben elgyengülhetnek, és a mély háló nehezen tanul. Erre két kiegészítés ad választ, a maradékkapcsolat (residual connection) és a rétegnormalizálás (layer normalization). Ez a kettő minden alréteg köré beépül, és együtt teszi lehetővé, hogy a mély transzformer stabilan taníthatóvá váljon.


Maradékkapcsolat és rétegnormalizálás

A maradékkapcsolat lényege, hogy egy alréteg bemenetét hozzáadjuk a kimenetéhez. Így a réteg nem a teljes új megjelenítést tanulja meg, csak azt, mennyivel változtat a bemeneten. Ez a hozzáadott út közvetlen utat ad a gradiensnek visszafelé, ezért a mély háló könnyebben tanul. A rétegnormalizálás ezután az összeget egységes eloszlásra hozza, hogy az értékek ne szaladjanak el. A tanulmány minden alréteg köré ezt a mintát építi, amelyet így írhatunk le.

kimenet = LayerNorm( x + Alréteg(x) )

x bemenet Alréteg figyelem vagy FFN + maradékkapcsolat. x közvetlen hozzáadva LayerNorm kimenet Ez a minta minden alréteg köré beépül, hatszor egymás után az alapmodellben
Minden alréteg köré maradékkapcsolat és rétegnormalizálás épül. A bemenet közvetlenül hozzáadódik az alréteg kimenetéhez, majd a normalizálás stabilizálja az értékeket.

6

Hat réteg egymáson. Az alapmodell enkódere és dekódere is hat azonos rétegből áll. Ilyen mélységben a maradékkapcsolat és a rétegnormalizálás nélkül a háló nehezen tanulna. Ez a két kiegészítés teszi a mély transzformert stabilan taníthatóvá.


← 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 →