Transzformerek és a figyelem mechanizmus · Lecke 04

Az önfigyelem lépésről lépésre

Az előző leckében megismertük a query, key és value szerepét. Most kiszámoljuk, pontosan hogyan lesz belőlük a kimenet. Az önfigyelem a tanulmány egyetlen tömör képletére épül, amelyet négy egyszerű lépésre bontunk. A képlet neve skálázott ponttermékes figyelem (scaled dot-product attention).

Vissza a tananyaghoz


A képlet, amelyre minden épül

Az Attention Is All You Need tanulmány a figyelmet egyetlen képletben adja meg. A Q, K és V a query, key és value vektorok mátrixba rendezve, a d_k pedig a query és key vektorok hossza. A képlet a következő.

Attention(Q, K, V) = softmax( Q KT / √dk ) V

Ez a sor sűrűnek tűnik, de négy jól elkülönülő lépés van benne. Először a query és a key pontszorzata adja a nyers pontszámokat. Másodszor ezeket elosztjuk a d_k gyökével. Harmadszor a softmax függvény ezekből súlyokat készít, amelyek összege egy. Negyedszer a súlyokkal megszorozzuk a value vektorokat, és összeadjuk őket. Vegyük sorra a négy lépést.


  1. PontszorzatA query és minden key pontszorzata megadja, mennyire illik a kérdés a címkéhez. Ez a nyers pontszám.
  2. SkálázásA pontszámokat elosztjuk a d_k gyökével, hogy ne nőjenek túl nagyra.
  3. SoftmaxA softmax a pontszámokból súlyokat készít, amelyek nullától egyig terjednek és összegük egy.
  4. Súlyozott valueA súlyokkal megszorozzuk a value vektorokat és összeadjuk. Ez a token új megjelenítése.

Első lépés. A pontszorzat

Két vektor pontszorzata egyetlen szám, amely annál nagyobb, minél inkább egy irányba mutat a két vektor. A figyelemben egy token query vektorát megszorozzuk minden token key vektorával. Így minden query token minden key tokennel kap egy pontszámot. Ez a pontszám azt méri, mennyire illik az adott kérdés az adott címkéhez. Ha az egészet mátrixban nézzük, a Q és K szorzata egy négyzetes táblázatot ad, ahol a sorok a kérdező tokenek, az oszlopok a válaszoló tokenek. Ezt hívjuk figyelemmátrixnak.


Figyelemmátrix. A sötétebb mező több figyelmet jelent macska felmászott a fára macska felmászott a fára Sorok. a kérdező token (query). Oszlopok. a válaszoló token (key) Példa a fára sor a felmászott és a macska szóra is figyel
A figyelemmátrix minden kérdező tokenhez megmutatja, mennyire figyel a többi tokenre. A softmax után minden sor súlyai összeadva egyet adnak.

Második lépés. Skálázás a d_k gyökével

A pontszorzatok értéke a vektorok hosszával együtt nő. Ha a d_k nagy, a pontszámok is nagyra nőnek, és ez gondot okoz a következő lépésben. A nagy értékeknél a softmax nagyon élessé válik, szinte csak egyetlen tokenre tesz súlyt, a többire alig, és ilyenkor a tanulás lassul, mert a gradiensek elenyészően kicsivé válnak. A megoldás egyszerű. A pontszámokat elosztjuk a d_k gyökével. A tanulmány alapmodelljében a d_k értéke 64, tehát a gyöke 8. Ez az osztás tartja kordában a pontszámokat, ezért is hívjuk a mechanizmust skálázottnak.


Harmadik lépés. A softmax

A softmax függvény tetszőleges számsorból olyan súlyokat készít, amelyek mind nulla és egy közé esnek, és összegük pontosan egy. A nagyobb pontszámhoz nagyobb súly tartozik, de mindegyik kap valamennyit. A figyelemben ez azt jelenti, hogy minden kérdező token szétosztja a figyelmét a többi token között. Egy sor a figyelemmátrixban a softmax után éppen egy ilyen súlyeloszlás. A legjobban illeszkedő token kapja a legnagyobb súlyt, de a mondat többi része is befolyásolja az eredményt.


Pontszámok 5,2 1,1 3,4 softmax Súlyok (összegük 1) 0,72 0,04 0,24 × value Új token vektor a value-k súlyozott összege
A softmax a nyers pontszámokból egyre összegződő súlyokat készít. A súlyokkal a value vektorokat összegezve áll elő a token új megjelenítése.

Negyedik lépés. A súlyozott value összeg

Az utolsó lépésben a softmax súlyaival megszorozzuk a value vektorokat, és összeadjuk őket. Az eredmény minden kérdező tokenhez egy új vektor, amely a mondat többi részének tartalmából áll össze, súlyozva aszerint hogy melyik mennyire fontos. Ez a lényeg. A token kilép a figyelemből egy olyan megjelenítéssel, amely már a környezetét is figyelembe veszi. Amikor a query, a key és a value ugyanabból a sorozatból származik, önfigyelemről (self-attention) beszélünk, mert a sorozat saját magára figyel. Ez a transzformer motorja.


4

Négy lépés, egy képlet. Pontszorzat, skálázás a d_k gyökével, softmax, majd súlyozott value összeg. Ez a skálázott ponttermékes figyelem. Minden más, amit a következő leckékben látunk, ennek a négy lépésnek a kibővítése vagy megismétlése.


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