A LiveBench referencia-értékelő rendszer egy újabb lépést jelent a nyelvi modellek (LLM) képességeinek valódi megkülönböztetése terén, amelyek kevesebb saturáció mellett képesek értékes különbségeket mutatni. A rendszer havonta frissül, és nyitott, együttműködő megközelítést alkalmaz, amely hosszú távú értéket biztosít a modellek értékelésére, miközben a kutatás folyamatosan fejlődik. Egy másik figyelemre méltó referencia-értékelő rendszer a ZebraLogic, amely a LLM-ek logikai következtetési képességeit méri logikai rács rejtvények segítségével – ezek a rejtvények a szokásos, például az LSAT-tesztekben használt korlátozási problémák közé tartoznak. Az ilyen rejtvények célja, hogy egyedülálló értékeket rendeljenek N házhoz M különböző jellemzők alapján, figyelembe véve adott nyomokat. A rejtvények megoldásához stratégiai gondolkodás és dedukció szükséges, hogy a helyes válaszhoz jussunk. A ZebraLogic programozottan generált rejtvényei a 2x2-től a 6x6-ig terjednek, és a LLM-eket egy lépéses példák alapján tesztelik.

Bár az emberek képesek megoldani ezeket a rejtvényeket olyan módszerekkel, mint a reductio ad absurdum (ellentmondásos érvelés) vagy az elimináció, a LLM-ek jelentős korlátokkal rendelkeznek a logikai gondolkodás ezen típusában. Még a legjobban teljesítő modell, a Claude 3.5 Sonnet is csupán 33,4%-os pontossággal oldja meg az összes rejtvényt, és csak 12,4%-ot ér el a nehéz rejtvényeknél, míg a kisebb modellek (7-10B paraméter) kevesebb mint 1%-ot érnek el a nehéz feladatokban 2024 decemberi adatok szerint. Eredményeik fontos hiányosságokat tárnak fel a LLM-ek képességeiben, különösen a kontrafaktuális gondolkodás, a reflektív gondolkodás, a strukturált memorizálás és a kompozicionális általánosítás terén.

A mesterséges intelligencia értékelésének egy jelentős mérföldköve volt az Alignment Research Center (ARC) Díj bevezetése, amelyet az ARC Prize Inc. indított, egy non-profit szervezet az általános mesterséges intelligencia (AGI) nyílt fejlesztésének előmozdítására. A díjat Mike Knoop (a Zapier társalapítója) és François Chollet (a Keras megalkotója) hirdette meg, és egy új paradigma váltására utal a nyelvi modellek értékelésében. Az ARC-díj nem a szűk teljesítménymutatókra helyezi a hangsúlyt, hanem azt értékeli, amit „kognitív elegendőségnek” nevez: a modell képességét, hogy értelmes betekintéseket generáljon, és megoldja a nyitott problémákat. Az ARC az alkotó gondolkodásra, a kifinomult érvelésre és a valóban hasznos hozzájárulásokra összpontosít az emberi tudáshoz.

Az ARC hangsúlyozza a kreativitást, és az AGI (Általános Mesterséges Intelligencia) kifejezés is szerepel a nevében, ami sok felkiáltást vált ki, amikor egy modell jól teljesít az ARC tesztjén – vajon már létrehoztunk érzékeny LLM-eket? Habár az ARC nevében ott szerepel az AGI, óvatosnak kell lennünk, mielőtt azt állítanánk, hogy az ARC-AGI feladatok teljesítése közvetlenül az AGI meglétét jelenti. Ahogy François Chollet világosan kifejtette: „Nem hiszem, hogy az emberek igazán értékelnék, mennyire egyszerű volt az ARC-AGI-1, és hogy mit is jelent annak megoldása. Az a legkönnyebb, legegyszerűbb tesztje volt a folyékony intelligenciának, amit el lehetett képzelni. Ha nem sikerült átmenni rajta, az egy szinte teljes képtelenséget jelent az ismeretlen helyzetekhez való alkalmazkodásra vagy problémamegoldásra. Ha sikerült átmenni rajta, az azt jelenti, hogy a rendszered valamilyen mértékű folyékony intelligenciát mutat, tehát már nem csak memorizált készségekről van szó. De ez nem mond sokat arról, mennyire intelligens a rendszered, vagy hogy mennyire van közel az emberi intelligenciához.” Az ARC tehát nem az AGI elérésére mutat, de alapvető különbséget jelent más LLM referencia-értékelő rendszerektől.

A legfontosabb négy jellemző, amely megkülönbözteti az ARC-t más LLM tesztektől, a következők: a központi tudásra való fókuszálás, az újszerű feladatok alkalmazása, a program-szintézis hangsúlyozása és a brutális erőszakos megközelítésekkel szembeni ellenállás. Az ARC feladatai új megoldási programokat igényelnek a különböző rejtvényekhez, ellentétben azzal, amit a hagyományos LLM-ek mémóriájából előhúzott megoldásokkal végeznek. Továbbá, az ARC feladatok célja, hogy ellenálljanak a brute-force megoldásoknak, amelyek a hasonló rejtvények ezreit feldolgozó modellre építenek. Az ARC-tesztek célja nem csak a teljesítmény mérésére szolgálnak, hanem a gépi intelligencia képességét is mérik, hogy alkalmazkodjanak az újdonságokhoz és képesek legyenek problémákat megoldani anélkül, hogy túlságosan támaszkodnának a memorizálásra.

2024 decemberére az ARC referencia-értékelő tesztet még nem sikerült megverni, és az eddigi legjobb eredmények egy 85%-os minimális pontszámot követeltek meg az privát adatbázisban. Ez erőteljesen arra utal, hogy a szakszerű algoritmus-fejlesztések (az emberek kreativitása a LLM-ek építésében) kulcsfontosságúak a célpontok túllépéséhez, nem pedig a hatalmas számítási erőforrások.

A jövőben egyre inkább speciális szakterületekhez kapcsolódó referencia-értékelők jelennek meg, amelyek célja az LLM-ek vizsgálata az egyes iparágakban. Ilyen például a FinBench, amely a pénzügyi szektorban mér a LLM-ek pénzügyi kifejezésmegértése, időbeli gondolkodás, előrejelzés, forgatókönyv-tervezés és numerikus modellezés képességeit. A LegalBench az LLM-ek jogi gondolkodási képességeit teszteli jogi szakemberek által crowdsourcolt feladatokon, míg a BFCL a funkcióhívások teljesítményét vizsgálja. Mindezek új dimenziókat adnak a nyelvi modellek értékeléséhez, amelyek a szűk, konkrét feladatok mellett a modellek különféle, gyakran rejtett képességeit is feltárják.

Mivel a nyelvi modellek tovább fejlődnek és komplexebbé válnak, az értékelési kereteknek is alkalmazkodniuk kell a változó igényekhez. Ma már nemcsak a hagyományos feladat-specifikus mérőszámok alapján történik az értékelés, hanem egyre inkább a nyelvi modellek azon képességeit is figyelembe veszik, amelyek lehetővé teszik, hogy új kihívásokra válaszoljanak, etikailag helyes döntéseket hozzanak, és egyre inkább alkalmazkodjanak a valós világ problémáihoz. Ez az irány mutatja, hogy a nyelvi modellek igazi értéke nem abban rejlik, hogy magas pontszám

Hogyan végezzünk hatékony értékelést a generatív modellek teljesítményének vizsgálatára?

A modellek teljesítményének értékelése egy komplex, de elengedhetetlen része a mesterséges intelligencia alapú alkalmazások fejlesztésének. Ahhoz, hogy objektíven mérhessük a modellek hatékonyságát, különféle értékelési módszerekre és eszközökre van szükség. Az alábbiakban bemutatjuk, hogyan végezhetjük el a modellek értékelését, különös figyelmet fordítva a LangSmith és más eszközök alkalmazására.

A run_evaluation() funkció egyike a legfontosabb eszközöknek, amelyet az értékelési folyamat során használunk. Ez a funkció lehetővé teszi, hogy a LangSmith evaluate() függvényt alkalmazva, helyben vagy távolról futtassuk az értékeléseket. Ha helyben futtatjuk, az eredmények nem kerülnek feltöltésre a LangSmith szervereire, ami fontos, ha az adatok bizalmasságát kívánjuk megőrizni. A függvény bemeneti paraméterei közé tartozik az alkalmazás (jelen esetben a generate_summary() függvény, amelyet kiértékelünk), az adatállomány (amely az erős modell által generált arany standard összefoglalót tartalmaz), és az értékelők listája, amely egyetlen értékelőt, a calculate_scores() függvényt tartalmazza.

