GPT-3 (2020): Stroj koji piše
Stroj je već 2020. znao pisati, kodirati i lagati s ravnim licem — svijet je samo trebao dvije godine da to primijeti.
Ljeto 2020. Svijet je zatvoren u sobama, gleda kroz Zoomove prozorčiće i broji dane karantene kao zatvorske crte na zidu (pogl. 1 — ako si zaboravio kako je to izgledalo, tu je podsjetnik). Ljudi peku kruh, gledaju „Tiger Kinga” i pokušavaju se sjetiti kad su zadnji put nosili hlače s gumbima. Nitko ne gleda u OpenAI. Zašto bi? To je mala, čudna firma koja je prije godinu dana objavila da neće objaviti svoj model jer je „preopasan”, što je 2019. zvučalo kao marketinška gluma, a 2020. — čekaj malo, možda i nije.
U pozadini, dok ostatak planeta broji role toaletnog papira, nekoliko tisuća GPU-a u OpenAI-jevim podrumima žvače tekst. GPU je, ako te nitko dosad nije mučio tim pojmom, grafička kartica — čip koji je izvorno trebao samo crtati eksplozije u igricama, ali se pokazalo da je jednako dobar u tome da istovremeno žvače milijune matematičkih računa, što ga čini savršenim alatom za treniranje ovakvih modela, samo umjesto eksplozija sad računa vjerojatnost sljedeće riječi u rečenici. Ne par knjiga. Ne Wikipediju. Velik, ogroman, nezamislivo velik dio pisanog interneta — forume, blogove, Reddit rasprave o tome je li Die Hard božićni film, znanstvene radove, loše fanfictione i dobre pjesme. Sve to se pretvara u 175 milijardi brojčića koje nitko od nas nikad neće vidjeti, ali koji će, ispada, znati pisati bolje od tvog kolege iz srednje škole.
Ideja iza svega toga nije nova — o transformerima smo već pričali (K6, pogl. 17), o tome kako je netko 2017. skužio trik koji je strojevima omogućio da čitaju tekst drukčije, pametnije, paralelnije. OpenAI je uzeo taj trik i napravio ono što inženjeri rade kad shvate da imaju dobru ideju: pritisnuli su gumb za veće. Veći model. Više podataka. Više struje, više novca, više GPU-ova nego što je zdravo za bilo koju firmu koja još nema prihod. Kladili su se na tezu da je razlika između „radi” i „radi zapanjujuće dobro” samo — skala. Ništa duhovnije od toga. Samo veličina.
I onda, negdje sredinom te godine, dok je svijet vjerovao da je maksimalna tehnološka drama „Zoom mi se zamrznuo na sastanku”, OpenAI je tiho pustio GPT-3. Ne na naslovnicu New York Timesa. Ne kao appku koju skineš na telefon. Kao API — zamisli to kao vrata na stražnjoj strani zgrade kroz koja se dva programa mogu ‘dogovoriti’ i razmijeniti podatke bez ikakvog ljudskog sučelja između njih. I to još u beti, s listom čekanja, kao da su htjeli da to prvo probaju samo ljudi koji znaju što gledaju.
Ono što nitko od njih nije znao — pa ni ljudi iz OpenAI-ja, vjerojatno — jest da je motor upravo bio dovršen. Da je revolucija, ona prava, ona koja će za dvije godine natjerati stotinu milijuna ljudi da razgovaraju sa strojem u chat-prozorčiću kao da im je prijatelj, tehnički već postojala. Nedostajalo je samo jedno: vrata. Ključ je bio u bravi, ali brava je bila zaključana u API listi čekanja, s dokumentacijom koju je razumjelo tek par tisuća ljudi na planeti. Tišina prije oluje nije tišina jer se ništa ne događa. Tišina prije oluje je zato što se sve već događa, samo iza zatvorenih vrata.
Da vidimo koliko je 2019. godina uopće bila davno. Jedna nova bolest se upravo pojavila u Wuhanu i još je nitko ne zove pandemijom. Ti si vjerojatno gledao neku seriju, jeo u restoranu bez brige, i ako si čuo za GPT-2, čuo si za njega kao za nešto što je „preopasno da se objavi”. Da, stvarno. OpenAI je tu rečenicu izgovorio ozbiljnim glasom, u priopćenju za javnost, o modelu kojemu se danas možeš smijati u lice, toliko je bezopasan.
Ali krenimo redom, jer ovo je kronika, a kronika voli početak. GPT-1 je 2018. bio zanimljiv samo ljudima iz struke — dokaz koncepta, ništa za naslovnice. GPT-2 je godinu dana kasnije napravio prvi mali potres: pisao je skladne odlomke, izmišljao vijesti, nastavljao priče na način koji je zvučao — ne savršeno, ali dovoljno dobro da uzbuni ljude koji brinu o dezinformacijama. OpenAI je odlučio da ga ne pusti javno u punom izdanju. Objavili su manju verziju, pa srednju, pa tek mjesecima kasnije i punu, uz opravdanje da čovječanstvo treba vremena da se navikne na strojeve koji pišu kao ljudi.
Jer dok je javnost raspravljala o etici GPT-2, u OpenAI-u se odvijala sasvim druga vrsta rasprave — opklada, gotovo religijska u svojoj jednostavnosti. Zvala se „scaling hipoteza”, a glasi otprilike ovako: uzmeš isti recept — neuronsku mrežu, transformer arhitekturu iz K6, pogl. 17 — i samo ga naguraš. Više parametara. Više teksta za učenje. Više računalne snage koja to sve žvače tjednima. Ne mijenjaš genijalno novu ideju, ne izmišljaš čarobni algoritam. Samo — više svega.
Zvuči kao varanje, zar ne? Kao da netko kaže da će auto voziti brže ako mu samo dodaš još motora, i još motora, i onda čuda. Većina inženjera bi ti rekla da to ne funkcionira tako, da postoji točka nakon koje dodatni motor samo troši gorivo bez ikakve dodatne brzine. Struka je dugo mislila isto o jezičnim modelima — da će rast krivulje performansi u nekom trenutku zaravniti, kao svaka razumna krivulja u prirodi. OpenAI je odlučio provjeriti tu granicu ozbiljno, umjesto teoretski, i tako je nastao GPT-3.
Brojka koju svi pamte je 175 milijardi parametara, i ta brojka je toliko velika da ti mozak jednostavno odustane od pokušaja da je zamisli — pa da razjasnimo što uopće znači. Parametar nije ništa mistično. To je jedan brojčić, jedan gumbić koji određuje koliko jaka je veza između dvije točke unutar mreže, podešen tijekom treniranja tako da model bolje pogađa sljedeću riječ u rečenici. GPT-1 je imao otprilike 117 milijuna takvih gumbića. GPT-2 je narastao na 1,5 milijardi. GPT-3 ih ima 175 milijardi — više od stotinu puta više gumbića nego njegov „opasni” prethodnik, svaki od njih podešavan i fino zavrnut tijekom čitanja ogromnog dijela pisanog interneta.
I ovdje dolazi obrat koji je cijelu priču pretvorio iz inženjerske vježbe u nešto što je stresalo cijelu industriju: ta razlika u veličini nije donijela samo bolji GPT-2. Donijela je model koji je počeo raditi stvari koje mu nitko nije eksplicitno naučio — pisati kod, prevoditi jezike, oponašati stilove pisanja — sposobnosti koje jednostavno nisu postojale kod manjih verzija, nego su se, takoreći, upalile same kad je skala prešla neki nevidljivi prag. Ne bolje. Novo. I upravo je ta razlika između „bolje” i „novo” razlog zašto ćeš u ostatku ovog poglavlja gledati kako je jedna beta verzija API-ja, dostupna šakici developera, tiho postavila temelje za nešto što će za dvije godine promijeniti kako cijeli svijet razgovara s računalima.

