Gépi tanulás alapjai · Lecke 08

Neurális hálók és nagy nyelvi modellek, bevezetés

A lineáris modellek nem tudnak minden mintázatot megfogni. A neurális hálók éppen azt oldják meg, ahol egy egyenes kevés. Ebben a záró leckében megnézzük, hogyan épülnek fel a rétegekből és neuronokból, majd ezen az alapon eljutunk a tokenekig, a transzformerekig és a nagy nyelvi modellekig.

Vissza a tananyaghoz


Miért kell a neurális háló

A lineáris modell egy b + w1x1 + w2x2 alakú összefüggést tanul, ami egyenes vagy sík formájú döntést jelent. Sok valós feladat viszont nemlineáris, a helyes döntés határa nem egyenes. Ilyen esetekre a lineáris modell mindig gyenge marad, bárhogy is hangoljuk. A neurális háló (neural network) azért erős, mert több egyszerű egységet és nemlineáris lépést kombinál, és így magától megtanulja azokat a bonyolult jellemzőkombinációkat, amelyeket lineáris modellel kézzel kellene előállítani.


Neuronok és rétegek

A neurális háló alapegysége a neuron, más néven csomópont (node), amely a bemeneteit súlyozottan összegzi, majd egy függvényt alkalmaz rá. A neuronok rétegekbe rendeződnek. A bemeneti réteg (input layer) veszi a jellemzőket. Egy vagy több rejtett réteg (hidden layer) köztes, tanult reprezentációkat állít elő, itt zajlik a lényegi számítás. A kimeneti réteg (output layer) adja a végső előrejelzést. A rétegek közötti kapcsolatokhoz súlyok tartoznak, ezeket a modell a tanítás során állítja be, ugyanúgy a veszteség csökkentésével, mint a korábbi modelleknél.


bemeneti réteg rejtett réteg kimeneti réteg x₁ x₂ x₃ y′ minden él egy súly, minden csomópont egy nemlineáris lépés
Egy egyszerű neurális háló. A jellemzők a bemeneti rétegen lépnek be, a rejtett réteg tanult jellemzőket állít elő, a kimeneti réteg adja az előrejelzést.

Aktivációs függvények

A háló ereje a nemlinearitásból fakad, amelyet az aktivációs függvények (activation function) adnak. Minden neuron a súlyozott összeg után egy ilyen függvényt alkalmaz, és ez teszi lehetővé, hogy a háló nemlineáris mintázatokat is megtanuljon. A leggyakoribb a ReLU (rectified linear unit), amely a negatív bemenetet nullára állítja, a pozitívat pedig változatlanul hagyja. Egy másik ismert aktiváció a szigmoid, amellyel a logisztikus regressziónál már találkoztunk, ez 0 és 1 közé képez. Aktivációs függvények nélkül a rétegek egymásutánja összeomlana egyetlen lineáris modellé, és a háló nem lenne erősebb egy egyenesnél.


bemenet kimenet negatív bemenet → 0 pozitív bemenet változatlan ReLU aktiváció
A ReLU aktivációs függvény. A negatív bemenetet nullára vágja, a pozitívat változatlanul engedi tovább, és ezzel nemlinearitást visz a hálóba.

Hogyan tanul a háló

A neurális háló tanítása ugyanarra a gondolatra épül, mint korábban, a veszteség csökkentésére a súlyok igazításával. A háló azonban sok rétegen keresztül számol, ezért a súlyok javításához a hibát vissza kell vezetni a kimenettől a bemenet felé. Ezt végzi a visszaterjesztés (backpropagation), amely rétegről rétegre kiszámolja, melyik súly mennyivel járult hozzá a hibához, és ennek megfelelően módosítja őket a gradiensmódszerrel. Így a háló magától megtalálja azokat a jellemzőkombinációkat, amelyek a legjobban szétválasztják az eseteket.


A tokentől a nyelvi modellig

A nagy nyelvi modellek (large language model, LLM) is neurális hálók, csak szövegre szabva. A szöveget először tokenekre (token) bontjuk, ahol a token a nyelvi modellezés legkisebb egysége, lehet egy szó, egy szórészlet vagy akár egy karakter. Egy modern rendszer gyakran szórészletekre bont, például az unwatched szót az un, watch és ed darabokra. A nyelvi modell feladata, hogy megbecsülje, egy adott szövegkörnyezet után melyik token milyen valószínűséggel következik. A modell tehát a következő tokent jósolja, újra és újra, és így épít fel értelmes szöveget.


SZÖVEGKÖRNYEZET A macska a tetőn jóslás KÖVETKEZŐ TOKEN alszik 62% ül21% ugrik9% A modell minden lehetséges következő tokenhez valószínűséget rendel, és a legvalószínűbbek közül választ.
A nyelvi modell a szövegkörnyezet alapján a következő tokent jósolja, minden lehetőséghez valószínűséget rendelve. Ezt ismételve épül fel a szöveg.

A transzformer és az önfigyelem

A mai nagy nyelvi modellek a transzformer (Transformer) architektúrára épülnek. A korábbi megközelítések a szöveget tokenről tokenre, sorban dolgozták fel, ami korlátozta, mennyi szövegkörnyezetet tudtak hasznosítani. A transzformer ezzel szemben az egész szövegkörnyezetet egyszerre nézi, az önfigyelem (self-attention) mechanizmus segítségével. Az önfigyelem minden token esetében megméri, a bemenet többi tokenje mennyire befolyásolja az adott token értelmezését. Egy névmásnál például eldönti, melyik korábbi főnévre vonatkozik, azzal, hogy annak nagyobb súlyt ad. Több figyelmi fej párhuzamosan más és más kapcsolatokat tanul meg, és a rétegek egymásra épülve egyre elvontabb összefüggéseket ragadnak meg.


  1. TokenizálásA szöveget a modell tokenekre bontja, szavakra vagy szórészletekre.
  2. ÖnfigyelemMinden token megméri, mennyire fontosak számára a többi token, és ez alapján gazdagítja a jelentését.
  3. RétegekTöbb figyelmi réteg egymásra épülve egyre elvontabb összefüggéseket tanul meg a szövegben.
  4. Következő tokenA modell a szövegkörnyezet alapján valószínűséget ad minden lehetséges következő tokennek, és választ közülük.

1

Egy közös alap. A lineáris modellektől a nagy nyelvi modellekig ugyanaz az ötlet tér vissza. Egy modell paramétereit adatból, a veszteség csökkentésével állítjuk be. A neurális hálók és a transzformerek ezt a gondolatot viszik tovább összetettebb feladatokra.


← Előző lecke Záróteszt kitöltése →

Forrás

A Google Machine Learning Crash Course (developers.google.com/machine-learning/crash-course) és a Stanford CS229 Machine Learning (cs229.stanford.edu) anyaga alapján, magyar feldolgozásban.


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 →