A LangSmith lehetőséget biztosít arra is, hogy többször ismételjük meg ugyanazt a kísérletet, ami segít abban, hogy jobban megértsük az LLM modellek nem determinisztikus viselkedését. Az ismétlések száma fontos tényező, mivel minél többször futtatjuk le ugyanazt a tesztet, annál pontosabb képet kapunk a modell teljesítményéről, valamint a mérőszámok megbízhatóságáról. Az általunk végzett tesztekben öt ismétlést használtunk. Az értékelés futtatása során fontos, hogy kontroláljuk, hol tárolódnak az eredmények, és megőrizzük a hozzáférhetőséget a tesztadatokhoz.

A következő kód a run_evaluation() funkció egy lehetséges implementációját mutatja:

python
def run_evaluation(app, model_name, dataset, evaluators, upload_results=False): global xp_model_name xp_model_name = model_name results = langsmith_evaluate( app, client=None, data=dataset, evaluators=evaluators, experiment_prefix=model_name, num_repetitions=5, upload_results=upload_results, ) return results

Ezután készen állunk arra, hogy az alkalmazásunkat teszteljük a különböző LLM modellekkel. Például a generate_summary() függvényt kiértékelhetjük három modell, a gpt-3.5-turbo, gpt-4-turbo és gpt-4o-mini alkalmazásával:

python
app = generate_summary models = ["gpt-3.5-turbo", "gpt-4-turbo", "gpt-4o-mini"] results = [run_evaluation(app, model, dataset=dataset_name, evaluators=[calculate_scores], upload_results=True) for model in models]

A tesztek eredményeit a LangSmith platformon is megtekinthetjük, amely vizualizálja az egyes kísérletek eredményeit, beleértve a végrehajtási időket és a Google BLEU pontszámokat.

A Google BLEU pontszámok alapján az értékelés eredményei érdekes különbségeket mutatnak a modellek között. A gpt-3.5-turbo modell 0.377-es pontszámot ért el, míg a gpt-4-turbo valamivel alacsonyabb, 0.352-es értéket mutatott. Ezzel szemben a gpt-4o-mini modell a legjobb teljesítményt nyújtotta, 0.404-es pontszámmal. A végrehajtási idők szerint a gpt-4o-mini volt a leggyorsabb, mindössze 0.78 másodperces átlagos idővel, míg a gpt-4-turbo a leglassabb, 0.91 másodperccel.

A statisztikai elemzések alapján azt is megfigyelhetjük, hogy a gpt-4-turbo modell a legnagyobb variabilitást mutatta, míg a gpt-4o-mini volt a legkonzisztensabb a teljesítményét és sebességét illetően. Azonban érdekes módon a gpt-4-turbo alacsonyabb BLEU pontszámot ért el, miközben hosszabb idő alatt futott le. Ez arra utal, hogy a modell mérete és számítási összetettsége nem feltétlenül vezet jobb teljesítményhez egy adott összefoglaló készítési feladatnál.

A statisztikai elemzések részletes táblázatban is megjeleníthetők, ahol láthatóvá válik, hogy mely modellek voltak a leghatékonyabbak, és milyen különbségek voltak a végrehajtási idők és pontszámok között.

A LangSmith platform hasznos eszközként szolgál a modellek tesztelésében és kiértékelésében, különösen az összefoglalók készítése és egyéb, hasonló feladatok esetében. A platformon elvégzett kísérletek segítenek az LLM modellek teljesítményének megértésében, de nem szabad elfelejteni, hogy a megfelelő prompt engineering (felkérés tervezés) is kulcsfontosságú minden ilyen modell alkalmazásában. A következő fejezetekben olyan eszközöket mutatunk be, amelyek segítenek az optimális promptok létrehozásában, és így biztosítják a modellek legjobb teljesítményét.

Hogyan működik a vektoralapú keresés és miért fontos?

A vektoralapú keresési rendszerek fontos szerepet játszanak a modern informatikai alkalmazásokban, különösen a természetes nyelvfeldolgozásban és a mesterséges intelligenciában. Ezek az eszközök lehetővé teszik a hatékony keresést és dokumentumok előhívását, amelyek szoros kapcsolatban állnak a felhasználó által megadott kérdésekkel vagy kérésekkel. A következő példán a ChromaDB nevű nyílt forráskódú vektoradatbázis segítségével mutatjuk be, hogyan működik egy ilyen rendszer, és miért fontos, hogy pontosan megértsük a mögöttes fogalmakat.

