Kako zapravo funkcionira ChatGPT?
ChatGPT je chatbot temeljen na velikom jezičnom modelu (GPT-3.5 ili GPT-4). Ispod haube, ChatGPT je unaprijed obučena neuronska mreža koja je obučena na impresivnoj količini javno dostupnih tekstualnih podataka s interneta.
Ova ogromna količina podataka omogućuje modelu učenje obrazaca, gramatike, konteksta, pa čak i nekih zdravorazumskih znanja, što mu omogućuje generiranje smislenih i koherentnih odgovora na korisničke upite. ChatGPT ima jedinstvenu sposobnost uključivanja u interaktivne i dinamične razgovore s korisnicima, što ga čini obećavajućim alatom za širok raspon aplikacija.
Što je veliki jezični model
Veliki jezični modeli su algoritmi umjetne inteligencije koji koriste tehnike dubokog učenja poznate kao obrada prirodnog jezika kako bi čitali, razumjeli, generirali i predviđali tekst.
Kada upišete prompt, model ne traži odgovor na internetu, on vam daje odgovor napamet (iako nema glavu). Generira odgovor jednu po jednu riječ, određujući svaku sljedeću riječ na temelju vjerojatnosti izvedenih iz tekstualnih podataka na kojima je trenirao i teksta koji je do sada generirao.
11 milijardi parametara: odgovaranje na pitanja, aritmetika, razumijevanje jezika
Kako je to moguće? Pa, ChatGPT ne treba tražiti informacije na internetu, jer već zna sve (dobro, gotovo). Sva znanja dostupna na Internetu ugrađena su u ChatGPT kroz njegovih 175 milijardi parametara.
62 milijarde parametara: prijevod, zdravorazumsko razmišljanje, dovršavanje koda
Kako se broj parametara modela povećava, u modelu se pojavljuju nove sposobnosti koje nitko nije namjerno dizajnirao.
540 milijardi parametara: logički lanci zaključivanja, prepoznavanje uzoraka, razumijevanje čitanja
Kako je ChatGPT obučen
ChatGPT je obučen na stotinama tisuća knjiga, članaka, dijaloga, uključujući:
- WebText2 (velika biblioteka od preko 45 terabajta tekstualnih podataka)
- Cornell Movie Dialogs Corpus (skup podataka koji sadrži preko 200 000 razgovora između 10 000 filmskih likova u filmskim scenarijima)
- Ubuntu Dialogue Corpus (zbirka od 1.000.000 višestrukih dijaloga između Ubuntu korisnika i tima za podršku zajednice)
- milijarde redaka koda s GitHuba
Prvo, GPT-u je bilo dopušteno obraditi sve podatke kojima je imao pristup bez ikakvog ljudskog vodstva, što mu je omogućilo da samostalno shvati propise i veze koje diktiraju područje teksta (to je ono što se naziva "učenje bez nadzora").
Zatim je za fino ugađanje jezičnog modela primijenjena tehnika koja se zove učenje potkrepljenjem s ljudskom povratnom informacijom (RLHF):
- Ljudski UI treneri vodili su razgovore u kojima su igrali obje strane - korisnika i UI pomoćnika. Imali su pristup prijedlozima pisanim modelima za pomoć pri sastavljanju odgovora. Model je uvježban korištenjem nadziranog finog podešavanja za predviđanje sljedeće pomoćnikove poruke s obzirom na povijest dijaloga.
- Za izradu modela nagrađivanja za učenje s potkrepljenjem prikupljeni su usporedni podaci. Treneri UI-a rangirali su višestruke odgovore modela prema kvaliteti, uzimajući u obzir stvari poput toga je li odgovor imao smisla i je li bio od pomoći. Odabrani odgovori postali su dijaloški skup podataka s novim porukama napisanim modelom.
- Model nagrađivanja stvoren je pomoću tehnike koja se naziva modeliranje nagrađivanja, gdje je model uvježban da predvidi kvalitetu odgovora na temelju usporednih podataka prikupljenih u prethodnom koraku.
Na kraju, ChatGPT je naučio kako odgovoriti u bilo kojoj situaciji, dati precizne i relevantne odgovore i izbjeći potencijalno štetne teme.
Transformer arhitektura
Proces obuke ChatGPT-a uključuje predviđanje sljedeće riječi u rečenici s obzirom na prethodne riječi. Da bi se to postiglo, koristi se Transformer arhitektura (usput, T u ChatGPT označava Transformer), koja se sastoji od slojeva mehanizama samopažnje. Pažnja na sebe omogućuje modelu da odvagne različite riječi u rečenici na temelju njihove važnosti i relevantnosti kako bi točno predvidio sljedeću riječ.
Starije rekurentne neuronske mreže (RNN) čitaju tekst slijeva nadesno. Iako ovo dobro funkcionira kada su povezane riječi susjedne, postaje izazovno kada su na suprotnim krajevima rečenice.
Dakle, kada bi RNN radio s tekstom od jedne stranice, već bi sredinom trećeg paragrafa “zaboravio” ono što je bilo na samom početku.
Nasuprot tome, transformatori su sposobni istovremeno obrađivati svaku riječ u rečenici i uspoređivati svaku riječ sa svim ostalima. To im omogućuje da usmjere svoju "pozornost" na najrelevantnije riječi, bez obzira na njihovu poziciju unutar niza unosa.
Tokenizacija
Važno je napomenuti da transformatori ne rade s pojedinačnim riječima (ne mogu čitati kao ljudi). Umjesto toga, ulazni tekst se dijeli na pojedinačne tokene, uključujući riječi, interpunkcijske znakove i posebne tokene. Tokeni u ChatGPT-u su dijelovi teksta predstavljeni kao vektori (brojevi sa smjerom i položajem).
Blizina tokena-vektora u prostoru određuje njihovu razinu povezanosti: što su bliže, to su srodniji. Nadalje, pozornost je kodirana kao vektor, omogućujući neuronskim mrežama temeljenim na transformatorima da zadrže ključne informacije iz prethodnih dijelova odlomka.
Kada korisnik stupi u interakciju s ChatGPT-om, model prima povijest razgovora kao unos, uključujući korisničke upite i odgovore generirane modelom. Unos se tokenizira i zatim unosi u neuronsku mrežu. Svaki je token povezan s ugradnjom koja predstavlja njegovo značenje u kontekstu razgovora.
GPT-3 je treniran na približno 500 milijardi tokena, što omogućuje njegovim jezičnim modelima da lakše dodijele značenje i predvide vjerodostojan nastavak teksta preslikavajući ih u vektorski prostor. Mnoge se riječi preslikavaju na pojedinačne tokene, iako se dulje ili složenije riječi često raščlanjuju na više tokena. U prosjeku, tokeni imaju otprilike četiri znaka.
Tijekom faze zaključivanja, gdje model generira odgovore, koristi se proces poznat kao autoregresija. To znači da model predviđa jednu po jednu riječ dok se uvjetuje poviješću razgovora i prethodno generiranim riječima. Kako bi se osiguralo da je generirani odgovor koherentan i relevantan, koriste se tehnike kao što su top-p uzorkovanje i temperaturno skaliranje.
Ukratko, parametar top-p daje modelu skup opcija (žetona) za odabir, dok temperatura određuje vjerojatnost odabira određenog tokena. Kada je temperatura postavljena na 0, model će odabrati samo "najpopularnije" tokene (riječi koje se najčešće nalaze zajedno u tekstualnim podacima koje je ChatGPT obučavao):
To nije uvijek sjajno. Više temperature čine rezultate raznolikijima:
Više o ChatGPT parametrima: