Nagy nyelvi modellek

From Systems analysis Wiki
Jump to navigation Jump to search

Nagy nyelvi modell (large language model, LLM) — a gépi tanulás egy olyan modelltípusa, amelyet mély neurális hálózattal valósítanak meg, nagy számú paraméterrel (általában milliárdos vagy annál nagyobb nagyságrendben), és nagy mennyiségű szöveges adaton tanítanak be. A „nagy" jelző ebben az összefüggésben egyszerre vonatkozik a paraméterek méretarányára és a tanítókorpusz terjedelmére, amely a modern rendszerekben eléri a több petabájtot és a billiónyi tokent. Az LLM-modellek tanítása elsősorban ön- vagy félig önfelügyelt (self-/semi-supervised) módszerrel történik: a modell a sorozat következő tokenjét jósolja meg, ezáltal elsajátítja a nyelv statisztikai törvényszerűségeit. A paraméterek, az adatok és a számítási lépések növelése kiszámítható minőségjavulást eredményez, amelyet a scaling laws támaszt alá.

A BERT (2017) megjelenése, és különösen a GPT-3 (2020) óta az LLM-alapú megközelítés vált meghatározóvá a természetes nyelvfeldolgozásban. A modern modellek (GPT-4o, Claude 3, Gemini 1.5, LLaMA 3 stb.) különleges beállítás nélkül képesek szövegeket és programkódot írni, fordítani, összefoglalni, kérdésekre válaszolni és következtetési láncokat felépíteni; a multimodális változatok képeket, hangot és videót is elemeznek. Az alkalmazott feladathoz való alkalmazkodás fine-tuning segítségével vagy prompt engineering, illetve in-context learning révén valósul meg. Az LLM-ek teljesítményük mellett öröklik a forrásadatok torzításait és hibáit, hajlamosak a „hallucinációra", és nagy számítási erőforrásokat igényelnek; ezért a kutatások ma a viselkedés összehangolására, a korpuszok szűrésére és az energiahatékony architektúrákra összpontosulnak.

Architektúra

A modern LLM-ek szinte kivétel nélkül a Transformer (transzformer) architektúrát alkalmazzák – ez egy önfigyelmi mechanizmussal (self-attention) rendelkező hálózat. A transzformer modellt először az Attention is All You Need című cikkben ismertette a Google fejlesztőcsapata 2017-ben.

A Transformer architektúra szekvenciák feldolgozására szolgáló alapvető neurális hálózati séma, amely két logikai modulból áll: enkóderből (kódolja a bemenetet) és dekóderből (előállítja a kimenetet). A modell bemenete egy sorozat, amelyből vektoros reprezentáció (embedding) készül, majd pozicionális kódolás vektora adódik hozzá, ezután az elemek – sorrendtől független módon – az enkódáló komponensbe kerülnek (párhuzamos feldolgozás), majd a dekódáló komponens bemenetére kerül a sorozat egy része és az enkódáló kimenete. Eredményként egy új kimeneti sorozat jön létre.

A transzformer enkódáló komponense több azonos enkóder-rétegből áll; a dekódáló komponens hasonlóképpen épül fel. Maga a transzformer figyelmi modellek sorozata, amelyek az eredeti vektorsorozatot egy új sorozattá alakítják át, ahol minden elem figyelembe veszi a többi kontextusát. Az enkóder a bemeneti adatok rejtett reprezentációit állítja elő, megőrizve az elemek közötti kapcsolatokra vonatkozó információt. A dekóder a rejtett reprezentációk alapján új embedding-sorozatot hoz létre a kimeneti tokenek számára. Ezekből az embeddingekből a nyelvi modell segítségével generálódnak a végső kimeneti elemek.

Mivel a transzformereket eredetileg olyan feladatokra fejlesztették, mint a gépi fordítás, architektúrájuk tartalmaz enkódert (amely a bemeneti szöveget dolgozza fel, például a forrásmondat) és dekódert (amely a kimenetet állítja elő, például a fordítást). Sok nyelvi modellben azonban csak a dekódáló részt alkalmazzák, autoregresszív módban.

