Az LLM-ek technikai háttere
3. fejezet: Neurális hálózat architektúra
Fodor Tamás írása
Ez a cikksorozat Andrej Karpathy LLM-ekről (Large Language Model – nagy nyelvi modellek) tartott előadásán alapul. Karpathy, aki korábban a Tesla mesterséges intelligencia részlegét vezette és az OpenAI egyik alapítója volt, részletesen bemutatja a ChatGPT-hez hasonló rendszerek működését. Az előadás végigvezet minket azon az úton, amely a nyers internetes szövegektől az intelligens AI-asszisztensekig vezet.
Előző: Adatgyűjtés • Tokenizáció • Következő: Tanítási folyamat • Következtetés • Utótanítás • Fejlett képességek • Értékelés és telepítés
A transzformer architektúra
A szöveg numerikus tokensorozattá alakítása után jutunk el az LLM-ek központi számítási egységéhez: a transzformer neurális hálózathoz. Ez az architektúra párhuzamos szekvenciafeldolgozást tesz lehetővé, szemben a korábbi modellekkel, amelyek egyesével dolgozták fel a tokeneket.
A transzformer tervezése milliárdnyi paraméterrel rendelkező modellek tanítását teszi lehetővé. A főbb nyelvi modellek, köztük a GPT, BERT és T5 mind erre az architektúrára épülnek. A transzformerek legfontosabb előnye a korábbi architektúrákkal szemben, hogy egy szekvencia összes tokenjét egyidejűleg tudják feldolgozni, drasztikusan csökkentve a tanítási időt és lehetővé téve sokkal nagyobb modellek fejlesztését.
Méret és paraméterek
A mai nyelvi modellek milliárdnyi paramétert tartalmaznak – ezek azok az egyedi számértékek, amelyeket a tanítás során állít be a rendszer. A 2019-ben kiadott GPT-2 1,6 milliárd paramétert tartalmazott. A jelenlegi modellek jelentősen nagyobbak, némelyik több száz milliárd vagy még több paramétert tartalmaz. Ezek a paraméterek strukturált rétegekbe szerveződnek, amelyek tokensorozatokat dolgoznak fel és valószínűségi eloszlásokat generálnak a lehetséges következő tokenekre.
Minden paraméter matematikai műveletek – szorzás, összeadás és nemlineáris transzformációk – révén járul hozzá a modell előrejelzéseihez. Ez a méretbeli növekedés alapvető paradigmaváltást jelent a számítási megközelítésben: explicit szabályok kódolása helyett a rendszer adatokból tanul mintákat masszív párhuzamos optimalizáció segítségével. A tanítás során ezek a paraméterek úgy állítódnak be, hogy minimalizálják az előrejelzési hibákat szövegpéldák milliárdjain keresztül.
Tokenvektorok és reprezentációk
A neurális hálózat a bemeneti tokenek azonosítóit vektorokká alakítja egy vektorizáló rétegen keresztül. A szótár minden tokenje – jellemzően több tízezer egyedi token – saját tanult vektorreprezentációhoz kapcsolódik, amit elosztott reprezentációnak nevezünk.
Ezek a vektorok véletlenszerű inicializálással indulnak, de a tanítás során fejlődnek. A tanítási folyamat úgy állítja be ezeket a vektorokat, hogy a hasonló kontextusban megjelenő tokenek hasonló reprezentációkat alakítsanak ki. Ez teszi lehetővé, hogy a modell a tanítási adatokban látott pontos szekvenciákon túl is általánosítson. Például a hasonló fogalmakat reprezentáló vagy hasonló grammatikai pozíciókban megjelenő tokenek természetesen hasonló vektorreprezentációkat fejlesztenek ki a tanítási folyamat során.
Ezek a vektorok képezik a kiindulási reprezentációt, amely a hálózat rétegein keresztül halad. Minden egyes rétegen áthaladva a reprezentációk egyre absztraktabbá és kontextusfüggőbbé válnak. Így a rendszer nem csak az egyedi tokenek identitását őrzi meg, hanem a szekvencián belüli kapcsolataikat is felismeri.
Figyelmi mechanizmusok
A transzformer legfontosabb innovációja a figyelmi mechanizmus (attention mechanism), amely lehetővé teszi, hogy a hálózat az összes korábbi tokent figyelembe vegye a következő előrejelzésekor. Ez a transzformer architektúra magját képező figyelmi blokkokon keresztül történik. A figyelmi mechanizmus kiszámítja a tokenpozíciók közötti kapcsolatokat, meghatározva, mely korábbi tokenek a legrelevánsabbak a következő token előrejelzéséhez.
A számítás a bemenet három tanult transzformációját foglalja magában: lekérdezések, kulcsok és értékek. Ezek a transzformációk teszik lehetővé, hogy a hálózat kompatibilitási pontszámokat számítson ki a szekvencia különböző pozíciói között. Az eredményül kapott figyelmi súlyok határozzák meg, hogy az egyes pozíciók mennyire befolyásolják a reprezentációt minden más pozícióban. Ez a mechanizmus négyzetesen skálázódik a szekvencia hosszával.
A párhuzamos figyelmi mechanizmusok (multi-head attention) kiterjesztik ezt a koncepciót több figyelmi művelet párhuzamos futtatásával, amelyek mindegyike potenciálisan különböző típusú kapcsolatokra fókuszál: szintaktikai függőségekre, szemantikai összefüggésekre vagy más nyelvi mintákra. Ezek a párhuzamos figyelmi egységek (attention heads) kimenetei egyesülve alkotják a réteg végső kimenetét.
Rétegarchitektúra és mélység
A transzformerek figyelmi és előrecsatolt műveletekből álló rétegeket tartalmaznak egymásra építve. Míg az egyszerű demonstrációs modellek csak néhány réteget tartalmazhatnak, a modern, élvonalbeli hálózatok jellemzően körülbelül 100 vagy több réteget használnak. A GPT-2 legnagyobb konfigurációjában 48 réteget használt. A GPT-3 legnagyobb modellje 96 réteget tartalmaz.
Az információ szekvenciálisan áramlik ezeken a rétegeken keresztül, minden réteg az előző kimenetét dolgozza fel. A reprezentációk egyre absztraktabbá válnak, ahogy haladnak a mélyebb rétegek felé. A korai rétegek általában felszíni mintákat ragadnak meg, mint a szavak együttes előfordulásai és az alapvető szintaxis. A középső rétegek grammatikai struktúrák és szemantikai kapcsolatok megértését fejlesztik ki. A mélyebb rétegek összetettebb mintákat és kapcsolatokat kódolnak.
Kontextusablakok és memória
Minden transzformer rendelkezik maximális kontextushosszal – ez határozza meg, hány tokent tud egyszerre feldolgozni. A GPT-2 kontextushossza 1024 token volt. A modern modellek sokkal nagyobb kontextusablakokkal rendelkeznek, némelyek több százezer tokent is kezelnek. Ez a kontextusablak alapvetően korlátozza, mit “láthat” a modell az előrejelzések készítésekor. Az ablakon túli tokenek nem befolyásolhatják az aktuális előrejelzést.
A kontextusablakon belül a figyelmi mechanizmus lehetővé teszi, hogy bármely token befolyásolja bármely más token reprezentációját. Ez egyfajta munkamemóriát hoz létre, ahol a kontextuson belüli összes információ egyidejűleg elérhető. A kontextusablakon túli információnak azonban a tanítás során kell bekódolódnia a modell paramétereibe – nincs mód hozzáférni következtetés közben.
A kontextuskorlát különböző architektúrális innovációkat ösztönöz. Egyes megközelítések hierarchikus figyelmi mintákat használnak az effektív kontextushossz kiterjesztésére. Mások rekurrenciát vagy tömörítési mechanizmusokat alkalmaznak a szekvencia korábbi részeiből származó információk összegzésére.
Számítási folyamat és korlátok
Az egész hálózat lényegében egy hatalmas matematikai kifejezés. A tokenek belépnek a tetején, végigáramlanak a számítási rétegeken, és a kimeneten a következő token valószínűségeit produkálják. Ez a kifejezés egyszerű műveletek – szorzások, összeadások és nemlineáris függvények – milliárdjait foglalja magában, precíz struktúrába szervezve.
Fontos megérteni, hogy minden token feldolgozása azonos mennyiségű számítást igényel. A modell nem tudja növelni a számítási kapacitást nehezebb feladatoknál – a rétegek száma rögzített, így minden előrejelzés ugyanannyi feldolgozási lépésből áll. Ez azt jelenti, hogy a modellnek úgy kell megtanulnia összetett problémákat megoldani, hogy közben nem használhat több számítási erőforrást. Minden réteg csak meghatározott mértékben tudja átalakítani a bemenetet, és a rétegek összessége szabja meg, milyen bonyolult számításokra képes a rendszer.
Ennek a fix számításnak fontos következményei vannak. A modell nem tud “jobban gondolkodni” nehéz problémákon több számítás használatával. A tanítás során meg kell tanulnia hatékonyan elosztani fix számítási erőforrásait különböző típusú problémák között.
Paraméterek mint elosztott memória
A hálózat milliárdnyi paramétere tárolja a modell tudását. A tanítás során a tanítási adatok információtartalma ezekben a paraméterértékekben kódolódik. Szemben egy adatbázissal, ahol konkrét tények meghatározott helyeken találhatók, itt a tudás a hálózat összes paraméterén szétoszlik. Egyetlen tény akár millió paramétert is befolyásolhat kis mértékben, ugyanakkor minden egyes paraméter számos különböző információ tárolásában vesz részt.
Ennek az elosztott reprezentációnak vannak előnyei és korlátai is. Lehetővé teszi a modell számára, hogy rugalmas módon általánosítson, és keverjen információkat, olyan mintákat és kapcsolatokat találva, amelyek nem voltak explicit módon jelen a tanítási adatokban. Ugyanakkor lehetetlenné teszi specifikus tudás pontos szerkesztését vagy eltávolítását anélkül, hogy más képességeket befolyásolna.
Következő lépések
A transzformer architektúra biztosítja a számítási keretrendszert, de a modell képességei a tanítási folyamat során alakulnak ki. Az architektúra meghatározza, milyen számítások lehetségesek, de a tanítás határozza meg, hogy a modell konkrétan mely számításokat tanulja meg elvégezni. A következő fejezet megvizsgálja, hogyan tanulnak ezek a hálózatok: hogyan állítja be a tanítási folyamat a milliárdnyi paramétert a szöveges adatokban rejlő minták megragadására, és hogyan vezetnek az egyszerű előrejelzési célok váratlanul összetett képességek kialakulásához.
Előző: Adatgyűjtés • Tokenizáció • Következő: Tanítási folyamat • Következtetés • Utótanítás • Fejlett képességek • Értékelés és telepítés