A ChromaDB egy népszerű nyílt forráskódú vektoradatbázis, amely lehetővé teszi a beágyazások hatékony tárolását és lekérdezését, valamint metadata kezelését és szűrést. Ez az adatbázis könnyen integrálható Python alkalmazásokba, és támogatja a különböző távolságmérőket, amelyek segítenek a vektorok közötti hasonlóságok mérésében. A ChromaDB egyik legfontosabb jellemzője, hogy képes in-memory és perzisztens tárolásra egyaránt, így különböző típusú alkalmazásokhoz és környezetekhez is alkalmazható.

A vektoralapú keresés alapja a dokumentumok beágyazása. A beágyazások olyan numerikus reprezentációk, amelyek a szöveges adatokat egy magas dimenziós vektortérbe transzformálják. A ChromaDB alapértelmezés szerint az all-MiniLM-L6-v2 modellt használja a beágyazások előállításához. Ez a modell képes a szövegeket 384 dimenziós vektorokkal reprezentálni, amelyek lehetővé teszik a dokumentumok közötti hasonlóságok gyors kiszámítását.

A rendszer működését a következő lépések jellemzik. Először létrehozzuk a vektoradatbázist, amelyben a dokumentumokat, például könyvfejezeteket, tároljuk. Ezek a dokumentumok beágyazásokká alakítva kerülnek a rendszerbe. Ezután a felhasználói kérdés alapján a rendszer egy egyszerű lekérdezést hajt végre, és a leginkább releváns dokumentumokat adja vissza, a beágyazások közötti távolságok alapján.

A távolságokat a rendszer a hasonlóságok mérésére használja. A vektorok közötti távolságok meghatározásával a rendszer képes azokat a dokumentumokat kiválasztani, amelyek a leginkább relevánsak a felhasználó kérdésére. A ChromaDB példájában a rendszer az "Introduction", "Input" és "Structured Output" fejezeteket hozza vissza, ahol az "Introduction" a leginkább releváns a kérdéshez, mivel az tartalmazza a könyv célját.

A rendszer alapvető működése mellett azonban fontos megérteni, hogyan történik a beágyazások előállítása és a dokumentumok indexelése. A beágyazások előállítása a természetes nyelvű szövegekből a modell segítségével történik, amelyet a SentenceTransformers könyvtár biztosít. A beágyazások kiszámítása után a dokumentumok közötti hasonlóságot általában koszinusz-távolsággal mérik. Azonban a hasonlóság számítása rendkívül erőforrás-igényes lehet, ha brute-force módszert alkalmazunk, különösen nagy adatbázisok esetén.

A probléma megoldására az indexelés egy elterjedt technika. Az indexelés lehetővé teszi a gyorsabb és hatékonyabb keresést, mivel elkerüli a teljes körű összehasonlítást. Az indexelés különböző stratégiákat alkalmazhat, mint például a fába épített indexek, gráf alapú indexek vagy a kvantizációs technikák, amelyek optimalizálják a keresés sebességét és pontosságát. A nagy adatbázisok esetében az indexelés alapvető fontosságú a teljesítmény és a skálázhatóság szempontjából.

Egy másik fontos optimalizálási technika a reranking, amely lehetővé teszi a kezdeti találatok finomhangolását. A reranking során egy előzetes lekérdezést követően a legjobban illeszkedő dokumentumokat újraértékeljük egy fejlettebb modell segítségével, így javítva a pontosságot. Ez különösen akkor hasznos, ha a keresés során a dokumentumok között finomabb különbségek vannak, amelyeket a kezdeti hasonlósági mérés nem mindig tud jól kezelni.

Fontos megérteni, hogy a vektoralapú keresési rendszerek nemcsak a dokumentumok előhívására alkalmasak, hanem egyéb feladatokra is, mint például a kérdés-válasz rendszerek, a szövegek klaszterezése vagy a személyre szabott ajánlások. Az ilyen rendszerek alapjául szolgáló technikák folyamatosan fejlődnek, és számos alkalmazási területre terjednek ki, beleértve az egészségügyet, a jogi szektort, az oktatást és még sok más területet.

A vektoralapú keresés és a beágyazás alapú rendszerek tehát nem csupán technológiai újítások, hanem alapvető eszközök a tudásmegosztás és az információk keresésének hatékony módjai. A rendszer folyamatos fejlesztése és optimalizálása segíthet abban, hogy a jövőben még pontosabb és gyorsabb információkat nyerjünk ki a rendelkezésünkre álló adatbázisokból.