Mennyire tudnak magyarul az LLM-ek? Pt.2

Még több modell, HuWNLI teszt, gondolatok a vezérelhetőségről

Péter Harang
6 min readJun 2, 2024

Az előző cikkre érkezett pozitív visszajelzések miatt úgy döntöttem, hogy a tervezettnél korábban megosztom veletek a további eredményeket. Az alapvető folyamat nem változott, de:

  • a tesztek közé beillesztettem a HuWNLI-t, és az összes modellre le is futtattam
  • új platformokat illesztettem és ezzel együtt új modellekre végeztem el a méréseket

Fontos! Továbbra is korlátozott méretű teszt adatokon futtatom a méréseket, szóval az eredményeket kéretik ennek megfelelően, iránymutatásként kezelni.

Újdonságok

HuWNLI teszt

Az előző eresztésből kimaradt teszt a HuWNLI. Aki nem ismerné, ez a Winograd-séma magyar megfelelőjének (HuWS) a továbbfejlesztése, kibővítése. A tesztadatokat a Nyelvtudományi Kutatóközpont publikálta, a HuLU csomag része.

Az alapvető feladat az, hogy két nagyon hasonló mondatpár közötti logikai összefüggést kell kiértékelni klasszifikációs problémaként. De ez sokkal szebben le van írva itt. Egy kiragadott példa:

Első mondat: Pisti mindenben Feri példáját követi. Nagyon befolyásolja őt.
Második mondat: Pisti befolyásolja Ferit.
Label: 0

…mert az első mondat alapján Feri befolyásolja Pistit. A tesztadatok nagyon finom különbségeket kérnek számon, és a modelleknek nagyon “oda kell figyelni”, hogy ezeket fel is tudják ismerni.

Érdekesség, hogy a második mondat mindig valamilyen tömörebb kifejezése az elsőnek, és így más tesztekre is lehetne használni, de erről majd máskor.

AWS és Google platform, Titan és Gemini modellek

Mivel a vizsgálódás legfőbb tárgya továbbra is a nagy ökoszisztémákban elérhető modellek (nagyvállalati, szenzitív szektorok által használható, kiszervezésre alkalmas platformok által nyújtott szolgáltatások), szinte kötelező a két nagy szereplőt behúzni a tesztekbe.

A tesztelési architektúra ennek megfelelően most így néz ki:

Rendnek kell lennie — Watson ki, Google / Amazon / Nyelvtudományi intészet be, a lokális kiszolgálást most nem használom (még)

Megjegyzés: az Azure-al külön nem foglalkozok, mert az ott elérhető zárt modellek főleg az OpenAI-ra koncentrálnak.

Az AWS platform-integrációról szóló történetet itt tudjátok olvasni, a Google-ös pedig nemsokára jön.

A modellek tekintetében bekerült a listába a Google Gemini modellcsaládja, az OpenAI GPT-3.5-ös modellje (nem is tudom, hogy az előzőből miért hagytam ki), valamint az Amazon Titan családjából a Premier. Az AWS többi text modellje értékelhetetlen eredményt produkált, ezért nem is folytatom a tesztelésüket (english-only modellek szokásos tulajdonsága).

Frissített teszt eredmények

Nem csigázom tovább a kedélyeket, tudom, hogy mindenkit ez érdekel a legjobban. De előtte egy kis ismétlés az értelmezéshez:

  • A tesztek értékénél a + jel jelenti, hogy MCC értéket számolok (ahol bináris klasszifikációs probléma van), a * pedig a pontossági (accuracy) értéket (ahol a kimenet kettőnél több választható érték közüli lehet).
  • A teszteknél az első oszlop a minőséget jelző érték, a második szám pedig az, hogy hány minta volt értékelhetetlen (a modell nem válaszolt úgy, hogy ki lehessen belőle nyerni bármilyen releváns numerikus értéket).

Vágjunk is bele!

Szabadon hozzáférhető modellek eredményei

Az új teszttől sem vártam sokat, csak megerősítette az eddigi sorrendet. A nagyobb modellek jobban teljesítenek, mint a kicsik.

A Llama2 modellt a legtöbb helyről már kivezették, és emiatt nem is célszerű tovább foglalkozni vele. Ez egy érdekes jelenség, ami a megoldások architektúráját érinti: a modellek nagyon hamar válnak elavulttá, és ezt le kell követni a rendszerekben és a folyamatokban.

Zárt ökoszisztémában elérhető modellek eredményei

Referenciaként továbbra is a Llama3 70B modellt használom, mert az szerepelt a legjobban a nyílt modellek közül.

Eredmények, sorrend a tesztek egyszerű átlaga alapján

A sorrendet egyenlőre még torzítják az értékelhetetlen válaszok, ezen dolgozok, hogy hogy lehetne jól reprezentálni. Alapvetően a Titan Premier vs Sonnet és a Gemini 1.0 vs 1.5 modelleket érinti a kérdés.

A számokban könnyű elveszni, ezért érdemes vizualizálni az eredményeket tesztenként is:

Az MCC értékeket itt átskáláztam [0..1] tartományra, így ugyanaz a skála használható mindenhol

Érdekességek

A legszembetűnőbb jelenség a GPT-3.5 rossz teljesítménye a teszteken. Talán ez volt a legizgalmasabb számomra, főleg azért, mert a szubjektív tapasztalat épp azt mutatja, hogy a nyelvhelyes generálás a modell egyik erőssége. Ennek ellenére az értelmezési-klasszifikáció problémáknál 3 teszten is a leggyengébben szerepel.