Few-shot: učenje bez treniranja
E sad dolazimo do trika koji je stvarno izvrnuo mozak i laicima i profesorima strojnog učenja (to je onaj dio informatike gdje računalo ne slijedi gotova pravila nego samo, iz hrpe primjera, „zaključi” kako nešto funkcionira) — pa strpi se sa mnom malo, jer ovo je srce cijele priče. Do sad je pravilo bilo jasno kao dan: ako želiš da stroj nauči nešto novo, moraš ga TRENIRATI. Nabaviš gomilu primjera, pustiš ga kroz njih tisuću puta, on podesi svoje unutarnje gumbiće (one parametre o kojima je bilo riječi gore, sjećaš se), i tek onda znade. Traje danima, tjednima, treba farma grafičkih kartica i struja kao za manji grad. Tako je to funkcioniralo desetljećima. E, GPT-3 je to pravilo prekršio na način koji nitko nije naručio, nitko nije programirao, i nitko — ozbiljno, NITKO — nije do kraja predvidio.
Stvar se zove few-shot learning, ili u domaćem prijevodu: pokažeš mu par primjera, on shvati fazon. Zamisli da dovedeš potpuno novog kolegu na posao i ne educiraš ga tjedan dana kroz interne priručnike, nego mu samo kažeš: „Evo, ovako smo mi radili ove tri stvari, sad napravi četvrtu, slično.” I on to napravi. Bez škole. Bez uvodnog treninga. Samo iz konteksta koji si mu upravo, u hodu, ubacio u glavu. GPT-3 je to radio s tekstom. Napišeš mu u uputi: engleska riječ → francuska riječ, engleska riječ → francuska riječ, dva-tri takva para, i onda treću englesku riječ samu, bez prijevoda — i on ti napiše francusku. Nije to nigdje posebno naučio kao zadatak „prevođenje”. Nije ga nitko sjeo i rekao „ovo su sad sati prevođenja”. On je to skupio kao nuspojavu čitanja pola interneta, i onda ga ti, u trenu, samo podsjetiš na fazon primjerima u uputi.
Ovo se u struci zove in-context learning i, da budem potpuno iskren s tobom, ovo je jedna od onih rijetkih stvari gdje inženjeri nisu bili pametniji od svoje tvorevine — bili su iznenađeni njome. Nitko nije sjeo i rekao „ugradit ćemo mu sposobnost da uči iz konteksta”. Ta sposobnost je jednostavno izronila kad su model naduvali na 175 milijardi parametara i napunili ga dovoljno velikom hrpom teksta. Zovu to emergentnom sposobnošću — kao kad hrpa mrava, svaki glup kao noć, zajedno izgradi nešto što nalikuje inteligentnoj arhitekturi, a nijedan pojedinačni mrav to nije planirao. Malo maglovito objašnjenje, priznajem, ali stvarno je otprilike tako: pojava koja se pojavi na dovoljno velikoj skali, a nije bila tamo na manjoj.
Ali dobro, vratimo se na ono što je stvarno promijenilo pravila igre za one koji su imali pristup — a to je koncept koji danas zoveš prompt, a tad su ga developeri tek počeli oprezno opipavati kao novu vrstu alata čije rubove još nisu upoznali. Prompt je, u suštini, uputa napisana OBIČNIM jezikom. Ne kod. Ne petlje, ne if-else, ne uvlake koje moraš brojati do zareza (sjećaš se onog poglavlja o Pythonu i strogosti uvlaka? E, ovdje toga nema). Samo rečenica. „Napiši mi e-mail šefu da kasnim jer je pao vlak.” I stroj to napravi. Ovo je, ako malo razmisliš, jedan od prvih trenutaka u povijesti računalstva da normalan čovjek, bez ijedne godine informatike, može natjerati stroj da mu nešto napravi — pišući mu kao da piše prijatelju. Programiranje riječima. Demokratizacija koda broj deset na tvom brojaču, ako brojiš — a ako ne brojiš, samo zapamti ovu rečenicu, jer ćeš je čuti opet za tri poglavlja kad dođemo do vibe codinga, gdje se ovaj isti trik razvuče do granice apsurda (u dobrom smislu).
I tu smo, ljeto i jesen 2020., šaka developera koji su imali pristup beta API-ju, a Twitter (ne, nije se još zvao X, strpi se) postaje digitalni cirkus čuda. Netko upiše opis stranice riječima – „napravi mi gumb koji je crven i kad kliknem otvori se izborni popis” – i stroj mu ispljune HTML i CSS kod (to su ona dva jezika koja određuju kako web stranica izgleda i kako se raspoređuje) koji STVARNO RADI. Netko drugi mu kaže „piši kao Shakespeare” i doda temu, i dobije nešto što, ruku na srce, zvuči kao da je Shakespeare bio pod utjecajem previše kave, ali je nedvojbeno njegov ritam. Ljudi su ga natjerali da sažima pravne ugovore, da prevodi programske jezike jedne u druge, da piše pjesme o mački koja je sjebala sobnu biljku u stilu biblijskih psalama. Bez ijedne linije novog treninga za svaki od tih zadataka. Ista mreža, ista milijarda gumbića, samo drugačiji prompt.
Demoi su bili polovica igre, druga polovica je bila tiha, ali stvarna posljedica: svaki put kad danas otvoriš ChatGPT ili bilo koji AI alat i kucneš „napiši mi...”, „objasni mi...”, „preformuliraj ovo...” — koristiš mehanizam koji je prvi put javno zaigrao ovdje, u ljeto 2020., u beta pristupu koji je imalo možda nekoliko tisuća ljudi na svijetu. Nisi svjestan toga dok kucaš, jer sučelje je danas glatko kao staklo. Ali ispod haube, ti pišeš uputu na obični ljudski način i očekuješ da te stroj razumije bez ikakvog treninga posebno za tebe — i to očekivanje, koje ti danas djeluje kao najnormalnija stvar na svijetu, prije GPT-3 nije ni postojalo kao mogućnost o kojoj vrijedi sanjati.

