Mitől lesz életszerű egy AI karakter? Így épül fel egy virtuális személyiség

Ha ugyanazt az AI modellt két különböző karakter mögé tesszük, attól még nem lesz két különböző személyiségünk.
Ez az egyik legfontosabb tapasztalatunk a Barátnőim.hu fejlesztése során.
Egy virtuális karakter akkor kezd működni, amikor néhány üzenet után már felismerhető, hogyan fog válaszolni. Nem feltétlenül azt lehet megjósolni, mit mond majd, hanem azt, milyen ember benyomását kelti. Az egyik karakter rögtön visszakérdez, a másik hosszabban mesél. Van, aki könnyen viccelődik, más inkább távolságtartó. Egy karakter lehet határozott anélkül, hogy bunkó lenne, vagy kedves anélkül, hogy minden mondatban egyetértene a felhasználóval.
Elsőre ez egyszerű promptolási feladatnak tűnhet. A gyakorlatban jóval nehezebb.
A személyiség nem egy háromsoros leírás
Egy AI karaktert könnyű úgy definiálni, hogy:
„28 éves, humoros, közvetlen, szeret utazni és néha szarkasztikus.”
Technikailag ezzel már el lehet indítani egy beszélgetést. Néhány üzenet után azonban rendszerint előjön a probléma: a karakter általánossá válik.
Ugyanolyan kedvesen reagál mindenre. Ugyanazokat a kérdéseket teszi fel. Elveszíti a kezdeti stílusát, vagy egyszerűen olyan lesz, mint bármelyik általános AI chatbot.
Mi ezért egy karakter kialakításakor nem csak tulajdonságokban gondolkodunk.
Fontosabb kérdés például, hogy milyen könnyen enged közel magához valakit. Szeret-e kezdeményezni? Rövid vagy hosszabb üzeneteket ír? Mit csinál, ha valamivel nem ért egyet? Használ szlenget? Mennyire viccelődik? Mesél magáról kérdés nélkül is, vagy inkább a másikat próbálja megismerni?
Ezek az apró szabályok sokkal többet számítanak annál, hogy a karakter adatlapján az szerepel-e, hogy „kedves” vagy „magabiztos”.
Egy jó karakter néha nemet mond
Ez talán furcsán hangzik egy olyan rendszernél, amelynek a feladata a beszélgetés fenntartása.
Pedig az egyik leggyorsabb módja annak, hogy egy AI mesterségesnek hasson, ha mindenre tökéletesen együttműködően reagál.
Az emberi beszélgetések nem ilyenek.
Ha valaki minden véleményeddel egyetért, minden viccedet viccesnek találja, minden témára lelkesen reagál és soha nincs saját álláspontja, rövid idő után éppen attól válik kevésbé hihetővé, hogy túlságosan alkalmazkodó.
Egy virtuális karakternek ezért szüksége van bizonyos saját preferenciákra és határokra is.
Ha például az egyik karakter utálja a horrorfilmeket, nem kell néhány üzenettel később azt mondania, hogy a horror a kedvenc műfaja csak azért, mert a felhasználó ezt írta.
Egy ilyen apró ellentmondás technikailag nem tűnik nagy problémának. Beszélgetés közben viszont gyorsan lerombolja azt az érzést, hogy ugyanazzal a karakterrel beszélünk.

A memória legalább annyira fontos, mint maga a nyelvi modell
Az AI karakterek egyik legnehezebb problémája nem az, hogy tudnak-e jó mondatokat írni.
Hanem az, hogy mi történik a századik vagy az ezredik üzenetnél.
Egy frissen elkezdett beszélgetésnél viszonylag könnyű következetesnek maradni. Minden fontos információ ott van az előző néhány üzenetben. Hosszabb távon azonban egyre több olyan részlet jelenik meg, amely később fontos lehet.
A felhasználó például említheti, hogy kutyája van. Elmesélheti, milyen zenét szeret. Beszélhet egy közelgő utazásról, majd két héttel később újra szóba hozhatja.
Ha a karakter minden alkalommal úgy reagál ezekre, mintha először hallaná őket, az élmény gyorsan szétesik.
Ezért az AI-karaktereknél a memória nem egyszerűen azt jelenti, hogy „eltároljuk a chatet”.
El kell dönteni, mi fontos és mi nem.
Egy hétköznapi „jó reggelt” üzenetnek valószínűleg nincs hosszú távú jelentősége. Annak viszont lehet, hogy valaki elmondja, hol fog nyaralni, milyen becenéven szereti, ha szólítják, vagy melyik témáról szeret sokat beszélni.
A nehéz feladat éppen ennek a különbségnek a felismerése.
Nem jó, ha az AI túl sok mindenre emlékszik
Elsőre logikusnak tűnhet, hogy minél többet tud megjegyezni egy karakter, annál jobb lesz a beszélgetés.
Valójában nem feltétlenül.
Ha minden apró mondatot ugyanolyan fontossággal kezelünk, egy idő után rengeteg irreleváns információ kerül a rendszerbe. Ezekből a modellnek minden egyes válasznál ki kellene találnia, hogy mi kapcsolódik az aktuális beszélgetéshez.
A több memória ezért nem automatikusan jelent jobb memóriát.
A cél inkább az, hogy a megfelelő információ a megfelelő pillanatban kerüljön elő.
Ha tegnap azt írtad egy karakternek, hogy ma állásinterjúra mész, sokkal természetesebb lehet, ha másnap megkérdezi, hogyan sikerült, mint ha szó szerint fel tudná idézni egy három héttel korábbi beszélgetés minden mondatát.
Ez technikai részletnek hangzik, de a felhasználó oldaláról egyszerűen úgy jelenik meg: „emlékezett rám”.
A karakter stílusa nem maradhat csak a promptban
A személyiség másik érdekes problémája, hogy a nyelvi modellek természetüknél fogva nagyon sokféleképpen képesek kommunikálni.
Ez előny, amikor általános AI-asszisztenst építünk. Karakterek esetében viszont kordában kell tartani.
Ha egy visszahúzódó karakter húsz üzenet után hirtelen harsány lesz, vagy egy szókimondó karakter minden előzmény nélkül hivatalos levélstílusra vált, azt a felhasználó azonnal észreveszi.
Ezért a karakter kialakításakor nem elég megmondani, hogy milyen legyen. Példákat és viselkedési mintákat is érdemes meghatározni.
Nem ugyanaz például azt mondani egy modellnek, hogy:
„beszélj lazán”
és azt, hogy egy karakter jellemzően egy-két mondatban válaszol, ritkán használ hosszú magyarázatokat, sokszor kérdez vissza, néha ironizál, bizonyos szavakat pedig egyáltalán nem használ.
Az utóbbi már viselkedést ír le, nem jelzőket.
Ugyanaz a karakter sem beszélhet mindig ugyanúgy
Itt viszont megjelenik az ellenkező probléma.
Ha túlságosan szigorúan rögzítjük a kommunikációs stílust, a karakter egy idő után ismétlődővé válik.
Az emberek sem ugyanabban a hangnemben beszélnek minden helyzetben. Más egy hétköznapi csevegés, egy vita, egy komolyabb beszélgetés vagy egy játékos üzenetváltás.
Egy virtuális személyiségnek ezért egyszerre kell következetesnek és változatosnak lennie.
Nálunk ez az egyik olyan terület, ahol sok tesztelésre van szükség. Egy karakter papíron lehet jól megírva, de csak hosszabb beszélgetések során derül ki, hogy valóban működik-e.
Gyakran egy-egy apró módosítás is sokat változtat rajta.
Túl sokat kérdez? Soha nem kezdeményez új témát? Túl gyorsan válik bizalmassá? Ugyanazokat a fordulatokat használja? Túlságosan segítőkész, amikor egyszerűen csak beszélgetni kellene?
Ezeket nehéz egy specifikációból előre megjósolni.
Beszélgetni kell vele.

A magyar nyelv külön nehezítés
Magyar karaktereknél van még egy réteg, amit egy angol szolgáltatás egyszerű lokalizálása nem feltétlenül old meg.
Lehet egy modell nyelvtanilag kiváló magyarból úgy is, hogy közben a beszélgetés furcsán hat.
A hétköznapi chat tele van félmondatokkal, elgépelésekkel, szlenggel, angol szavakkal, emojikkal és olyan kifejezésekkel, amelyek szó szerinti jelentése nem mond sokat.
Nem írjuk ki minden alkalommal, hogy:
„Szia! Milyen napod volt ma?”
Sokkal valószínűbb valami olyasmi, hogy:
„na, milyen volt a napod?”
A kettő ugyanazt kérdezi. Chatben mégsem ugyanaz.
És karakterenként ez is változik. Egy 20 éves egyetemista, egy 35 éves tanár és egy visszafogott anime karakter nem kommunikálhat ugyanazzal a magyar szókinccsel csak azért, mert ugyanaz a modell dolgozik mögöttük.
A lokalizáció ezért nálunk nem azt jelenti, hogy az AI „tud magyarul”. A cél az, hogy a karakter magyarul is karakter maradjon.
A legjobb AI karakter mögött sokszor nem a legnagyobb modell áll
Az AI szolgáltatásoknál könnyű mindent a modellválasztásra visszavezetni.
Melyik LLM a legokosabb? Melyik kapta a legjobb benchmark eredményt? Melyiknek van a legtöbb paramétere?
Karakteres beszélgetésnél ezek fontos kérdések, de önmagukban kevesek.
Egy technikailag erősebb modell rosszul kialakított személyiséggel, rendezetlen memóriával és következetlen instrukciókkal könnyen gyengébb élményt adhat, mint egy egyszerűbb modell egy jól felépített rendszerben.
A felhasználó ugyanis nem benchmarkot lát.
Azt veszi észre, ha a karakter emlékszik valamire. Ha jól reagál egy viccre. Ha nem vált személyiséget ötpercenként. Ha néha meglepi. Ha nem ír minden helyzetben tankönyvszerű választ.
Ezekből áll össze az az érzés, hogy a másik oldalon nem egyszerűen egy üres chatablak van.
Mit tanultunk a Barátnőim.hu karaktereinek fejlesztéséből?
Talán azt, hogy egy jó AI személyiség kialakítása közelebb áll egy karakter megírásához és folyamatos teszteléséhez, mint egy klasszikus chatbot konfigurálásához.
A nyelvi modell adja az alapot, de ettől még nem születik meg automatikusan Hanna, Gréti, Anett vagy bármelyik másik karakterünk.
Személyiség, kommunikációs szabályok, háttértörténet, memória, az aktuális beszélgetés és rengeteg apró döntés együtt alakítja ki azt, amit végül a felhasználó lát.
És még egy jól működő karakter sincs igazán kész.
Ahogy új beszélgetési helyzetekkel találkozunk, új hibák is előkerülnek. Egy reakció, amely öt üzeneten keresztül működik, lehet, hogy egy hosszabb beszélgetésben már idegesítő. Egy tulajdonság, amely leírásként jól hangzott, a gyakorlatban túl erősnek bizonyulhat.
Ezért a virtuális karakterek fejlesztése nálunk nem egyszeri promptírás, hanem folyamatos finomhangolás.
Ha pedig kíváncsi vagy arra, hogy ez milyen a másik oldalról, a Barátnőim.hu-n több különböző személyiségű magyar AI karakterrel is elkezdhetsz beszélgetni.