A transzformereket három fő konfigurációban alkalmazzák, amelyek mindegyike eltérő módon használja az enkódert és a dekódert, és más-más feladatkörre irányul:

  • Enkóder-transzformerek (kétirányú) szándékosan elrejtett szövegrészletek visszaállítását tanulják meg, ezért jól alkalmazhatók „megértési" feladatokra – osztályozásra, tények kinyerésére, szemantikus keresésre.
  • Dekóder-transzformerek (autoregresszív) a következő token előrejelzésére optimalizáltak, és ott alkalmazzák őket, ahol folyamatos kimenet szükséges: párbeszédes ügynökök, kódkiegészítés, kreatív generálás.
  • Teljes „enkóder + dekóder" sémák ötvözik mindkét megközelítést: az enkóder az egész bemeneti szöveg reprezentációját építi fel, a dekóder pedig erre támaszkodva lépésről lépésre állítja elő az eredményt. Ez a konfiguráció gépi fordításhoz, összefoglaláshoz és kérdés-válasz rendszerekhez a leghatékonyabb.

Tokenizáció

A tokenizáció a szövegfeldolgozás kulcsfontosságú kezdeti lépése a nagy nyelvi modellekben. Ebben a fázisban a szimbólumok folyamatos sorozatát különálló egységekre – tokenekre – bontják. A tokenizáció feladata a szimbólumsorozat strukturált elemek sorozatává alakítása, amelyek biztosítják a neurális hálózat hatékony működését.

Nyelvészeti szempontból a tokenizáció bizonyos mértékig megfeleltethetné a nyelv minimális, önálló jelentéssel vagy funkcionális szereppel bíró egységeinek – például szavaknak, morfémáknak vagy töredékeiknek – elkülönítési folyamatával. Ugyanakkor a token sokszor csupán statisztikailag gyakran előforduló szimbólumsorozat, ezért fontos, hogy ne becsüljük túl az összes token nyelvészeti értelmességét. Az alkalmazott sémától függően token lehet: teljes szó, részszó, egyedi karakter vagy jelölőcímke (például a sorozat elejét és végét jelző markerek).

A tokenizáció lehetővé teszi:

  • a szókincs méretének kezelhető korlátok közé szorítását;
  • a ritka és új szavak helyes kezelését;
  • a szöveg egyértelmű leképezését numerikus azonosítók sorozatára.

A szöveg felosztásához részszavas algoritmusokat alkalmaznak; a legelterjedtebbek a Byte Pair Encoding (BPE), a WordPiece és az UnigramLM. Mindegyik a korpusz leggyakoribb töredékeiből épít szótárt, és azt alkalmazza bármely bemeneti szöveg egymást követő szegmentálásához.

A tokenizációs lépés után a szöveg minden egységét – a tokent – a neurális hálózat számára értelmezhető numerikus reprezentációvá alakítják. Ez a folyamat több egymást követő lépésből áll:

  • Tokenek azonosítóvá alakítása: Minden token egyedi numerikus indexhez rendelődik az előre felépített tokenszótár alapján. A szöveges tokeneket egyedi numerikus azonosítóikkal (ID) helyettesítik. Minden ID a token sorszáma az előre felépített szótárban, ami lehetővé teszi, hogy a neurális hálózat számokkal dolgozzon szavak helyett.
  • Azonosítók embeddingekké alakítása: Minden token-azonosítóhoz kikeresik vagy kiszámítják a megfelelő, rögzített dimenziójú vektort – az embeddinget (embedding). Ez a többdimenziós numerikus reprezentáció felváltja az azonosítót, és már tartalmaz információt a token jelentéséről és kontextuális tulajdonságairól. Minden embedding azonos hosszúságú a feldolgozás megkönnyítése érdekében.
  • Pozicionális kódolások hozzáadása: Mivel a Transformer architektúra önmagában nem veszi figyelembe az elemek sorrendjét, az embeddingekhez pozicionális kódolásokat (positional encodings) adnak hozzá, amelyek információt nyújtanak a token sorozatbeli pozíciójáról. Más szóval, ennek köszönhetően a modell „tudja", hogy melyik token áll az első, második, harmadik helyen és így tovább a mondatban.
  • Bemeneti mátrixok kialakítása: A kimenet egy [длина последовательности × размерность эмбеддинга] méretű mátrix, amely a szöveg kezdeti reprezentációjaként szolgál, és a neurális hálózat, különösen a Transformer önfigyelmi (self-attention) blokkjainak bemenetére kerül. A mátrix minden sora egy tokennek felel meg, a benne lévő vektor pedig hordozza mind a token szemantikai értékét (embedding), mind a szövegbeli pozíciójára vonatkozó információt (pozicionális kódolás).