Kako zapravo radi (bez matematike)
Dobro, sad kad smo se svi zajedno divili čudima s Twittera, vrijeme je da uđemo iza zavjese. I upozoravam te — iza zavjese nema čarobnjaka. Ima samo jedan, u suštini prilično glup trik, izveden 175 milijardi puta odjednom.
GPT-3 radi jednu jedinu stvar: gleda niz riječi koje si mu dao i pokušava predvidjeti koja riječ (točnije, komadić riječi — token, ali nemoj se sad time zamarati) najvjerojatnije dolazi sljedeća. To je to. Cijela ta 175-milijardna zvijer, cijeli hype, cijela budućnost čovječanstva o kojoj ćemo pisati u sljedećih pet poglavlja — sve se svodi na najsofisticiraniji autocomplete koji je ljudska vrsta ikad sagradila. Onaj isti autocomplete koji ti na mobitelu predlaže „da” nakon „vidimo se sut”, samo nahranjen cijelim internetom i uvećan toliko puta da je prešao neku nevidljivu granicu i počeo izgledati kao razumijevanje.
Zašto onda ta predviđanja djeluju tako pametno? Jednostavno — jer je tekst na internetu pun uzoraka. Milijarde stranica napisane su prema pravilima jezika, prema logici argumentacije, prema strukturama koda, prema obrascima priča. Kad naučiš predvidjeti sljedeću riječ u dovoljno tog teksta, nužno pokupiš i gramatiku, i osnovnu logiku, i puno činjenica o svijetu — ne zato što ih model „razumije” u smislu u kojem ti razumiješ, nego zato što su te stvari otisnute u samom obrascu teksta koji predviđa. Znanje je nuspojava, ne cilj.
A onda dolazi ono najvažnije, stvar koju moraš razumjeti sad da bi ti kasnija poglavlja imala smisla: model nema pojam istine. Nema. Nijedan bit u tih 175 milijardi parametara nije rezerviran za „je li ovo točno”. Postoji samo „je li ovo vjerojatno”, odnosno — zvuči li ovo kao rečenica koja bi mogla stajati na internetu. Ako je najuvjerljivija sljedeća riječ ime nepostojećeg znanstvenog rada, model će ti ga servirati s istim samopouzdanjem kao i pravi. Ne laže te — nema koncept laganja, jer nema koncept istine prema kojoj bi laganje bilo devijacija. Zato halucinira. I zato će halucinirati zauvijek, sve dok mu netko ne ugradi taj koncept, a to, usput rečeno, do danas nikome baš nije uspjelo.
Lingvistica Emily Bender za ovo je 1997. — pardon, 2021., ali osjećaj je isti — smislila termin koji je ostao zalijepljen: stohastički papagaj. Model, kaže ona, ne razumije ništa, samo nasumično (statistički vođeno) reprodukcira uzorke jezika koje je vidio, bez ikakvog pojma o značenju iza njih. I treba joj priznati — u smislu „nema unutarnjeg modela istine niti svijesti o onome što govori”, potpuno je u pravu, i to je upravo ono što smo gore opisali. Gdje kritika postaje nepoštena je kad se koristi da se otpiše i sve ono što taj papagaj *radi* — a on piše kod koji se kompilira, prevodi jezike koje nikad nije eksplicitno učio prevoditi i rješava zadatke koje mu nitko nije demonstrirao. Papagaj koji slučajno rješava matematičke zagonetke je zanimljiv papagaj. Zovi ga kako hoćeš — poanta je da ne znamo pouzdano gdje prestaje imitacija i počinje nešto što bismo, kod čovjeka, zvali razumijevanjem.
Zapamti ovo, jer će nas ovaj isti autocomplete na steroidima kasnije natjerati da mu vjerujemo pravne savjete, medicinske dijagnoze i školske zadaće. A on cijelo vrijeme, u svojoj srži, samo pogađa sljedeću riječ.

