ChatGPT pod pokličkou

Jak to celé funguje a co se děje v hlavě robota. Nahlédneme do útrob GPT, podrobně a do hloubky.

Co je vlastně GPT?

Odborník by řekl, že GPT je velký jazykový model založený na strojovém učení a umělé neuronové síti, ale pojďme si jednoduše říct, že je to program, kterému předložíš kus textu, a on dokáže generovat jeho pokračování. GPT je zkratkou slov Generative Pre-trained Transformer, čímž je myšleno, že text generuje, že je předtrénovaný a že v případě nouze se může proměnit ve žlutý Volkswagen Brouk … haha, velmi vtipné … ve skutečnosti je Transformer název architektury, se kterou v roce 2017 přišli borci z Google a která odstartovala současný rozkvět AI.

Vymysleli totiž způsob, jak může stroj udržet pozornost u delšího textu. Zatímco Transformer zvládne koukat na několik stránek současně a sledovat souvislosti mezi všemi slovy, jeho starší bratříček RNN četl text průběžně a měl přitom lehounce zhoršenou krátkodobou paměť, jako jistá postava ve filmu Samotáři. Třešničkou na dortu je, že Transformer dokáže své výpočty rozdělit mezi víc počítačů, takže je mnohem rychlejší. Znáš to, jeden dělník vykope jámu za 5 hodin, zatímco milion dělníků ji vykope vmžiku.

GPT není jediný takový model, existuje řada dalších podobných. Například Llama od firmy Meta (ano, od Facebooku), Gemini od Google atd. Dříve nebylo tak snadné tyto modely vyzkoušet, což vysvětluje, proč je GPT nejpopulárnější.

Jak se liší ChatGPT od GPT?

Jak jsem říkal, GPT je program, kterému předáš kus textu a on v něm pokračuje dál. Můžeš si to vyzkoušet online, stačí se zaregistrovat a poté v rozhraní přepnout Mode na Complete. Zkus si i pohrát s nastavením „temperature“, což je parametr určující míru kreativity.

ChatGPT, na druhou stranu, je odrůda GPT speciálně vyšlechtěná na vedení dialogů. Rozdíl je v tom, že když GPT předhodím větu „Čech, Rus a Němec přijdou do baru.“, tak plynule naváže a pokračuje: „Čech si objedná pivo …“, kdežto ChatGPT zahájí konverzaci a povídá: „Je to začátek klasického vtipu …“. A lidi si povídají rádi, takže se ChatGPT během krátké doby katapultoval mezi světové fenomény. I když jde o specifikovanou verzi obecnějšího nástroje, který tu byl už pár let.

Pro některé úkoly může být čisté GPT vhodnější než ChatGPT. Napadá mě psaní scénáře. Definoval bych postavy, jejich vztahy, motivace, načrtnul zahájení příběhu, nastavil temperature a nechal GPT, aby ve vyprávění pokračoval. Další věc je, že ChatGPT je citlivka, má tendenci dbát, aby diskuse zůstala korektní, a vyhýbá se všemu, co by třeba mohlo někoho urazit.

V čem se liší GPT‑3 od GPT‑4?

Jde o verze modelů. Každý z nich byl ve své době zjevením, ale pak přišel model novější a překonal předchůdce. Novější modely mají více tzv. parametrů, což znamená, že mají lepší porozumění pro složité otázky. V současnosti je nejlepší model GPT‑4. Byl natrénován v roce 2022, poté testován, vylepšován a vydán v roce 2023. V rámci ChatGPT je dostupný jen v placené verzi. Dostupný je také přes Bing Copilot, který je zdarma.

OpenAI modely průběžně vylepšuje a na nejnovější verzi používanou v bezplatném ChatGPT odkazuje jako na GPT‑3.5. V listopadu 2023 přestavila model GPT‑4 turbo, který má 16× větší paměť než původní GPT‑4.

Proč vedle sebe existují menší a větší modely? Protože ty menší jsou levnější na provoz a rychlejší, přitom na řadu úkolů plně stačí. Na shrnutí textu, analýzu sentimentu (zda je tvít pozitivní, negativní nebo neutrální) a tak dále, nepotřebuješ model s doktorátem z jaderné fyziky.

Co jsou to parametry?

Parametry (neboli váhy) bývají přirovnávány k synapsím v mozku. Čím víc jich je, tím inteligentnější je model. Čím víc parametrů, tím víc Havel.

Jejich počet je čistě věcí rozhodnutí tvůrců modelu. Starší verze GPT‑3 představená v roce 2020, tehdy ještě bez současného zájmu veřejnosti, měla 175 miliard parametrů. V zahraničních článcích píší 175 bilionů, ale to je proto, že v Americe je billion totéž, co naše miliarda (má to zajímavé historické pozadí). A kolik parametrů má GPT‑4? To není známo, jsou kolem toho tajnosti.

Jak funguje GPT?

Nejprve si prosím přečti, co jsou to neuronové sítě, a hlavně jak se trénují. Máš? Ani jsi na to neklikl, že? Hele vážně, přečti si to a pak se vrať.

Jazykové modely jsou také neuronové sítě. A podobně se trénují. Jen místo obrázků s písmeny se jim předčítají knihy, slovo od slova. A ony mají za úkol, což tě možná překvapí, předpovědět slovo následující. Jejich předpověď porovnáme se skutečným dalším slovem a pokud se netrefí, upravíme váhy tak, aby se příště trefily lépe. A tak pokračujeme až dojdeme na konec knihy. Pak otevřeme další, až postupně přečteme všechny. A pak celou Wikipedii. A ještě pořádný kus internetu.

Vznikne model, který ve svých vahách zachytí principy stavby vět, čímž získává schopnost generovat sémanticky a gramaticky správný text. Když mu zadám výzvu „Čech, Rus a Němec přijdou do“, tak ví, že bude následovat buď bar, hospoda nebo restaurace, a přesně s jakou pravděpodobností. Zvolí jedno slovo, v čemž hraje roli i náhoda (míře jejího vlivu se říká temperature). Slovo připojí na konec. A generuje slovo další – na základě výzvy rozšířené o to, co už vygeneroval. A stále dokola. Když vidíš ChatGPT vypisovat v okně prohlížeče slovo za slovem, nejde o žádný vizuální efekt – systém opravdu takto funguje. Nemá žádný prostor, kde by si připravil plán, co se chystá napsat. Vymýšlí slovo za slovem, jak výborně ukazuje toto výukové video.

Možná si říkáš, že to není možné, jak by bez přípravy mohl generovat třeba rýmy v básních? Možné to opravdu je, ostatně taky v rýmování není zrovna přeborník.

Kolik GPT přečetl knih?

GPT byl trénován na obrovském množství textů z různých zdrojů, jako jsou knihy, články, Wikipedie a další. Což z něj dělá největšího knihomola světa. Tréninková data jsou tak rozsáhlá, že celá Wikipedie tvoří jen několik procent celkové velikosti. Knihy tvoří zhruba 15 %. Zbytek jsou především internetové stránky, magazíny nebo třeba diskuse na Redditu. Přesnou strukturu dat OpenAI nezveřejnilo a moc dobře vědí proč, jelikož legálnost jejich nabytí je diskutabilní.

Celkem šlo v případě GPT‑3 o 45 TB textu, z čehož se ale vyfiltrovalo odhadem jen 1.6 TB. Pro srovnání, celé Shakespearovo dílo představuje zhruba 5 MB textu. Z 93 % šlo o anglicky psaný text, čeština tvořila pouhých 0,07 % tréninkových dat. Na druhou stranu, není to tak špatné, jsme v první dvacítce jazyků (nejspíš proto, že 1 % všech textů na internetu je v češtině, jak fakt). Třeba taková tamilština, kterou mluví 90 milionů lidí, měla zastoupení 40× menší.

Tréninková data tedy zahrnují fakta, uměleckou fikci, názory, komentáře, lži, dezinformace, propagandu, konspirační teorie a tak dále. Z nich získá znalosti o jazyce. Kvantita je důležitější než kvalita. Ale takový model bys asi nechtěl vzít domů a ukázat rodičům. Takže se dále vylaďuje na kvalitnějších datech, což ho učiní společensky přijatelným. Nakonec je vyleštěn na základě zpětné vazby od testerů.

