blog

Ako vychovať žiačika pred tabuľou (Martinus a umelá inteligencia)

utorok 18. apríla 2023 09:02
Ut 18.04. 2023 09:02

Ako milióny ľudí na celom svete, ani my v Explore tíme Martinusu sme neodolali fascinácii GPT. Umelá inteligencia pracujúca s jazykom, ktorá navyše dobre funguje aj so slovenčinou pootvárala množstvo dvier, do ktorých chceme nakuknúť.

Tu je popis jedného malého hrania sa a čo sme sa cestou naučili 🙂

Ľudia používajú GPT na všeličo, generujú eseje, píšu e-maily, ale potom je tu tá náročnejšia časť – ako umelú inteligenciu použiť v biznise a na veľkej škále? Začiatkom roka začali hľadať tie využitia, ktoré by mohli pomôcť riešiť skutočné zákaznícke problémy ľudí túžiacich po dobrej knihe.

V prvej fáze sme si urobili malé “pieskovisko”, nadstavbu nad jednotlivými knihami, kde sme skúšali klásť umelej inteligencii rôzne otázky alebo zadávať úlohy.

No alt text provided for this image
Jeden z našich testovacích pokusov – pre knihy, ktoré majú veľa používateľských recenzií sme nechali umelú inteligenciu písať ich sumár.

Potom sme začali plniť našu virtuálnu nástenku v Miro fantastickými i menej fantastickými nápadmi. Núkajú sa veľké a náročné úlohy ako četbot, ktorý sa s tebou porozpráva o knihách, nástroje, “klikačky”, ktoré pomôžu ľuďom lepšie sa orientovať v tisíckach kníh a vybrať si tú správnu, ale aj šialenosti ako vyhľadávač kníh podľa emoji. Celú veľkú skupinu tiež tvoria nápady na rôzne automatizácie, ktoré by zrýchlili a zjednodušili prácu našim ľuďom, ktorí pridávajú knihy do ponuky.

Keďže sme sa potrebovali veľa naučiť a pohybovali sa na vratkej pôde toho, že stále nevieme čo všetko je možné a s akým úsilím, rozhodli sme sa ako prvý “learning” cieľ vybrať niečo malé, sexi, užitočné, no s relatívne rýchlym koncom, ktorý nám ukáže ako akcelerovať snahy v ďalších projektoch 🙂 

Knihomapa – prvý malý projekt na skúšku

Voľba padla na projekt, ktorý sme interne nazvali Knihomapa – vieme, že pre mnohých ľudí je čítanie kníh aj spôsob ako “virtuálne” cestovať po svete – napríklad chcú čítať knihu, ktorá sa odohráva na miestach, kde sú na dovolenke, alebo len milujú “severské” prostredie, zamilovali sa do Islandu…

Predstavili sme si veľkú mapu, kde si ľudia budú môcť vyberať z najlepších románov odohrávajúcich sa na danom mieste.

Takýto druh údajov nám vydavatelia nedodávajú a pre státisíce kníh je náročne, aby tento druh úlohy robili ľudia. 

Čo keby sme to nechali robiť umelú inteligenciu?

No alt text provided for this image
Náš návrh Knihomapy vo Figme

Najskôr sa nauč správne pýtať

Naša prvá úloha pre umelú inteligenciu znela: 

Nižšie je uvedený popis knihy. Ak sa v ňom vyskytujú údaje o tom, v ktorom meste alebo krajine sa kniha odohráva alebo ktorého mesta alebo krajiny sa týka, vypíš ich cez čiarku. Ak ide o mesto, do zátvorky za jeho názov doplň krajinu.

Aby sme museli čo najmenej programovať a pritom robiť s väčšími dátami, napísali sme si jednoduchý skript do Tabuliek Google, ktorý doplní odpoveď do bunky priamo z API od OpenAI (tu nájdete návod).

Čoskoro sme zistili, že naša “malá a jednoduchá” úloha má množstvo háčikov. Kým pre skvelú detektívku Jo Nesba Krvavý Mesiac krásne určí, že Harry Hole najskôr pobudne v Los Angeles a potom sa presunie do Osla, inde už má s porozumením textu výrazné problémy. Konkrétne:

  • Vymýšľa si – ak sa z textu nedopátra, kde sa dej odohráva, postupuje rovnako ako žiačik pred tabuľou, keď ho vyvolajú a skúša tipovať. Volá sa postava Hans? Skúsim odpovedať, že sa dej odohráva v Berlíne alebo Nemecku
  • Nechá sa dopliesť – ak je autor rodák z Kodane alebo má nedajbože rád mexický guľáš, odpovie to iste aj o jeho knihe
  • Mení formu aj jazyk – ak sa ho opýtate trikrát, trikrát odpovie rôzne – raz vráti dve miesta, raz štyri, raz odpovie v správnom formáte, inokedy celou vetou.