API u beti: tiha revolucija
Sad, kad imaš stroj koji je pokazao da napiše esej, sroči pjesmu i sažme ugovor bolje nego pripravnik nakon prve kave, logično je pitanje: gdje je gumb? Gdje da ja, običan smrtnik, kliknem i dobijem svoje čudo? Odgovor je neugodan: gumba nema. Nema aplikacije, nema tipke „Preuzmi”, nema ništa što bi tvoja mama instalirala na laptop. GPT-3 je pušten kao API, u zatvorenoj beti, uz listu čekanja. Drugim riječima: da bi ga koristio, morao si biti developer, morao si znati pisati kod koji šalje zahtjeve i morao si dobiti pozivnicu. Revolucija je čekala u predsoblju.
Zašto takva opreznost? Tri razloga, i sva tri imaju smisla čim ih izgovoriš naglas. Prvo, OpenAI je, nakon cijele drame s GPT-2 i „preopasno za objaviti” naslovima (o kojoj više u okviru), postao paranoičan po pitanju vlastite kreacije — model koji piše uvjerljive tekstove o bilo čemu je isto toliko alat za esej o mačkama koliko i za tsunami dezinformacija, i netko je konačno to sjeo i napisao u internom memorandumu. Drugo, novac. Model od 175 milijardi parametara ne trči na tvom telefonu, ne trči ni na solidnom serveru u podrumu firme — trči na farmama grafičkih kartica koje koštaju kao mala zgrada, i svaki upit koji mu pošalješ nešto stvarno košta OpenAI. Pusti to javnosti bez ograde i dobiješ račun za struju koji bi prepao i državu. Treće — i ovo je ono što se najlakše zaboravi — sučelje je bilo, blago rečeno, nezgrapno. Nije to bio prozor u koji upišeš pitanje. Bio je to tehnički dokument, parametri, tokeni, temperatura, top-p — riječi koje zvuče kao postavke na klimi, ne kao razgovor s inteligencijom (temperatura je, grubo rečeno, koliko će model biti „kreativan” ili nasumičan kad bira sljedeću riječ, a top-p određuje koliko širok krug kandidata za tu riječ uopće razmatra — nešto slično kao da prije svake rečenice biraš hoće li tvoj sugovornik biti oprezan birokrat ili pripit pjesnik). Da dobiješ nešto pametno iz njega, morao si znati što radiš, i po mogućnosti imati strpljenja tipa koji čita priručnike.
Ali baš zato što je barijera bila visoka, oni koji su prošli kroz nju — programeri, hobisti, mala jata startupova — pretvorili su tu zatvorenu betu u laboratorij čuda. Prvi val aplikacija bio je dosadno praktičan, i baš zato zanimljiv: generatori marketinških tekstova, alati koji ti sažmu petostranični izvještaj u pet rečenica, botovi koji odgovaraju na mailove umjesto tebe. Copy.ai, Jasper i desetak sličnih imena, koja danas zvuče kao arheologija internetske povijesti, nikli su upravo na ovoj beti, prodajući zapravo isti model, samo umotan u lijepo sučelje s dugmićima. Ono što je bitno: ovo nije bila eksplozija koju je vidio cijeli svijet. Bila je to tiha, uporna glasina koja se širila po Twitteru programera — screenshot ovdje, thread tamo, „gledajte što je ovo napisalo” — dok je 99% čovječanstva nastavljalo živjeti svoj lockdown, potpuno nesvjesno da je nešto upravo prevrnulo ploču.