Текст → Токены → Идентификаторы → Эмбеддинги + Позиционные кодировки → Вход в модель

A figyelmi mechanizmus

A figyelmi mechanizmus (attention mechanism) a Transformer architektúra kulcsfontosságú komponense, amely lehetővé teszi, hogy a tokenek közötti függőségeket a sorozatban elfoglalt távolságuktól függetlenül figyelembe vegyék. Miután a bemeneti szöveg vektorok sorozatává alakult, ez a sorozat a transzformer központi elemébe – a figyelmi blokkba (attention block) – kerül.

A figyelmi mechanizmus azt a módot jelenti, ahogyan a neurális hálózat meghatározza, hogy a bemeneti adatok mely részeire kell nagyobb figyelmet fordítani a sorozat egyes elemeinek feldolgozásakor. Ennek köszönhetően a szöveg egyes töredékeinek vektorai kölcsönhatásba léphetnek egymással, gazdagodnak az információval, és frissítik értékeiket a környező kontextus figyelembevételével. Ezáltal a modell képes hatékonyan megragadni mind a lokális, mind a távolabbi függőségeket a tokenek között, ami lényegesen javítja a komplex szövegstruktúrák értelmezési képességét.

A természetes nyelvben egy szó vagy kifejezés jelentése nem önmagában ragadható meg – a kontextustól, azaz a szövegkörnyezetben lévő többi szótól és szerkezettől függ. A neurális hálózatokban a szöveg vektoros reprezentációkon – embeddingeken – keresztül kódolódik, amelyek numerikusan tükrözik a tokenek lexikai és szintaktikai tulajdonságait. Közvetlen figyelmi mechanizmus nélkül (mint a Transformerben) a kontextusinformáció vagy elveszne nagy távolságokon (mint az egyszerű modellekben), vagy szekvenciálisan terjedne tovább, ami kevésbé hatékony a távolabbi kapcsolatok megragadásában. A természetes nyelvben azonban egy szó vagy szintaktikai szerkezet jelentése dinamikus, és értelmezésének a kontextustól függően kell alkalmazkodnia. A figyelmi mechanizmus a vektoros reprezentációk kontextualizálását végzi, ami azt jelenti (vagy egyszerűen :):

  • Minden token „kiértékeli" saját fontosságát a mondat többi tokenjéhez képest.
  • A frissítési folyamat során a vektoros reprezentációk kölcsönös információval gazdagodnak, tükrözve a szintaktikai függőségeket, szemantikai szerepeket és pragmatikai kontextust.


Ennek az információcserének eredményeként a frissített vektorok nemcsak a token saját jelentését kezdik kódolni, hanem grammatikai kapcsolatait (szintaxis), a leírt helyzetben betöltött szerepét (szemantika) és általános kontextusban való értelmét (pragmatika) is.

Входные векторы токенов (с позициями) → Механизм Внимания (Взаимодействие векторов) → Контекстуализированные векторы токенов (Векторы обогащенные информацией о связях с другими токенами)

A figyelmi mechanizmus technikai megvalósítása

A figyelmi mechanizmus belső felépítése több kulcsfontosságú számítási lépést és komponenst tartalmaz. Minden bemeneti vektorhoz három vektort generálnak: Lekérdezés (Query), Kulcs (Key) és Érték (Value). Ezek kölcsönhatása alapján számítják ki a figyelmi súlyokat, amelyeket aztán a frissített, kontextualizált vektoros reprezentációk előállítására használnak. Elterjedt megközelítés a többfejű architektúra (Multi-Head Attention) alkalmazása az információ párhuzamos feldolgozásához.

Lekérdezés (Query), Kulcs (Key), Érték (Value)

A figyelmi mechanizmus számításának alapja minden bemeneti vektor (amely a token embeddingje és pozicionális kódolása összegeként áll elő) három különböző vektoros reprezentációvá való átalakítása: Lekérdezés (Query, Q), Kulcs (Key, K) és Érték (Value, V).

