Hogyan épül fel egy nyelvi modell · Lecke 04

A transzformer architektúra és a figyelem

A transzformer az az architektúra, amely a modern nyelvi modellek alapja. A szíve a figyelem, angolul self-attention, amelynek segítségével minden token megnézheti az összes többit, és onnan gyűjtheti be a jelentéshez szükséges környezetet. Ebben a leckében összerakjuk, hogyan működik ez, és miből áll egy transzformer blokk.

Vissza a tananyaghoz


Miért volt szükség új architektúrára

A nyelvben a jelentés gyakran távoli szavak összefüggéséből áll össze. A „bankhoz mentem, mert a folyó elöntötte" mondatban a „bank" jelentését a mondat vége dönti el. A korábbi architektúrák a szöveget szigorúan sorban, egyik tokenről a másikra haladva dolgozták fel, és a távoli összefüggések nehezen jutottak át ezen a láncon. A 2017-ben bemutatott transzformer szakított ezzel. A benne lévő figyelem lehetővé teszi, hogy minden token közvetlenül lásson minden másikat, függetlenül attól, milyen messze állnak egymástól, és mindezt párhuzamosan.


Query, key és value

A figyelem működését három szerep köré érdemes felépíteni. Minden token a saját vektorából három új vektort származtat. A lekérdezés (query) azt fejezi ki, mit keres az adott token a környezetében. A kulcs (key) azt, amit az adott token kínál a többieknek, mintha egy címke lenne rajta. Az érték (value) pedig a ténylegesen továbbadható tartalom. Amikor egy token figyel, a saját lekérdezését összeveti az összes token kulcsával. Ahol az illeszkedés erős, ott nagy súlyt kap, és onnan több értéket vesz át.


  1. Három szerepMinden token a vektorából egy lekérdezést, egy kulcsot és egy értéket származtat.
  2. Illeszkedés méréseA token lekérdezését összeveti minden más token kulcsával, és megnézi, mennyire passzolnak.
  3. Súlyok kiszámításaAz illeszkedésekből figyelemsúlyok lesznek, amelyek összege egy, tokenenként.
  4. Súlyozott összegzésA token a súlyok arányában veszi át a többi token értékét, így frissül az ábrázolása.

FIGYELEMMÁTRIX, KI MENNYIRE FIGYEL KIRE mire figyel → A macska az egeret kergette A macska az egeret kergette ki figyel A „kergette" erősen figyel a „macska" és az „egeret" tokenre, mert azok döntik el, ki kit kerget
A figyelemmátrix minden sora egy tokent mutat, és azt, mennyire figyel a többi tokenre. A sötétebb mező erősebb figyelmet jelent. A súlyok soronként összeadva egyet adnak.

Több figyelemfej egyszerre

Egyetlen figyelem csak egyféle összefüggést tud kiemelni. A nyelvben viszont sokféle kapcsolat él egyszerre, nyelvtani egyeztetés, tárgy és állítmány viszonya, visszautalás egy korábbi szereplőre. A transzformer ezért nem egyetlen figyelmet használ, hanem többet párhuzamosan, ezt nevezzük többfejű figyelemnek, angolul multi-head attention. Minden fej a saját lekérdezés, kulcs és érték hármasával dolgozik, és a maga szempontjából figyeli a szöveget. Az egyik fej a nyelvtani egyeztetésre, egy másik a távoli visszautalásra állhat rá. A fejek eredményét a modell végül összefésüli.


EGY TRANSZFORMER BLOKK bemenő token vektorok többfejű figyelem a tokenek begyűjtik egymás információját reziduális átkötés előrecsatolt réteg tokenenkénti feldolgozás és átalakítás kimenő token vektorok sok ilyen blokk egymásra
Egy transzformer blokk a figyelemből és egy előrecsatolt rétegből áll, reziduális átkötésekkel. A modell sok ilyen blokkot rak egymásra, és a szöveg minden blokkon áthaladva egyre gazdagabb ábrázolást kap.

A sorrend kérdése

A figyelemnek van egy meglepő tulajdonsága. Mivel minden tokent egyszerre néz, önmagában nem tudja, melyik token áll előrébb és melyik hátrébb. A „kutya harapta az embert" és az „ember harapta a kutyát" ugyanabból a tokenkészletből áll, csak a sorrend más, a jelentés viszont gyökeresen eltér. A transzformer ezt pozíciókódolással oldja meg. Minden tokenhez hozzáad egy jelet, amely elárulja, hányadik helyen áll a szövegben. Így a modell nem csak azt tudja, mely tokenek vannak jelen, hanem azt is, milyen sorrendben.


Rétegről rétegre gazdagodó jelentés

Egyetlen transzformer blokk önmagában keveset tud. Az ereje az egymásra rakott blokkokból származik. A token az első blokkban a közvetlen szomszédairól gyűjt információt, a következőben már ezek eredményéről, és így tovább. Ahogy a szöveg egyre feljebb halad a blokkokon, a token ábrázolása egyre elvontabb, egyre több összefüggést foglal magába. Az alsó blokkok a helyi nyelvtannal foglalkoznak, a felsőbbek a mondat és a bekezdés szintű jelentéssel. A legfelső réteg kimenetéből számolja ki végül a modell a következő tokenre a valószínűségi eloszlást, ahogy azt az első leckében láttuk.


4

A figyelem a kulcs. A transzformer újdonsága, hogy minden token közvetlenül, párhuzamosan láthatja az összes többit, és onnan gyűjtheti be a jelentéshez szükséges környezetet. Ez teszi lehetővé, hogy a modell a távoli összefüggéseket is kezelje, és hogy a tanítás nagy méretben, hatékonyan fusson.


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