Zatišje pred oluju
I sad dolazimo do onog dijela priče gdje bi, u dobrom filmu, kamera trebala usporiti. GPT-3 je do kraja 2020. dokazao apsolutno sve što je trebao dokazati. Scaling hipoteza — ta opklada da veći model plus više podataka jednako veće sposobnosti, o kojoj je bilo riječi ranije — nije bila teorija na papiru. Bila je model koji piše sonete, popravlja kod i objašnjava viceve, sve to iz jedne kutije s API pristupom. Znanstveno pitanje je riješeno. A svijet je... nastavio dalje, kao da se ništa nije dogodilo.
Zašto? Jer da bi koristio GPT-3, morao si znati što je API. Morao si generirati ključ, pisati pozive u Pythonu, razmišljati o „temperaturi” i „tokenima” (komadićima riječi po kojima se sve to naplaćuje), i platiti po tokenu kao da kupuješ meso na kilažu. To nije barijera za developera — developer to riješi u pola sata i ide dalje slaviti. Ali za tvoju susjedu, tetu, urednika u novinama, srednjoškolca koji piše zadaću — to je nepremostiv zid. Imaš najmoćniji alat za pisanje u povijesti čovječanstva, zaključan u sobi do koje treba lozinku koju znaju samo inženjeri.
Prvi je netko provalio kroz prozor, ne kroz vrata. Microsoft je uzeo taj isti motor i ugurao ga u jedan uski, ali genijalno odabran kutak svijeta — u urednik koda. Rezultat se zove Copilot, o njemu više u poglavlju koje slijedi, ali ovdje je bitna jedna stvar: to je bio prvi dokaz da GPT-3 ne treba biti opća čarolija da bi promijenio nešto stvarno. Treba samo pravu vertikalu. Developeru koji piše petu funkciju istog oblika u zadnjih sat vremena, Copilot ne izgleda kao „veliki jezični model treniran na 175 milijardi parametara”. Izgleda kao kolega koji ti dovrši rečenicu prije nego što je izgovoriš. To je i sva razlika.
Ali čak i Copilot je bio niša — programerska niša, doduše ogromna i profitabilna, ali dostupna samo onima koji već znaju čitati kod. Prava lavina je čekala nešto puno gluplje i puno pametnije istovremeno: običnu kutiju za razgovor. Kad je netko u OpenAI-u, negdje kroz 2022., rekao „stavimo ovo iza chat sučelja, neka ljudi razgovaraju s njim kao s prijateljem”, nije izumio novi model. Uzeo je isti motor koji je već godinu i pol javno dostupan preko API-ja, i samo mu je promijenio vrata.
Jer evo što se stvarno dogodilo: tehnički gledano, ChatGPT iz sljedećeg poglavlja i GPT-3 iz ovog poglavlja nisu bili dramatično različit stroj. Isti princip, sličan model, jedna nadogradnja preko druge. Razlika koja je pretvorila akademsku senzaciju u kulturni fenomen nije bila u parametrima. Bila je u tome da je netko rekao — dosta s API-jem, dosta s dokumentacijom, dosta s tim da moraš znati što je token. Otvori prozor za razgovor, upiši pitanje, pritisni Enter. To je sve. To je cijeli izum.
A ako ti se ovo čini poznato — čitatelju koji je prošao kroz ovu enciklopediju od početka, trebalo bi. VisiCalc nije izumio proračunsku tablicu kao koncept, izumio je oblik u kojem je ta tablica postala neizbježna. iPhone nije izumio dodirni zaslon, WiFi ili internet u džepu — sve je to postojalo, razbacano po raznim uređajima i patentima. Samo ih je netko prvi put stavio u jednu formu koju je čovjek mogao drugom rukom staviti u drugi džep.
Motor je, ispada, poluozbiljna stvar. Sučelje je ta druga, tiša revolucija koja se rijetko slavi jer iza sebe nema respektabilnu matematiku — samo dobar osjećaj za to kako ljudi stvarno žele nešto koristiti. GPT-3 je 2020. bio motor bez karoserije, parkiran u garaži koju je vidjelo tek par tisuća developera na Twitteru. Trebalo je još dvije godine, jedan Copilot i jednu ludu ideju o chat-botu da svijet konačno sjedne za volan.