
A Markov-láncoktól a gondolkodó kódmodellekig
A Markov-láncoktól a gondolkodó kódmodellekig
Hogyan jutottunk el az egyszerű valószínűségi modellektől a modern nagy nyelvi modellekig?
Bevezetés
A mesterséges intelligenciáról gyakran úgy beszélünk, mintha a modellek „tudnák” a válaszokat, vagy úgy gondolkodnának, mint az emberek. A valóság ennél érdekesebb és árnyaltabb.
A modern nagy nyelvi modellek (LLM-ek) szövegrészletek valószínűségi folytatásait tanulják meg. Ebből az alapötletből — megfelelő architektúrával, nagy mennyiségű adattal és sok számítással — meglepően összetett képességek bontakozhatnak ki.
Ebben a cikkben végigkövetjük az út fő állomásait:
- Markov-láncok és következő-elem-predikció
- neurális hálózatok és paraméterek
- tokenek és embeddingek
- a Transformer és az attention
- az LLM-ek tanítása
- reasoning, vagyis összetett következtetés
- kódmodellek és gyakorlati korlátok
Fontos: az itt szereplő példák szemléltető, általános példák. Nem egy konkrét modell belső működését vagy bizalmas rendszerinformációit írják le.
1. A Markov-lánc: a következő lépés valószínűsége
Képzeljünk el egy rendszert, amely mindig azt próbálja megbecsülni, mi következik az aktuális állapot után. Egy időjárási példában:
Napos → Napos 0,7
Napos → Felhős 0,2
Napos → Esős 0,1
Ez egy egyszerű Markov-modell: a következő állapot valószínűségét elsősorban a jelenlegi állapot alapján becsüli. Hosszabb sorozat generálásakor a rendszer minden lépésben újra választ:
Napos → Napos → Felhős → Esős → Felhős → ...
A nyelvi modellek alapötlete hasonló, csak a „következő állapot” itt gyakran a következő token — egy szó, szórészlet vagy írásjel — és a figyelembe vett előzmény sokkal gazdagabb.
2. Miért nem elég egy egyszerű Markov-lánc?
Egy rövid előzmény alapján sokszor nem lehet jól megjósolni a következő szót:
A könyv, amelyet tegnap vettem, nagyon ...
Itt több korábbi elem számít: a mondat témája, a nyelvtani szerkezet, a „könyv” szó, az időbeli utalás és az egész szöveg hangulata. A természetes nyelvben ráadásul a távoli részek is hatással lehetnek egymásra.
A neurális hálózatok azért hasznosak, mert nem előre rögzített szabályokat tárolnak minden lehetséges mondatra. Ehelyett sok példából megtanulják azokat a mintázatokat, amelyek segítenek a következő token kiválasztásában.
3. Paraméterek: tudás elosztva, nem rekordokban
Egy neurális hálózat sok számból — paraméterből — áll. Ezek például ilyen értékek lehetnek:
0,001253
-1,872000
0,417801
Egyetlen paraméter önmagában általában nem jelent egy konkrét tényt vagy fogalmat. A modell képességei sok paraméter együttes működéséből alakulnak ki.
Ezért félrevezető úgy elképzelni, hogy a modellben van egy bejegyzés:
Budapest → Magyarország fővárosa
Inkább egy hatalmas, összekapcsolt számtérben alakulnak ki olyan konfigurációk, amelyek bizonyos szövegkörnyezetekhez hasonló válaszokat tesznek valószínűvé.
4. Tokenek és embeddingek: a szöveg számmá alakítása
A modell nem közvetlenül „szavakat” lát. A bemenetet tokenekre bontja:
„A Transformer érdekes.”
↓
[„A”, „ Transformer”, „ érdekes”, „.”]
Minden tokenhez tartozik egy számsor, az úgynevezett embedding:
„kutya” → [0,31, -0,88, 1,72, 0,04, ...]
Ez a számsor nem szótári definíció. A tanítás során azonban a hasonló környezetben előforduló tokenek gyakran hasonló helyre kerülnek a vektortérben.
farkas
•
kutya • • macska
csavarhúzó •
Az embeddingekben nemcsak szavak közti hasonlóságok jelenhetnek meg. A vektortér bizonyos irányai vagy régiói nyelvtani, tematikus, stilisztikai és egyéb összefüggéseket is hordozhatnak.
5. A Transformer: a szöveg kapcsolatainak kezelése
A Transformer-architektúrát a Attention Is All You Need című tanulmány mutatta be. A kulcsötlet az attention, magyarul figyelmi mechanizmus.
Egy mondat feldolgozásakor nem minden tokennek kell ugyanannyira figyelnie minden másik tokenre. A figyelmi mechanizmus megtanulja, mely kapcsolatok fontosak az adott helyzetben.
„A kutya meglátta a labdát, ezért felvette.”
↑
Mire utal a „felvette”?
Szemléltetve:
tokenek → kapcsolatok súlyozása → kontextusfüggő reprezentáció
Az attention három gyakran használt fogalommal írható le:
- Query: mit keres az adott token?
- Key: milyen információt kínál egy másik token?
- Value: milyen tartalmat érdemes onnan átvenni?
A gyakorlatban sok figyelmi fej dolgozik párhuzamosan. Az egyik fej a nyelvtani kapcsolatokat, egy másik a távoli utalásokat, egy harmadik a formázási mintákat kezelheti — ez csak intuitív magyarázat, nem merev szerepkiosztás.
További érthető, vizuális magyarázatok:
6. Hogyan tanul egy LLM?
Előtanítás
Az előtanítás során a modell sok szöveges példán gyakorolja a következő token megjóslását:
Bemenet: A nap ma nagyon
Cél: süt
Ha a modell rossz valószínűségeket ad, a tanítási algoritmus kis mértékben módosítja a paramétereket. Ezt nagyon sokszor megismételve a hálózat egyre jobban modellezi a nyelv statisztikai szerkezetét.
Finomhangolás és visszajelzés
Az előtanított modell még nem feltétlenül jó asszisztens. További tanítási szakaszok segíthetnek abban, hogy:
- kövesse az utasításokat;
- strukturált, érthető választ adjon;
- jelezze a bizonytalanságot;
- kerülje a nem megfelelő vagy veszélyes válaszokat;
- jobban használjon eszközöket és formátumokat.
Ezek a folyamatok különböző adatkészleteket, emberi vagy automatikus értékelést, valamint biztonsági teszteket használhatnak. A részletek modellenként és fejlesztőnként eltérnek.
Az OpenAI fejlesztői anyagaihoz jó kiindulópont az API dokumentáció, a modellekről pedig az OpenAI Models oldal.
7. Reasoning: amikor a válasz több lépésből áll
Egy egyszerű kérdésre gyakran elég egy gyors asszociáció:
Mi Franciaország fővárosa? → Párizs
Egy összetett feladatnál azonban a helyes válaszhoz köztes lépésekre van szükség:
feladat
↓
terv készítése
↓
köztes eredmény
↓
ellenőrzés vagy javítás
↓
végső válasz
A nyelvi modell technikailag ilyenkor is tokeneket állít elő. A különbség az, hogy a köztes lépések új kontextust hoznak létre, amelyre a következő lépések építhetnek.
Ez olyan, mintha a modell nem egyetlen nagy ugrással próbálná elérni a célt, hanem részfeladatokra bontaná a problémát. A modern reasoning-modellek tanításában és használatában ezért fontos lehet a több számítási idő, a több jelölt megoldás létrehozása és azok ellenőrzése. Erről az OpenAI „Learning to reason with LLMs” összefoglalója ad további hátteret.
Fontos különbséget tenni a hasznos levezetés és a modell teljes belső működésének bemutatása között. Egy jó válasz tömör, ellenőrizhető indoklást adhat anélkül, hogy a rendszer minden belső köztes állapotát szó szerint megjelenítené.
8. Mitől különlegesek a kódmodellek?
A programkód is szöveg, de szigorúbb szerkezete van. Egy kódmodellnek egyszerre kell figyelnie:
- a szintaxisra;
- a változók és függvények kapcsolataira;
- a típusokra és interfészekre;
- a projekt környezetére;
- a tesztekre és hibajelzésekre;
- a feladat üzleti céljára.
Egy kódgenerálási folyamat például így nézhet ki:
feladat leírása
↓
releváns fájlok és függőségek megértése
↓
megoldási terv
↓
kód módosítása
↓
tesztelés
↓
hibajavítás és felülvizsgálat
A kódmodell nem azért megbízható, mert mindig „tudja” a helyes programot. Hanem azért lehet hasznos, mert gyorsan tud mintákat javasolni, alternatívákat összehasonlítani és visszajelzés alapján javítani. A végső ellenőrzés — tesztek, kódreview, biztonsági vizsgálat — továbbra is fontos.
Andrej Karpathy Neural Networks: Zero to Hero kurzusa gyakorlati úton mutatja be, hogyan épülnek fel neurális hálózatok és GPT-szerű modellek az alapoktól.
9. Mit nem jelent mindez?
Néhány gyakori félreértés:
„A modell egy adatbázisból másolja ki a választ.”
Nem ez a legjobb általános modell. A rendszer a paramétereiben elosztott mintázatokat használja, és ezek alapján generál új tokeneket. Ettől még előfordulhat, hogy egy tanítási példára vagy ismert szövegre túlságosan hasonlóan emlékszik.
„A modell mindig igazat mond, ha magabiztos.”
A valószínű nyelvi folytatás nem azonos a tényszerű igazsággal. A modell tévedhet, hiányos lehet a kontextusa, vagy meggyőzően fogalmazhat hibás állítást.
„A reasoning emberi tudatot bizonyít.”
A több lépésben végzett következtetés erős problémamegoldó viselkedést eredményezhet, de ebből önmagában nem következik emberi tudat, szándék vagy tapasztalat.
10. A nagy kép
Az út röviden:
Markov-lánc
↓ következő elem valószínűsége
neurális hálózat
↓ tanult paraméterek
embedding
↓ fogalmak számtérben
attention
↓ kontextus és kapcsolatok
Transformer
↓ skálázható szövegfeldolgozás
LLM
↓ előtanítás + finomhangolás + ellenőrzés
reasoning és kódolás
A modern LLM-ek nem egyetlen „varázslatos” technikából állnak. Több ötlet épül egymásra: valószínűségi predikció, vektorreprezentációk, figyelmi mechanizmus, nagy léptékű tanítás és visszajelzésen alapuló javítás.
Talán a legfontosabb tanulság ez: a modell képességei nem egyetlen paraméterben vagy egyetlen adatbázis-rekordban találhatók meg. Sok egyszerű számítás összehangolt működéséből jelenik meg az a viselkedés, amely kívülről nyelvi megértésnek, következtetésnek vagy programozási segítségnek tűnik.
További tanulási források
- Vaswani és mtsai.: Attention Is All You Need
- Jay Alammar: The Illustrated Transformer
- 3Blue1Brown: Neural Networks
- Andrej Karpathy: Neural Networks: Zero to Hero
- OpenAI: API dokumentáció
- OpenAI: Elérhető modellek és képességek
Szerkesztői megjegyzés: a cikk oktatási célú, leegyszerűsített magyarázat. A konkrét modellek architektúrája, tanítási folyamata és képességei eltérhetnek, ezért műszaki vagy üzleti döntés előtt mindig az adott rendszer hivatalos dokumentációját és teszteredményeit érdemes megvizsgálni.