A másik furcsaság a Gemini modellek “degradációja”. Az 1.0 Pro modell pozitív eredményei után az 1.5 Pro modell instabilitása, és több teszt esetében a minőségi visszaesés engem nagyon meglepett.

A harmadik izgalmas tényező a Titan Premier modell “berobbanása”. Teljesen pariban van a Sonnet teljesítményével, viszont a tesztek alatt sokkal stabilabbnak bizonyult a működése, és az összes modellhez képest is sokkal jobban vezérelhetőnek bizonyult. Ezek alapján nagyon várom, hogy az Amazon jövőbeli modelljei hogy fognak teljesíteni.

Vezérelhetőség

Már a HuCoPA tesztnél feltűnt, hogy bizonyos modelleket nem lehetett rendesen instruálni, hogy csak számmal feleljenek: több esetben is a promptra elkezdtek kifejezetten hibás(abb) eredményeket generálni. Emiatt kellett bevezetni a regexp alapú tisztítást, hogy egyáltalán valamilyen értelmezhető és automatikusan feldolgozható eredményt kapjak.

A feladat definiálása mellett alapvetően három fajta instrukciót adtam meg:

  • “Válaszolj x-el, ha”, “csak x-el vagy y-al válaszolj”, “ne fűzz hozzá kommentárt” — HuCOLA, HuWNLI
  • “Válaszolj x-el, ha” — HuRTE
  • “Kezd a válaszod…” — HuCoPA, HuSST, HuCB

Az eltérő utasításokra a kisebb modellek miatt volt szükség. Szemmel láthatólag jobban teljesítettek a kevésbé szigorú utasítások hatására a bonyolultabb teszek esetében .

Elvárt válaszok vs. költői szabadság

A triviális esetet, amikor tényleg csak egy számmal válaszol a modell, hagyjuk. Sokkal érdekesebb esetek, amikor:

  • valamilyen formázó karakterrel kezd: **1** blablalblalbala
  • amikor kérés nélkül kommentál: 1, mert a szövegben az áll, hogy “Alison Hargreaves brit hegymászó lesz az első nő…
  • a kiértékelést nem az elejére, hanem a végére helyezi: Mondat helyes: 1
  • helyesen válaszol, de angol kommentárt fűz hozzá sortörésekkel: 1\n(The requested content is present in the original text.)
  • szövegesen megfogalmazza a jó választ, de nem rakja hozzá a szám alapú értékelést (ez a kedvencem): A mondat helyes

Az látszik, hogy rendkívül változatosan tudnak a modellek válaszolni a nem pontosan megfogalmazott kérdésekre. Az instrukciók/prompt-ok esetében is igaz a programozás főtétele: azt fogja (LLM esetben: próbálja) csinálni, amire kéred. De ezt a mondást ki kell bővíteni azzal, hogy (ellentétben egy programkóddal) a a feladat keretein belül a generáláskor olyat is csinálhat, amire nem kéred. Ezt nem feltétlen róhatjuk fel a modellnek, ez az LLM-ek költői szabadsága.

Eredmények

Nézzük akkor, hogy milyen eredménnyel tudják követni egyszerű utasításainkat a modellek:

A prompt-ban előírtaknak megfelelő válasz-generálás aránya

A táblázatból jól látszódik, hogy alapvetően jól kezelik az utasításokat a modellek, de az is látszik, hogy ez “valószínűség alapú”. Amikor egy modelled “többnyire” helyes formátumban válaszol, az egy programkód illesztésnél vagy nem fog működni, vagy készülnöd kell arra, hogy a választ tovább kell “masszírozni”.

Erre egyébként látok példát, amikor továbboktatással kifejezetten olyan modelleket építenek, amik nagyon komolyan veszik a kimenet formázására vonatkozó prompt utasításokat. De a Gemini is nemrég adott ehhez hasonló működésről hírt (forced JSON output).

Wishful thinking

Természetesen az irányítási kísérlet arra irányult, hogy jó lenne ha minden esetben csak a számok jönnének vissza — legalábbis “erre gondolt a költő”.

Ez azért egy olyan lehetőséget is magában tartogatna, hogy ilyen esetekben akár a generált maximum tokenszámot le is lehet venni 1–2 környékére. Ez azért nem lenne rossz védelmi eszköz, főleg, ha olyan modellekkel dolgozunk, amiben elég nagy kontextust bír kezelni.

Ha ezzel a felütéssel újra-értékelem a kimeneteket (tehát az számít jónak, ha a kimenet és a tisztított kimenet megegyezik), akkor egy kicsit másképp alakulnak az eredmények:

Kimenet és a tisztított kimenet megegyezik, tehát csak egy számmal válaszol az LLM

Érdekes, hogy a nem-egyértelmű utasítás ellenére vannak olyan modellek, amik “kitalálják”, hogy “mire gondolunk”. A 100%-os HuCoPA, HuSST és HuCB tesztekre érdemes rácsodálkozni.

Összefoglaló

A további platformok és modellek behozatala egyre érdekesebbé teszi a teszteket. A GPT-3.5 szereplése mindenképpen furcsaság, ennek jobban utána kell majd menni.

Az instrukciós viselkedés, mint jelenség, nagyon fontos, és egyben egy követendő parancs is: nem számíthatunk rá, hogy a modell mindig úgy válaszol, ahogy azt elképzeljük/utasítjuk, és erre kötelező jelleggel készülni kell.

A tesztek során elég sok járulékos adat felgyűlik, ezek kiértékelésével fogom majd folytatni a sorozatot.

--

--

Péter Harang

I design and build complex, heavily integrated IT ecosystems for the banking sector, focusing on e-channels and AI