root@broadband:~# /blog

A Markov-láncoktól a gondolkodó kódmodellekig

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:

  1. Markov-láncok és következő-elem-predikció
  2. neurális hálózatok és paraméterek
  3. tokenek és embeddingek
  4. a Transformer és az attention
  5. az LLM-ek tanítása
  6. reasoning, vagyis összetett következtetés
  7. 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


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.