Prvé pokusy priniesli sklamanie: vo výsledku pre 7 z 10 kníh odpovedal GPT-3 nesprávne. 

No alt text provided for this image
Veľmi raná verzia Knihomapy – umelá inteligencia začula v popise knihy španielsky znejúce mená a tak okamžite odpovedala, že dej sa odohráva v Madride.

Zistili sme, že výrazne záleží na tom, ako sa ho pýtame, preto sme začali študovať ako zlepšiť tzv. prompt engineering nášho dopytovania. Postupne sme mu pokus omyl pridávali ďalšie inštrukcie, menili jedno slovíčko za druhé, skúšali úlohy pre neho viac krokovať. Tiež sme skúsili spätnú verifikáciu jeho vlastných odpovedí:

1. Prejdi nasledujúci popis vetu po vete. 
2. Zisti či sa na základe neho dá povedať, že sa dej knihy alebo jeho časť spája krajinou ‘Slovensko’
3. Odpovedz jednou vetou áno alebo nie

Spätným dopytovaním sme síce o dve tretiny zvýšili úspešnosť hľadania správnej krajiny, zároveň sa ale počet výsledkov zredukoval o dve tretiny, takže sa to ukázalo ako ďalšia slepá ulička.

Ako AI odnaučiť vymýšľať si?

Napokon sme upustili od hľadania miest (tento údaj nebýva až tak často uvádzaný v opisoch kníh) a prešli len na hľadania krajín. Naše zadanie pre GPT-3 sa ustálilo na tomto:

Nižšie je uvedený popis knihy. Z tohto popisu urči práve jednu krajinu, v ktorej sa odohráva väčšina deja. Neuvádzaj mestá, iba krajiny. Odpovedz iba názvom krajiny. Ak takú krajinu nevieš určiť, napíš ‘Žiadna krajina’

Jeho úspešnosť na modeli GPT-3.5 na úrovni 58% nie je nijako svetoborná (chceli by ste službu, ktorá pre skoro polovicu kníh neodpovedá správne?), ostala nám ale jedna tajná zbraň: dotrénovanie. Dokážeme sa GPT úspešne učiť, aby menej fantazíroval a odpovedal správnejšie?

Urobili sme teda nudnú domácu úlohu: prečítali ručne popisky tisíc kníh a doplnili správnu informáciu o tom, v ktorej krajine sa odohráva dej.

No alt text provided for this image
Nudná časť našej práce – ručné čítanie popisov kníh a hľadanie, v ktorej krajine sa odohrávajú.

A potom prišiel ten trik – použili sme finetuning proces, v ktorom umelej inteligencii podsuniete správne odpovede a ona sa na ich základe doučí ako nabudúce odpovedať lepšie.

Skúsili sme ju vytrénovať pre rôzne modely GPT, zároveň ako testovaciu vzorku ešte vybrali ďalších 200 kníh, ktorých sa umelá inteligencia nedotkla v procese učenia aby sme mali “benchmark” ako úspešná bude. 

Tu sú výsledky:

No alt text provided for this image

Výsledok nás milo prekvapil – už pri natrénovaní na 1000 tituloch dokážeme dosiahnuť skoro 90% úspešnosť, Zároveň GPT-4, ktorú nám sprístupnili tesne pred koncom našich “hrátok” s GPT-3, naozaj už aj bez natrénovania dokáže výrazne posunúť úspešnosť. 

A tak vznikol tento rýchly prototyp s 5000 titulmi na mape

No alt text provided for this image
Prototyp Knihomapy, vyskúšajte na https://www.martinus.sk/knihomapa/ 

Vyskúšajte na adrese https://www.martinus.sk/knihomapa

Čo sme sa naučili?

  • AI v tejto fáze prináša celkom veľa nečakaných výziev, na ktoré sme doteraz neboli zvyknutí – najviac nás zaskočila miera fantazírovania aj tam, kde potrebujete fakty, našťastie, dá sa skrotiť a vyzerá že postupne, s vývojom, sa situácia zlepšuje
  • Ak s AI začínate, je super si vyrobiť na úvod nejaký malý experiment “v kontrolovanom prostredí”, ideálne bez nejakého super veľkého programovania – po ceste sme sa dosť veľa naučili a ďalšie väčšie projekty, ktoré chystáme, už budeme cielenejšie vedieť usmerniť
  • Nečakane efektívna cesta bolo pracovať v tabuľkách Google len s použitím malého skriptíku, ktorý spomíname v texte vyššie, vyhnete sa mnohým úskaliam programovania nad vašim webom a komplikovania si života.

Ako sa s AI hráte u vás? Potešíme sa vašim skúsenostiam 🙂