A nagy nyelvi modellek tanításáról - egyszer?en
[In English here...] A mesterséges intelligenciás (MI) nagy nyelvi modellek (Large Language Models = LLM), mint például a "generatív" GPT modellek sokaknak misztikusnak, úgyis hamar elmúló hullámnak, esetleg a j?v? zálogának vagy gyilkosának t?nnek. Elképeszt? mennyiség? információ zúdult ránk err?l a technológiáról az elmúlt évben. Próbálok a magam fejében is rendet teremteni a fogalmak, technológiák, módszerek k?z?tt. Talán másnak is segít kicsit demisztifikálnom ezzel az ?sszefoglalómmal az MI-t. Egyben ez helyre is rak t?bb olyan tapasztalatot, élményt, amit a laikusok is tapasztalhattak a szabadon elérhet? chatGPT-n, vagy hasonló alkalmazásokon keresztül.
E cikkben négy fogalmat, a módszer használatának, struktúrájának négy szintjét próbálom helyretenni magamban is:
Nézzük részletesebben!
Alap nagy nyelvi modellek
Kulcskifejezések: Természetes nyelv értés, Nyelvi képességek
Ez az alap. A már 50 éve használt neurális hálózatok továbbfejlesztése néhány igen friss technikával, megtámogatva irdatlan mennyiség? digitalizáltan elérhet? adattal az internetr?l és más forrásokból, plusz jó nagy hardver kapacitás. Szóval részben nem új, de a technológia fejl?dése, a számítógépek számára elérhet?, betáplálható adatok (sz?vegek, dokumentumok) mennyiségének robbanásszer? n?vekedése hirtelen meglódította a fejlesztést, és ennek kapcsán kifejlesztettek néhány új technológiai megoldást is.
A lényeg az, hogy ezeket ?sszerakva tényleg valami új tulajdonsága, képessége "jelent meg" ezeknek a számítástechnikai megoldásoknak. Bár technikailag azt csinálják, hogy a beadott sz?veget a legvalószín?bb módon folytatják, mindez úgy t?nik a felhasználónak, mintha a rendszer nagyon jól értené a nyelv logikáját, és ezen keresztül komoly ismeretei lennének a k?rül?ttünk lev? világ és a társadalom m?k?désének alapjairól.
Ezen a szinten a kommunikáció során k?z?lt információk tényszer?sége, valóságtartalma csak annyira pontos, amennyire a tanító hatalmas mennyiség? adat azt lehet?vé teszi. Az internetes k?z?sségi platformokon, a digitalizált irodalmi, t?rténelmi, média sz?vegekben tényeket, egyszer?sítéseket, elavult információkat, fikciókat, elmélkedéseket, tévedéseket és hazugságokat is olvashatunk akármir?l. Hát EBB?L tanult "beszélni" a rendszer. Egy kisgyerek hasonlóan tanulja a nyelvet használni, és hogy hogyan használja majd (nyelvi kompetencia), miket mond (információk tényszer?sége), az a k?rnyezetét?l függ. A gyerekek ezt évekig tanulják, a nagy nyelvi modellek pár nap alatt, de hatalmas adatmennyiség és nagy hardverkapacitás segítségével.
Ez a tanítás alapvet?en konkrét emberi visszacsatolás nélkül m?k?dik. A modell - mint a kisgyerek - a rengeteg információ alapján maga rakja ?ssze a nyelvi készségét, alakítja ki a világról az alapvet? képét.
Finomhangolás (fine-tuning)
Kulcskifejezések: Szabályk?vetés, Folyamatkezelés, Kimenet formázás
A cégek (OpenAI, Google, Meta, IBM, Anthropic stb.) és kutatási csoportok által hatalmas munkával, nagy pénzb?l el?állított nagy nyelvi modelleket már sokkal kisebb munkával tovább lehet tanítani, finomhangolni lehet. Ehhez is kell azért munka és gépi kapacitás, de már kisebb cégeknél, vagy akár otthon is elérhet? - függ?en az alap modellt?l és a céloktól.
A finomhangolás els?rend? célja nem tényszer? tudásátadás a modell számára. Ilyenkor általában a kommunikáció szabályaira, stílusára, formájára lehet inkább hatást gyakorolni. Kommunikációs példák sokaságát kell erre használni azért, hogy a rendszer rátanuljon, hogy az adott szituációra milyen formában kell reagálnia. Meg lehet tanítani, hogy inkább beszélget?s, cseveg? legyen (chatbot) vagy inkább konkrétabb, válaszadásra koncentráló. Hogy megadott formában keressen, bányásszon ki információt a bevitt sz?vegb?l. Hogy egy speciális üzleti, kommunikációs folyamatot k?vessen. Hogy a sz?veg alapján számítógépes kódot, képet vagy videót generáljon. Vagy hogy érveljen, és saját érvei alapján fogalmazza meg a végs? válaszát.
Tulajdonképpen egy konkrét szituáció kezelésére tanítjuk meg a már egyébként jól beszél? alkalmazást. Fontos, hogy nem kell minden esetet megtanítanunk. Nyelvi képességei és alapvet? "világ ismeretei" miatt jól általánosítanak az ilyen nyelvi modellek. Hasonló ez ahhoz, amikor egy alkalmazottat egy cég felvesz, és megtanítja neki a cég m?k?dési szabályait, hogy hogyan kell az ügyeket kezelnie, milyen formában kell az ügyfelekkel, partnerekkel, kollégákkal kommunikálnia. Nem lehet ilyenkor minden elvileg lehetséges esetet megtanítani. A kolléga, illetve a nyelvi modell majd használja a tanult sémákat olyan váratlan esetekben is, amelyekkel addig nem találkozott.
A finomhangolási tanítás során a tréner általában visszajelez, hogy megfelel?-e a rendszer válasza, és addig tanít, amíg megfelel? szint? - bár nyilván nem 100%-os - a szabályk?vetés. Ez hasonló ahhoz, amikor az új kollégát tanítjuk, majd tesztet végzünk, annak eredményér?l visszajelzést adunk, majd szükség szerint bizonyos témákban tovább tanítunk.
A tanító elkészít egy néhány száz, esetenként akár t?bb ezer, t?bb tízezer elemb?l álló listát, amely tartalmaz egy szituációt, és az arra adandó helyes formátumú választ. A lista egy részével tanít, a másik részét a visszakérdezésre, ellen?rzésre használja. Nos, az ilyen tanító készlet min?sége és terjedelme az, ami nagy mértékben meghatározza a finomhangolt modell teljesítményét.
Infókereséssel támogatott sz?veggenerálás (RAG)
Kulcskifejezések: Saját tudásbázis, Tényszer? információk kommunikálása
A nyelvi modell tehát jól kezeli a nyelvet, és ha finomhangolva volt, akkor a szabályokat is. De a k?z?lt, illetve használt információk tényszer?sége csak az alap tanítóhalmaztól függ. Lehet benne b?ven téves, hamis vagy elavult információ. Nincs benne aktuális üzleti és személyes információ, speciális tényszer? adatok (raktárkészlet, termékleírások, árak, speciális jogszabályok, friss tudományos információk, stb., stb.).
Mivel a rendszert úgy alkották, hogy a kezdeti sz?veget folytassa, ezt akkor is igyekszik megtenni, ha az eredeti tanító sz?vegeiben egymásnak ellentmondó adatok vannak. S?t akkor is, ha nincs adat. Ilyenkor a szavak egymáshoz való általános viszonyai alapján egy valószín?nek hangzó (!) sz?veget, választ generál. úgy mondják, hogy "hallucinál". Persze tulajdonképpen mindig hallucinál - ez a m?k?désének az alapja -, de akkor használjuk ezt a kifejezést, ha egyértelm?en nem tényszer? a sz?vege.
Az ilyen nem kívánatos eseteket kezelni kell valahogy! A retrieval-augmented generation (RAG) technika ilyen. Ennek során konkrét, aktuális, tényszer? információkat tárolunk el saját adatbázisokban. A nyelvi modellt promptolással (lásd alább) vagy finomhangolással (lásd fentebb) megpróbáljuk rávenni, hogy amennyiben valamilyen konkrét információra van szüksége, akkor a válaszát úgy fogalmazza meg, mintha az egy harmadik személynek, vagy egy számítógépnek szólna mintegy információ kérés formájában. Az ilyen MI generált sz?veget nem a beszélget? partnernek továbbítjuk, hanem egy háttér rendszer, adatbázis lekérdezésére használjuk. A háttérrendszerb?l visszakapott sz?veges választ, számokat, listákat visszaadjuk a nyelvi modellnek. Az MI a beszélget? partner kérdését ezzel az információval kiegészítve, azt belesz?ve "folytatja a sz?veget", ezzel várhatóan egy nyelvileg korrekt módon megfogalmazott és aktuális, tényszer? választ ad a partner felé.
A cégbeli új alkalmazott tanításának példáját használva, ez a szint azt jelenti, hogy megtanítjuk, ne csak "zsigerb?l" válaszoljon az ügyfélnek, kollégának, hanem nézzen utána az információknak a rendelkezésre álló tudásbázisokban. Az azokból visszakapott (retrieved = R) adatok segítségével (augmented = A) fogalmazza (generation = A) meg a válaszát a partnernek (retrieval-augmented generation = RAG).
Prompt mérn?kség (prompt engineering)
Kulcskifejezések: Irányítás, Vezérlés, ?sszehangolás
A nyelvi modellt (amit esetleg finomhangoltunk és elláttunk RAG képességgel) még egy módon befolyásolhatjuk. Beszúrhatunk egy speciális sz?veget az egész beszélgetés elejére. Ez további kontextust ad a modellnek ahhoz, hogy az elvárt választ generálja. A modell ezt is a bemeneti sz?veg részeként kezeli az utána lev? beszélgetéssel együtt, és ezt az egészet "folytatja". Egyes modell gyártók megpróbálnak trükk?kkel, finomhangolással ráer?síteni, hogy ezt a bevezet? sz?veget, a PROMPT-ot a rendszer kül?n?s súllyal, figyelemmel kezelje.
A promptban, mint kontextusban t?bb dologról írhatunk:
Látszik, hogy a prompt hasonló dolgokat befolyásol, mint a finomhangolás és a RAG. Ha adunk egy-két példát, akkor a finomhangoláshoz hasonlóan a kommunikáció formáját befolyásoljuk. A beszúrt információk meg a RAG szerepét helyettesítik. Ha a tesztek során elegend?nek bizonyul egy jól megfogalmazott prompt a nyers nyelvi modellel, akkor elhagyható a k?ltséges, munkaigényes finomhangolás és/vagy RAG.
A promptolásnak azért számos korlátja van. A promptnak és a teljes eddigi beszélgetésnek bele kell férnie abba az adatablak méretbe, amit a nyelvi modell kezelni tud. Mondhatni ez a modell r?vidtávú memóriája. Bár ez a méret egyre nagyobb az újabb és újabb nyelvi modellekben, de ez n?veli a számítási er?forrás igényt. Gyakran a prompt nagyon elbonyolódik, mert igyekszünk minden információt benne megadni, és minél t?bb potenciális formai, folyamatbeli esetet lefedni. Ha ennek ellenére is kibújik a kontrollunk alól a modell - nem k?veti a folyamatot, hallucinál -, akkor bele kell vágni a finomhangolásba és/vagy a RAG megvalósításába.
Ráadásul általában a kezelt szavak (tokenek) száma befolyásolja az árat is azon keresztül, hogy részben ett?l függ a hardverhasználati igény. A nagy munkamemóriának nagy a k?ltsége. Ugyan csak 3-6 cent ezer szavanként (tokenenként), de mivel egy beszélgetésfolyam sok oda-vissza válaszolgatásból áll, ha a prompt és a beszélgetés teljes sz?vege nagy, akkor bizony néhány dollárba is kerülhet egy-egy csetelgetés.
?sszefoglalás
A nagy nyelvi modelleket tehát alapvet?en négy szinten kezeljük. Mind a négy szint fontos ahhoz, hogy a felhasználás során jó m?k?dést kapjuk:
Egy megoldás kialakításakor tehát mindenképpen fontos a megfelel? alap modell kiválasztása. Ezt megpróbálhatjuk a feladathoz alakított prompttal megfelel?en kontrollálni. Ha kellenek speciális adatok, vagy ha túl sok a hallucináció, akkor saját, frissen tartott, ellen?rz?tt adatokkal kell segíteni a beszélgetést (RAG). Ha a folyamat, a formátum k?vetésével van gond, akkor finomhangolni kellhet a modellt.
Alább egy beszélgetés részlet olvasható egy demó színvonalú gyüm?lcsárus csetbot m?k?déséb?l. A virtuális ELADó az üGYFéLLEL és a korrekt adatokat biztosító SZáMíTóGéPPEL beszélget. Az elvárt formátum k?vetését néhány példát és szabály leírást tartalmazó prompttal meg tudtam oldani, nem kellett a modellt finomhangolni. A raktárkészlet olyan információ, amit nem tudunk a virtuális eladó nyelvi készségére bízni (simán behallucinálna, kitalálna információt), ezért ahhoz küls? adatokat visszaadó RAG konfigurációt valósítottam meg. A modell alapján a virtuális eladó számítógép program által jól kezelhet? formátumban adja meg a kérést a paraméterekkel. A számítógép gépi formátumú válaszát belesz?vi a vev?nek adott válaszába:
ELADó: üdv?z?llek! Miben segíthetek?
üGYFéL: Van banán?
ELADó: Megnézzük a raktárkészletet. [>SZáMíTóGéP] GET /készlet-infó?termék=banán
SZáMíTóGéP: {"termék":"banán", "típus":"", "készlet":0, "egység":"kg"}
ELADó: Sajnos nincs jelenleg banán a raktáron. Esetleg valami mást nem kér?
üGYFéL: Talán egy kis szilvát.
ELADó: Rendben! [>SZáMíTóGéP] GET /készlet-infó?termék=szilva
SZáMíTóGéP: [{"termék":"szilva", "típus":"Bluefre", "készlet":20, "egység":"kg", "ár":480, "pénznem":"HUF"},{"termék":"szilva", "típus":"President", "készlet":1, "egység":"kg", "ár":435, "pénznem":"HUF"}]
ELADó: Van készleten bluefre és president szilva is, bár a presidentb?l csak egy kiló. Melyikb?l venne?
Remélem, sikerült éreztetnem, hogy tényleg valami kül?nleges, újszer? technológia jelent meg, amit rengeteg dologra lehet majd felhasználni. Az ilyen megoldások létrehozásához újszer?, vagy eddig nem az el?térben lev? képességek, tudások szükségesek. Egyszer?bb rendszereket akár programozásban, s?t informatikában kevéssé járatos emberek is majd létrehozhatnak. Komolyabb üzleti megoldásokhoz azért jó pár informatikai technológia ismeret szükséges.