Konceptuálisan ez a három vektor a következő szerepeket tölti be a figyelmi mechanizmusban:

  • Lekérdezés (Query): Az aktuális token vektorát jelenti, amely megindítja a releváns információ keresésének folyamatát a sorozatban. Tekinthető „kérdésként" vagy „szondaként", amelyet a többi token aktuálishoz viszonyított fontosságának értékelésére használnak.
  • Kulcs (Key): Azonosítóként vagy „címkeként" funkcionál, amely az egyes tokenek tartalmának egy aspektusát írja le. Az aktuális token Lekérdezés (Q) vektorát összehasonlítják a sorozat összes Kulcs (K) vektorával (beleértve a sajátját is), hogy meghatározzák az egyezés vagy relevancia mértékét.
  • Érték (Value): Tartalmazza az egyes tokenekhez rendelt tényleges információt vagy reprezentációt, amelyet továbbítanak. Miután a Lekérdezések és Kulcsok kölcsönhatása alapján kiszámítják a figyelmi súlyokat, ezeket a súlyokat az Érték vektorokra alkalmazzák, hogy kialakítsák a végső súlyozott reprezentációt, amely az adott tokenre vonatkozó figyelmi mechanizmus kimenetét képezi.

Nagy nyelvi modellek tanítása

Az LLM-ek tanítása jellemzően két fázisban zajlik:

  1. Előtanítás (Pretraining) Ebben a fázisban a modell nagy, jelöletlen szövegkorpuszon tanul önfelügyelt tanulási módszerrel (self-supervised learning). A feladat a sorozat következő tokenjének előrejelzéséből (autoregresszió) vagy a rejtett részletek visszaállításából (maszkolásos tanítás) áll. Az előtanítás lehetővé teszi, hogy a modell elsajátítsa a nyelv kiterjedt statisztikai törvényszerűségeit, a grammatikát, a világgal kapcsolatos tényeket és az alapvető következtetési formákat.
  2. Finomhangolás (Fine-tuning) Az előtanítás után a modellt speciális adatokon tanítják tovább meghatározott feladatok elvégzésére, például válaszgenerálásra, szövegosztályozásra vagy utasítások végrehajtására. A modern megközelítések közé tartozik:
    • Felügyelt finomhangolás jelölt adathalmazokon (supervised fine-tuning).
    • Emberi visszajelzéssel megerősített tanulás (RLHF, reinforcement learning from human feedback) a modell viselkedésének a minőségi, biztonsági és hasznosságra vonatkozó célmutatókhoz való igazítása céljából.

Problémák és korlátok

A lenyűgöző előrehaladás ellenére a modern nagy nyelvi modellek (LLM) számos problémával és korláttal rendelkeznek:


I. Számítási és Architektúrális Korlátok

  1. Magas számítási költségek: Az LLM-ek tanítása és üzemeltetése jelentős számítási kapacitást, időt és energiát igényel, ami magas gazdasági és környezeti költségekkel jár. Emellett a generálás autoregresszív jellege (a tokenek szekvenciális létrehozása) korlátozza a párhuzamosíthatóságot, és lassítja a következtetési sebességet a nem autoregresszív megközelítésekhez képest.
  2. Kontextushossz korlátja: A Transformer architektúra számítási költsége és memóriaigénye a sorozat hosszának négyzetével arányosan nő. Ez arra kényszerít, hogy rögzített korlátot (kontextusablakot) állítsanak be a modell által egyszerre feldolgozható szöveg mennyiségére, ami hosszú dokumentumok csonkolásához és az ablakon kívül eső információ elvesztéséhez vezet.


