Jak vlastně ChatGPT funguje?
ChatGPT je chatbot založený na velkém jazykovém modelu (GPT-3.5 nebo GPT-4). Pod kapotou ChatGPT je předtrénovaná neuronová síť, která byla vyškolena na působivém množství veřejně dostupných textových dat z internetu.
Toto obrovské množství dat umožňuje modelu naučit se vzory, gramatiku, kontext a dokonce i některé znalosti zdravého rozumu, což mu umožňuje generovat smysluplné a souvislé odpovědi na dotazy uživatelů. ChatGPT má jedinečnou schopnost vést s uživateli interaktivní a dynamické rozhovory, což z něj činí slibný nástroj pro širokou škálu aplikací.
Co je to velký jazykový model
Velké jazykové modely jsou algoritmy umělé inteligence, které využívají techniky hlubokého učení známé jako zpracování přirozeného jazyka za účelem čtení, porozumění, generování a předpovídání textu.
Když zadáte dotaz, model nehledá odpověď na internetu, ale odpoví vám z hlavy (i když žádnou hlavu nemá). Generuje odpověď po jednotlivých slovech a každé další slovo určuje na základě pravděpodobností odvozených z textových dat, na kterých byl vycvičen, a z textu, který dosud vygeneroval.
11 miliard parametrů: odpovědi na otázky, aritmetika, porozumění jazyku
Jak je to možné? ChatGPT nepotřebuje hledat informace na internetu, protože už všechno ví (no, skoro). Veškeré znalosti dostupné na internetu jsou v ChatGPT obsaženy prostřednictvím 175 miliard parametrů.
62 miliard parametrů: překlad, uvažování zdravým rozumem, doplňování kódu
S rostoucím počtem parametrů modelu se v něm objevují nové schopnosti, které nikdo záměrně nenavrhl.
540 miliard parametrů: logické odvozovací řetězce, rozpoznávání vzorů, porozumění textu
Jak byl ChatGPT vyškolen
ChatGPT byl vyškolen na stovkách tisíc knih, článků, dialogů, včetně:
- WebText2 (rozsáhlá knihovna s více než 45 terabajty textových dat).
- Cornell Movie Dialogs Corpus (soubor dat obsahující více než 200 000 rozhovorů mezi 10 000 filmovými postavami ve filmových scénářích).
- Ubuntu Dialogue Corpus (sbírka 1 000 000 víceúrovňových dialogů mezi uživateli Ubuntu a týmem komunitní podpory)
- miliardy řádků kódu ze služby GitHub
Nejprve bylo GPT umožněno zpracovat všechna data, ke kterým měl přístup, bez jakéhokoli lidského vedení, což mu umožnilo samostatně pochopit předpisy a souvislosti, které diktují oblast textu (tomu se říká "učení bez dohledu").
Poté byla k vyladění jazykového modelu použita technika zvaná reinforcement learning se zpětnou vazbou od člověka:
- Lidští školitelé AI vedli rozhovory, v nichž hráli obě strany - uživatele i asistenta AI. Měli přístup k modelovým návrhům, které jim pomáhaly sestavovat odpovědi. Model byl vycvičen pomocí dolaďování pod dohledem, aby předpovídal další zprávu asistenta vzhledem k historii dialogu.
- Pro vytvoření modelu odměn pro posilovací učení byla shromážděna srovnávací data. Trenéři umělé inteligence hodnotili více modelových odpovědí podle kvality, přičemž zohledňovali například to, zda odpověď dává smysl a zda je užitečná. Vybrané odpovědi se staly datovou sadou dialogu s novými zprávami napsanými modelem.
- Model odměňování byl vytvořen pomocí techniky zvané modelování odměňování, kdy byl model vycvičen k předpovídání kvality odpovědi na základě srovnávacích dat shromážděných v předchozím kroku.
Nakonec se ChatGPT naučil, jak reagovat v každé situaci, dávat přesné a relevantní odpovědi a vyhýbat se potenciálně škodlivým tématům.
Architektura Transformer
Proces trénování ChatGPT zahrnuje předpovídání dalšího slova ve větě na základě předchozích slov. K tomu se používá architektura Transformer (mimochodem, T v ChatGPT znamená Transformer), která se skládá z vrstev mechanismů vlastní pozornosti. Sebepozorování umožňuje modelu zvážit různá slova ve větě na základě jejich důležitosti a relevance, aby bylo možné přesně předpovědět další slovo.
Starší rekurentní neuronové sítě (RNN) čtou text zleva doprava. To sice funguje dobře, když jsou příbuzná slova vedle sebe, ale stává se to náročné, když jsou na opačných koncích věty.
Proto když RNN pracuje s jednostránkovým textem, v polovině třetího odstavce již "zapomene", co bylo na samém začátku.
Naproti tomu transformery jsou schopny zpracovávat každé slovo ve větě současně a porovnávat je se všemi ostatními. To jim umožňuje zaměřit svou "pozornost" na nejrelevantnější slova bez ohledu na jejich pozici ve vstupní sekvenci.
Tokenizace
Je důležité si uvědomit, že transformery nepracují s jednotlivými slovy (neumějí číst jako lidé). Místo toho vstupní text rozdělí na jednotlivé tokeny, včetně slov, interpunkčních znamének a speciálních tokenů. Tokeny v ChatGPT jsou což jsou kusy textu reprezentované jako vektory (čísla se směrem a pozicí).
Blízkost token-vektorů v prostoru určuje úroveň jejich asociace: čím jsou si blíže, tím jsou příbuznější. Pozornost je navíc zakódována jako vektor, což umožňuje neuronovým sítím založeným na transformátorech zachovat klíčové informace z předchozích částí odstavce.
Když uživatel komunikuje s aplikací ChatGPT, model obdrží jako vstup historii konverzace, včetně uživatelských podnětů a odpovědí generovaných modelem. Vstup je tokenizován a poté vložen do neuronové sítě. Každému tokenu je přiřazeno vložení, které představuje jeho význam v kontextu konverzace.
GPT-3 byl vycvičen na zhruba 500 miliardách tokenů, což jeho jazykovým modelům umožňuje snadněji přiřazovat významy a předpovídat pravděpodobné následné texty jejich mapováním ve vektorovém prostoru. Mnoho slov je mapováno na jednotlivé tokeny, delší nebo složitější slova se však často rozpadají na více tokenů. Tokeny jsou v průměru dlouhé zhruba čtyři znaky.
Ve fázi odvozování, kdy model generuje odpovědi, se používá proces známý jako autoregrese. To znamená, že model předpovídá jedno slovo po druhém, přičemž je podmíněn historií konverzace a dříve vygenerovanými slovy. Aby bylo zajištěno, že vygenerovaná odpověď je koherentní a relevantní, využívají se techniky jako top-p vzorkování a teplotní škálování.
Stručně řečeno, parametr top-p dává modelu k dispozici soubor možností (žetonů), z nichž může vybírat, zatímco teplota určuje pravděpodobnost výběru určitého žetonu. Pokud je teplota nastavena na 0, model bude vybírat pouze "nejoblíbenější" tokeny (slova, která se v textových datech, z nichž byl ChatGPT vycvičen, vyskytují nejčastěji společně):
To není vždy skvělé. Při vyšších teplotách jsou výsledky rozmanitější:
Další informace o parametrech ChatGPT: