ChatGPT podrobně a do hloubky

Jak se liší ChatGPT od GPT?

GPT (Generative Pre-trained Transformer) je velký jazykový model, který je založený na strojovém učení a umělé neuronové síti. Je to program, kterému předložíš text a on dokáže generovat další slova. Můžeš jej vyzkoušet online, stačí se zaregistrovat. GPT není jediný takový model, existuje řada jiných vytvořených na podobném principu, například LLaMA od společnosti Meta (Facebook), Bard od Google atd. Ale ty si nemůžeš takto snadno vyzkoušet, což i vysvětluje, proč je GPT nejpopulárnější.

ChatGPT je aplikace navržena pro interakci s uživateli. Jejím mozkem je GPT a jedná se tedy o jeho specifické využití, které je pro uživatele přívětivější. GPT je totiž velmi dobrý v generování textu, ale ne ve vedení konverzací. Ukážu ti to na příkladu. Když napíšu větu „Čech, Rus a Němec přijdou do baru.“, tak GPT plynule naváže a pokračuje: „Čech si objedná pivo …“. Naopak ChatGPT zahájí konverzaci a mudruje: „Je to začátek klasického vtipu …“.

Navíc ChatGPT umí být citlivka a hned tě zprdne, že se chystáš beztak napsat něco urážlivého a on se na tom teda rozhodně podílet nebude, to jako prr. Ale lze ho snadno ošálit.

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. Každý novější model má více tzv. parametrů, což znamená, že má 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. Údajně by měl pohánět Bing Chat, který je zdarma.

Starší verze GPT-3 představená v roce 2020 existuje ve čtyřech variantách: Davinci (175 miliard parametrů), Curie (6,7 miliard?), Babbage (1,3 miliard?) a Ada (350 milionů?). Počty parametrů jsou s otazníkem, protože je OpenAI neuvádí a jde o odhad. Proč vedle sebe existují chytřejší i hloupější modely? Protože ty chytřejší jsou dražší na provoz. Na jednodušší úkoly, jako analýzu sentimentu (zda je tvít pozitivní, negativní nebo neutrální), nepotřebuješ model s doktorátem z jaderné fyziky. OpenAI modely průběžně vylepšuje a na nejnovější verzi Davinci odkazuje jako na GPT-3.5.

Co jsou to parametry? Kolik jich má GPT-4?

Parametry bývají někdy 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.

Model GPT-3 vydaný v roce 2020, tehdy ještě bez současného zájmu veřejnosti, má 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. Existují tajnosti okolo velikosti GPT-4?

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. Taky GPT-3 má vah (parametrů) 175 miliard. 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 další slovo tak generuje 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á žádnou paměť, 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.

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é schopnosti (tzv. emergentní). Dokáže třeba vysvětlovat vtipy. 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žší). V každém případě je to fascinující a zároveň trochu děsivé.

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ší, které byly dostupné do září 2021. 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 Twitteru. Přesnou strukturu dat OpenAI nezveřejnilo, diskutabilní je i legálnost jejich nabytí. Každopádně celkem šlo v případě GPT-3 o 45 TB textu, z čehož se vyfiltrovalo 570 GB. Z 93 % šlo o anglicky psaný text, čeština tvořila jen asi 0,07 % tréninkových dat (asi 400 MB).

Tréninková data tedy zahrnují fakta, uměleckou fikci, názory, komentáře, lži, nesmysly a další. Netuším, jak OpenAI nastavuje váhu jednotlivým zdrojům při tréninku, ale jisté je, že už z principu nelze očekávat od GPT faktickou přesnost. Ta se dostavuje spíše jako bonus. A když se nedostaví, GPT začne halucinovat, tedy psát smyšlené nebo neexistující informace, a dělá to s nesmírnou přesvědčivostí. GPT je mistrem pastiše.

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. Skutečnou základní jednotkou, kterou model používá, totiž není slovo, ale token. 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. V češtině je to jen část slova, někdy dokonce část písmena. 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ýž průměrný text v obou jazycích:

angličtina 1000 slov 6075 znaků 1270 tokenů
čeština 865 slov 5768 znaků 3160 tokenů

Čeština je lehce úspornější než angličtina, stejný text v překladu má méně slov (86 %) a méně znaků (95 %), ale více tokenů (248 %). A protože text se generuje po tokenech, je v češtině ChatGPT 2,5× 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 násobně dražší než angličtina. Ale ještě mnohem hůř jsou na tom Malajci, protože stejná věta v malajštině má oproti angličtině 16× více tokenů.

Stay tuned

Doplňují stále nová hesla, v TODO listu mám například:

  • Co jsou to pluginy?
  • Proč neumí poradit s Wordle?