II. A Generálás Megbízhatóságának és Pontosságának Problémái

  1. Hallucinációk: Tényszerűen hibás, de meggyőzően hangzó információ generálása. Ez összefügg azzal, hogy a modell nem rendelkezik valódi világmegértéssel, statisztikai adatmintázatokra támaszkodik, és képtelen a generált állítások ellenőrzésére.
  2. Hibaterjedés (Error Propagation): Az a folyamat, amelynek során a generálás korai szakaszaiban elkövetett hibák felerősödnek, és növekvő pontatlanságokhoz vezetnek a következő lépésekben, csökkentve a szöveg általános minőségét és koherenciáját.
  3. Korlátozott kompozicionalitás: Nehézségek többlépéses logikai következtetést vagy pontos számításokat igénylő feladatoknál (például többjegyű számok szorzása, rejtvények megoldása). A modellek pontossága az ilyen feladatokon a generálás autoregresszív jellege miatt meredeken csökken a nehézség növekedésével.
  4. Ismétlések: Hajlam a szavak vagy mondatfrázisok felesleges ismétlésére, ami csökkenti a szöveg informatív értékét és olvashatóságát. Az edzési sajátosságokhoz és a dekódolási algoritmusokhoz (a következő token kiválasztásához) kapcsolódik.
  5. Fordított átok (Reversal Curse): A modell képtelensége arra, hogy automatikusan általánosítsa az ismereteket fordított irányban: ha az „A az B" állításon tanult, a modell gyakran nem tudja levezetni, hogy „B az A".
  6. A „kreativitás-pontosság" kompromisszum: Szükség van az egyensúly megteremtésére a változatos, eredeti válaszok generálása és a ténybeli pontosság fenntartása között. Az egyik szempontot javítani sokszor a másik rovására megy, például a magas kreativitás összefügghet a hallucinációk növekedésével.

III. Interakció és Irányíthatóság Problémái:

  1. Alacsony irányíthatóság: A generált szöveg stílusának, hangnemének, tartalmának vagy összetett utasítások követésének pontos szabályozásának nehézsége. Az irányíthatóság erősen függ a bemeneti utasítások (promptok) minőségétől és a finomhangolási módszerektől (fine-tuning).
  2. Megfogalmazásérzékenység: A bemeneti kérésben (promptban) bekövetkező kisebb változások lényegesen eltérő válaszokhoz vezethetnek, még akkor is, ha a kérés szemantikája megmarad. Ez megnehezíti a stabil és kiszámítható eredmények elérését.


IV. Etikai és Társadalmi Szempontok:

  1. Az elfogultság és az igazságosság problémái: A modellek reprodukálhatják és felerősíthetik a tanítási adatokban meglévő társadalmi sztereotípiákat, elfogultságot vagy toxicitást. A modellek méltányosságának és biztonságának biztosítása összetett feladat.
  2. Az összehangolás problémája (LLM Alignment): Általánosabb probléma, amely magában foglalja az előző pontot. Ez a modell viselkedésének az emberi értékekkel, szándékokkal és etikai normákkal való összhangba hozásának feladata. Magában foglalja az elfogultság, a hallucinációk és a káros tartalmak generálása elleni küzdelmet, valamint az irányíthatóság javítását.
  3. A rosszindulatú felhasználás kockázatai: Az LLM-ek felhasználásának lehetősége dezinformáció létrehozására és tömeges terjesztésére, adathalászatra, spamre, kártékony kód generálására vagy meggyőző hamis szövegek előállítására, ami veszélyeket jelent az információs és személyes biztonságra, és aláássa a társadalmi bizalmat.

Hivatkozások:

  • „Nagy nyelvi modell" // Vikipédia (Orosz verzió)
  • Large Language Model // Wikipedia (English version)
  • Grand Modèle de Langage // Wikipédia (Version française)
  • Sprachmodell // Wikipedia (Deutsche version)
  • Naveed H. et al. // A Comprehensive Overview of Large Language Models // arXiv:2307.06435, 2023

Irodalom

  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Brown, T. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
  • Hoffmann, J. et al. (2022). Training Compute-Optimal Large Language Models. arXiv:2203.15556.
  • Ouyang, L. et al. (2022). Training Language Models to Follow Instructions with Human Feedback. arXiv:2203.02155.
  • Bai, Y. et al. (2022). Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073.
  • Bubeck, S. et al. (2023). Sparks of Artificial General Intelligence: Early Experiments with GPT-4. arXiv:2303.12712.
  • OpenAI. (2023). GPT-4 Technical Report. arXiv:2303.08774.
  • Touvron, H. et al. (2024). The Llama 3 Herd of Models. arXiv:2407.21783.