AI kezdőknek · Természetes nyelvfeldolgozás · Lecke 20

Nagy nyelvi modellek és a prompt programozás

Ebben a leckében bemutatjuk, hogyan válik egy nyelvi modell tanítás nélkül is sokoldalú problémamegoldóvá, ha elég nagyra nő és elég sok szöveget lát.

Vissza a tananyaghoz


Prompt,mint utasításNagynyelvi modellProgram-szerűkimenet
A promptolás egyfajta programozássá válik, ha a nyelv az utasítás eszköze.

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.


GPT-21,5 milliárd paraméter
GPT-3175 milliárd paraméter

A GPT-3 több mint százszor annyi paramétert mozgat, mint a GPT-2. A GPT-4 becsült mérete már ezen a skálán sem ábrázolható.


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.


Autoregresszív generálás, minden új token a korábbiak fényében születik Nagy nyelvi modell A macska az asztalon ül az eddig leírt szavak minden lépésben visszakerülnek a bemenetre
A modell tokenről tokenre építi a választ, mindig a legvalószínűbb folytatást választva.

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.


Zero-shotpélda nélkül, csak utasításFew-shotnéhány konkrét példávalChain-of-thoughtlépésenkénti gondolkodásra ösztönzés
Három elterjedt promptolási stratégia nagy nyelvi modellekhez.

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ó:

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.


  1. Szerep meghatározásaMegmondjuk a modellnek, milyen szerepben és milyen hangnemben válaszoljon.
  2. Formátum rögzítéseLista, táblázat vagy adott hosszúságú összefoglaló kérése a válaszra.
  3. Példák beillesztéseNéhány jó minőségű bemenet és elvárt kimenet pár a few-shot módszer szerint.
  4. 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


← Előző lecke Következő lecke →

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 →