Jak to, že GPT chápe svět?

Všimni si zajímavé věci: Během tréninku nikdo modelu nevysvětluje podstatu slov. Co je podstatné jméno, co sloveso atd. Aby mohl odhadovat nejpravděpodobnější následující slovo ve větě, musel sám rozklíčovat větnou stavbu a gramatiku. Ba co víc! Musel porozumět významu slov. Porozumět znalostem světa. Ukazuje se, že když vytvoříme obrovský model a natrénujeme ho na stovkách gigabajtů textu, objeví se v něm samy od sebe nečekané (tzv. emergentní) schopnosti. Dokáže třeba vysvětlovat vtipy. Překládat. Programovat. Zkrátka projevovat určitého druhu inteligenci.

Proč se to děje, je otázka, na kterou zatím nemáme jasnou odpověď. A právě tady se střetávají různé názory: Jedni v těchto schopnostech spatřují skutečnou inteligenci a tvrdí, že GPT už dnes může navrhovat vědecké hypotézy, zatímco druzí to považují za sofistikovanou hru, která porozumění světu zdařile imituje (což je mi bližší). Zda by mohla být naše inteligence redukována na jazykový model je otevřená filosofická otázka. V každém případě je to fascinující a zároveň trochu děsivé.

Co jsou tokeny? Jaký je poměr tokenů/slov/znaků?

Na tomto webu jsem mnohokrát zmiňoval, že GPT generuje slova, nebo že si ChatGPT pamatuje jen určitý počet slov v konverzaci. Jenže to jsem malinko kecal. Zjednodušoval. Ve skutečnosti model nepoužívá jako základní jednotku slova, ale takzvané tokeny. V angličtině mnohdy token představuje jedno slovo, ale může jít o část slova, interpunkční znaménko nebo speciální symbol (viz přehled tokenů GPT 4). V češtině je to jen část slova, někdy dokonce část písmene. Třeba takový smajlík může mít 8 tokenů. Jak se slova dělí do tokenů si můžeš vyzkoušet v nástroji tokenizer.

Pro zajímavost jsem spočítal, kolik znaků a tokenů má tentýž beletristický text v obou jazycích:

angličtina 1000 slov 5666 znaků 1290 tokenů
čeština 826 slov 5248 znaků 2399 tokenů

Čeština je lehce úspornější než angličtina, stejný přeložený text má méně slov (83 %) a méně znaků (93 %), ale více tokenů (186 %). A protože text se generuje po tokenech, je v češtině ChatGPT 2× pomalejší než v angličtině. Nepříjemný důsledek to má na používání placeného API, které se účtuje podle počtu tokenů, takže čeština je 2× dražší než angličtina. Ale ještě mnohem hůř jsou na tom Thajci, protože stejná věta v thajštině má oproti angličtině 4× více tokenů.

Co je to fine-tuning?

Fine-tuning, česky jemné doladění, je způsob, jak přizpůsobit jazykový model konkrétním potřebám. Vezmeš už předtrénovaný model a dáš mu další speciální trénink v podobě ukázkových příkladů, ze kterých pochopí, co se od něj očekává. Přitom se přímo aktualizují parametry modelu a vzniká tak nový odvozený model.

Například ChatGPT byl vyšlechtěn pomocí fine-tuningu z obecnějšího GPT modelu, aby získal schopnost vést diskuse. A taky byl politicky korektní.

Lze rozpoznat generovaný text?

Existuje nástroj, co rozpozná, že text generovala AI? Nebo jak Google přistupuje k obsahu generovanému pomocí GPT?

Odpověď je jednoduchá: žádný takový nástroj neexistuje a nikdy existovat nebude. Nemá jej ani Google (byť tvrdí něco jiného). Kdyby totiž takový nástroj existoval, bylo by možné jej použít k učení jazykových modelů. Tedy jednoduše, levně a automatizovaně zlepšovat jazykové modely, aby generovaly text, který už nástrojem odhalit nepůjde. Čímž by ten nástroj přestal existovat.

Stay tuned

Stále doplňuji nová hesla. V TODO listu mám například:

  • Proč neumí poradit s Wordle?