Mitől lesz egy nyelvi modell "nagy"
Az eddigi leckékben mindig egy neurális hálót tanítottunk be egy konkrét feladatra, címkézett adathalmaz segítségével. A BERT-hez hasonló nagy transzformer modelleknél már más a logika. Előbb önfelügyelt módon, hatalmas mennyiségű szövegen betanítunk egy általános nyelvi modellt, amelyet aztán további, célfeladatra szabott tréninggel specializálunk.
A nagy nyelvi modellek (LLM, angolul large language model) esetében kiderült, hogy egy bizonyos méret felett a modell sok feladatot képes megoldani anélkül, hogy erre külön betanítottuk volna. Ezt a jelenséget elsőként a GPT (Generative Pre-trained Transformer) családja mutatta meg, amelyet az OpenAI fejlesztett. A GPT nem egyetlen modell, hanem modellek sorozata. A GPT-2 még legfeljebb 1,5 milliárd paraméterrel dolgozott, a GPT-3 már 175 milliárdig ment fel, a GPT-4 pedig szöveget és képet is elfogad bemenetként, és becslések szerint több tízezermilliárd paramétert mozgat. A méretnövekedéssel a modell nemcsak folyékonyabban fogalmaz, hanem egyre több apró mintázatot és összefüggést tanul meg a világról, egyszerűen azért, mert emberi tudás óriási mennyiségén tanult.
Szöveggenerálás és a következő szó valószínűsége
A GPT típusú modellek működésének alapja egyszerű elven nyugszik. A modell mindig a következő szó valószínűségét jósolja meg, a már leírt szavak ismeretében. Ha csak a szó önmagában vett gyakoriságát néznénk a szövegkorpuszban, keveset tudnánk kezdeni vele. A GPT ehhez képest feltételes valószínűséget számol, vagyis azt nézi, mi a legvalószínűbb folytatás az adott előzmények után. Ez az autoregresszív generálás lényege, a modell szóról szóra (pontosabban tokenről tokenre) építi fel a választ, és minden új token az addig legenerált szöveg fényében születik meg.
A generálás minőségét egy úgynevezett perplexitás nevű mutatóval szokás jellemezni. Ez azt méri, mennyire "lepődik meg" a modell egy adott mondaton. Ha egy mondat természetes és értelmes, a modell magas valószínűséget rendel hozzá, tehát alacsony a perplexitása. Ha a mondat furcsa vagy értelmetlen, a modell bizonytalanabb, ez magasabb perplexitásban mutatkozik meg. A perplexitás azért hasznos, mert feladat-specifikus adathalmaz nélkül is jelzi, mennyire jó a modell nyelvi értelemben.
- A modell szöveggenerálás közben mindig a legvalószínűbb (vagy egy véletlenszerűen kiválasztott, magas valószínűségű) következő tokent választja.
- Minél nagyobb a tanítóadat és a modell mérete, annál árnyaltabb ez a valószínűségi becslés.
- A szöveg megértése és a szöveg előállítása gyakorlatilag ugyanannak a képességnek a két oldala.
Kontextusban tanulás, zero-shot és few-shot promptolás
A nagy nyelvi modellek egyik legfontosabb tulajdonsága, hogy új feladatot tudnak megtanulni pusztán a bemenetből, anélkül hogy a súlyaikat módosítanánk. Ezt hívjuk kontextusban tanulásnak (in-context learning). Ha egyszerűen csak leírjuk, mit szeretnénk (például "fordítsd le ezt a mondatot angolra"), és a modell rögtön nekilát a feladatnak, azt zero-shot promptolásnak nevezzük, hiszen a modell egyetlen konkrét példát sem kapott a feladatra.
Ha ehelyett a kérés elé beírunk néhány mintapéldát (bemenet és elvárt kimenet párokat), a modell ezekből "kiolvassa" a feladat logikáját, és a mintázatot folytatva old meg egy új, hasonló esetet. Ez a few-shot promptolás, és gyakran meglepően jól működik olyan feladatokon is, amelyekre a modellt sosem tanították direkt módon. A GPT-3-at bemutató tanulmány éppen ezt a jelenséget helyezte a középpontba, innen a cím is: "Language Models are Few-Shot Learners".
A gyakorlatban ez azt jelenti, hogy egyetlen előre betanított modellel nagyon sokféle feladatot le lehet fedni, csak a promptot kell hozzá megfelelően megírni. Ez alapjaiban változtatta meg, hogyan gondolkodunk az NLP feladatok megoldásáról, korábban minden új feladathoz saját, célzottan tanított modellre volt szükség.
Prompt engineering, avagy a prompt programozás
Mivel a modell viselkedését nagymértékben meghatározza, hogyan fogalmazzuk meg a kérést, kialakult egy önálló gyakorlati terület, a prompt engineering, vagy magyarul prompt programozás. Ennek lényege, hogy a megfelelő szóválasztással, formátummal, sorrenddel és példákkal terelhető a modell a kívánt válasz felé, anélkül hogy egyetlen sor kódot is írnánk vagy a modell paramétereihez hozzányúlnánk.
Néhány bevált elem, amivel egy prompt hatékonysága javítható:
- Egyértelmű szerepmeghatározás, amikor a modellnek megmondjuk, milyen szerepben, milyen hangnemben válaszoljon.
- Konkrét formátum megadása a válaszra, például lista, táblázat vagy meghatározott hosszúságú összefoglaló.
- Néhány jó minőségű példa beillesztése a few-shot módszer szerint, hogy a modell lássa a mintát.
- A feladat lépésekre bontása, hogy a modell "gondolkodás közben" jusson el a válaszig.
Ez a téma, vagyis hogy egy nagy nyelvi modellt hogyan lehet üzleti környezetben, napi munkában hatékonyan használni, ma már önálló szakterület. Az AI kezdőknek tananyag ezt a leckét 2022 körül írta, azóta a ChatGPT és a Claude típusú asszisztensek gyakorlatilag mindenki számára elérhetővé tették ezt a technológiát. Aki ezt üzleti mélységben, konkrét eszközök összehasonlításával szeretné megismerni, annak érdemes körülnézni a site guide és blog rovataiban is.
- Szerep meghatározásaMegmondjuk a modellnek, milyen szerepben és milyen hangnemben válaszoljon.
- Formátum rögzítéseLista, táblázat vagy adott hosszúságú összefoglaló kérése a válaszra.
- Példák beillesztéseNéhány jó minőségű bemenet és elvárt kimenet pár a few-shot módszer szerint.
- Lépésekre bontásA feladat részekre osztása, hogy a modell gondolkodás közben jusson el a válaszig.
Korlátok, amikkel érdemes tisztában lenni
A nagy nyelvi modellek lenyűgöző képességei mellett komoly korlátaik is vannak. A modell időnként magabiztosan állít olyan dolgokat, amelyek nem igazak, ezt hívjuk hallucinációnak. Mivel a modell a tanítóadatból tanul, öröklődhetnek benne a forrásszövegekben jelen lévő torzítások (bias) is, legyen szó nemi, kulturális vagy egyéb elfogultságról. A nagy modellek tanítása és futtatása emellett jelentős számítási kapacitást és energiát igényel, ez pedig közvetlen költségkorlátot jelent, és felveti a fenntarthatóság kérdését is.
Éppen ezért a nagy nyelvi modelleket célszerű olyan eszközként kezelni, amely erős segítséget nyújt, de az eredményeit érdemes ellenőrizni, különösen ha a válasz tényeken, számokon vagy jogi, pénzügyi következményeken alapul.
Amire figyelni kell
- Hallucináció, vagyis magabiztosan állított valótlanság
- A tanítóadatból öröklött torzítások
- Jelentős számítási kapacitás és energiaigény
A helyes hozzáállás
- Erős segédeszközként kezelni, nem tévedhetetlen forrásként
- Tényeket, számokat, jogi és pénzügyi állításokat ellenőrizni
- A fontos döntést embernél hagyni
Gyakorlat
Aki szeretné kódban is megnézni, hogyan generál szöveget egy GPT típusú modell, a Microsoft eredeti jegyzetfüzetében talál egy futtatható példát Hugging Face Transformers és PyTorch segítségével. Gyakorlati kód megtekintése
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 →