Transformeri: pažnja i sve što iz nje sledi
Veštačka inteligencija od nule
Lekcija 7 · Transformeri: pažnja i sve što iz nje sledi
Prethodna lekcija je stala na jednoj mani. Reč dobija svoje mesto na mapi značenja jednom zauvek, pa kosa u rečenici o frizeru i kosa u rečenici o košenju dele isti spisak brojeva — negde na sredini, gde nije tačan ni za jedno.
Rešenje zvuči očigledno: neka mesto reči zavisi od rečenice u kojoj stoji. Mehanizam koji to izvodi zove se pažnja, a arhitektura sagrađena oko njega transformer. Od tog jednog poteza, opisanog u radu iz 2017. godine, potiče praktično sve što se danas naziva veštačkom inteligencijom.
Ovo je najduža lekcija u kursu i ima dva dela. Prvi objašnjava mehanizam, drugi kako se od mehanizma dolazi do asistenta koji odgovara na pitanja. Slobodno ih čitaj u dva navrata.
PRVI DEO · MEHANIZAM
I. Šta je trebalo rešiti
Do 2017. tekst se obrađivao redom, reč po reč. Model bi pročitao reč, ažurirao svoje unutrašnje stanje, pa prešao na sledeću — otprilike kao čovek koji čita naglas i pamti smisao dosadašnjeg.
Dve stvari su tu bile loše.
Sve je moralo da ide redom. Dvadeseta reč se nije mogla obraditi pre devetnaeste. Grafička kartica koja ume hiljade računa istovremeno stajala je i čekala, pa se veći modeli nisu isplatili.
Daleke veze su bledele. Sve pročitano moralo je da stane u jedno stanje ograničene veličine, pa je starije potiskivano novijim. U rečenici „vlada je odbila zahtev demonstranata jer su se plašili nasilja", da bi se razumelo ko se plaši, treba se vratiti desetak reči unazad — a tamo je već sve izbledelo.
Transformer oba problema rešava jednim potezom: ukida čitanje redom. Sve reči se obrađuju istovremeno, i svaka sme da pogleda svaku, bez obzira na razdaljinu.
II. Pažnja
Ideja je da svaka reč postavi pitanje ostalima, oceni koliko joj je koja korisna, i onda od korisnih preuzme deo njihovog sadržaja u sebe.
Da bi to bilo izvodljivo računom, svaka reč se iz svog vektora pretvara u tri različita vektora, pomoću tri skupa naučenih težina:
Upit — šta ova reč traži.
Ključ — šta ova reč nudi drugima.
Vrednost — sadržaj koji predaje onome ko je uzme.
Slika koja se ovde obično koristi je biblioteka. Upit je ono što tražiš, ključevi su natpisi na policama, vrednosti su ono što u knjigama zaista piše. Razlika je u tome što se ovde ne bira jedna polica: upit se uporedi sa svakim ključem, dobiju se ocene podudarnosti, one se pretvore u udele koji zajedno daju jedinicu, i onda se napravi mešavina svih vrednosti prema tim udelima.
Rezultat te mešavine postaje novi vektor te reči. I tu se rešava problem iz prethodne lekcije: kosa u rečenici sa frizerom snažno se podudari sa ključem reči frizer, pa preuzme deo njenog sadržaja i pomeri se ka tom kraju mape. U rečenici o travi pomeri se na drugu stranu. Reč više nema jedno mesto — ima ono koje joj rečenica dodeli.
Vredi zaustaviti se na tome da tri skupa težina za upit, ključ i vrednost nisu zadata rukom. To su obični parametri, podešeni gradijentnim spustom iz treće lekcije. Niko modelu nije rekao da zamenice treba vezivati za imenice — to je ispalo kao način da se smanji greška u pogađanju sledeće reči.
Više glava odjednom
Jedan takav mehanizam može da prati jednu vrstu odnosa. Zato se u istom sloju pusti više njih uporedo — obično desetak ili više — svaki sa svojim težinama. To se zove višeglava pažnja.
Kad se posle treninga pogleda šta koja glava radi, nalaze se raspodele posla koje niko nije dodelio: jedna prati slaganje u rodu i broju, druga vezuje zamenice za ono na šta se odnose, treća drži temu odlomka. Podela je nastala sama, iz istog razloga iz kog su nastale ivice u prvom sloju mreže za slike.
Zašto je to pobedilo
Sva ta poređenja i mešanja svode se na množenje matrica, i rade se za sve reči odjednom. To je tačno ono što grafičke kartice rade brzo.
Presudna prednost transformera nad prethodnicima nije bila u tome što bolje razume jezik na malim primerima — u početku često nije. Bila je u tome što se može trenirati na neuporedivo više podataka za isto vreme. Ostalo je došlo sa veličinom.
Postoji i cena. Pošto svaka reč gleda svaku, posao raste sa kvadratom dužine teksta: dvostruko duži tekst znači četvorostruko više računa. Zato su dugi kontekstni prozori skupi i zato se na njima i danas radi.
III. Blok, i pitanje redosleda
Pažnja je samo deo. Osnovna jedinica transformera je blok, koji sadrži pažnju, zatim malu običnu mrežu koja se primenjuje na svaku reč posebno, i uz njih preskočne veze i normalizaciju — iste one alatke iz pete lekcije, bez kojih dubina ne bi bila moguća.
Takvih blokova se naslaže desetine ili stotine. Svaki sloj pomera reči malo dalje, od površinskog ka apstraktnijem — isto stepenište kao kod slika, samo što su prečke ovde gramatika, odnosi, pa smisao.
Ostaje jedna rupa. Pošto sve reči ulaze odjednom i svaka gleda svaku, mehanizam nema pojma o redosledu. Rečenice „pas ujeda čoveka" i „čovek ujeda psa" za njega su isti skup reči.
Zato se svakoj reči, pre ulaska, u vektor dopisuje podatak o njenom položaju. Redosled tako postaje deo sadržaja, a ne posledica načina obrade. Deluje kao krpljenje, i jeste — ali daje neočekivanu slobodu, jer se pojam položaja može podesiti i za nešto što nije rečenica, poput delova slike ili tačaka u vremenu. Zbog toga se transformeri danas koriste i daleko van jezika.
IV. Tokeni
Do sada smo govorili „reč". Model, međutim, ne radi sa rečima.
Rečnik celih reči bio bi neupotrebljiv. U srpskom bi kuća, kuće, kući, kućom, kućama bile pet nepovezanih stavki, a svaka nova reč — ime, kovanica, greška u kucanju — bila bi nepoznata i model bi na njoj stao. Suprotna krajnost, pojedinačna slova, daje predugačke nizove, a posao pažnje raste sa kvadratom dužine.
Kompromis se zove tokenizacija: iz ogromne količine teksta se izvuku najčešći komadi. Vrlo česte reči dobiju svoj token, ređe se rastave na delove, a sasvim neobični nizovi na pojedinačna slova. Ništa ne ostaje nepoznato.
Tri posledice vredi zapamtiti, jer se stalno sreću u praksi:
Sve se meri u tokenima — i cena i dužina konteksta. Srpski troši više tokena po istoj rečenici nego engleski, jer je tokenizator građen na tekstu u kome engleski preovlađuje, pa naše reči češće pucaju na sitne komade. Isti tekst tako doslovno košta više. I najzad, model ne vidi slova — zato ume da napiše esej, a pogreši kad ga pitaš koliko puta se neko slovo javlja u reči. To slovo mu nikada nije ni pokazano posebno.
DRUGI DEO · OD MEHANIZMA DO ASISTENTA
V. Predtreniranje
Imamo arhitekturu. Šta se na njoj uči?
Jedan jedini zadatak: pogodi sledeći token. Uzme se odlomak teksta, sakrije nastavak, model pogađa, greška se meri unakrsnom entropijom iz četvrte lekcije, parametri se pomere. Ponovi bilionima puta.
Genijalnost tog zadatka je u tome što ne traži nijednog čoveka da bilo šta obeleži. Tačan odgovor je već u tekstu — samo ga treba privremeno pokriti. Zato se moglo skalirati do količina koje nijedno ručno označavanje ne bi izdržalo.
A zašto tako prizeman zadatak daje toliko? Zato što je dobro pogađanje nastavka neizvodljivo bez svega ostalog. Da bi se pogodila poslednja reč u „ključ je celo vreme bio u džepu njegovog ___", treba pratiti radnju. Da bi se nastavio dokaz, treba pratiti logiku. Predviđanje nastavka je zadatak koji u sebe uvlači gramatiku, činjenice, stil i zaključivanje — ne zato što je tako zamišljeno, nego zato što bez toga nema dobrog pogađanja.
Ono što posle toga postoji jeste model koji nastavlja tekst. To još nije asistent. Postavi mu pitanje i sasvim je moguće da odgovori spiskom sličnih pitanja — jer u tekstovima sa interneta iza jednog pitanja često sledi drugo.
VI. Zakoni skaliranja
Tokom istraživanja uočeno je nešto neuobičajeno: greška opada predvidivo sa povećanjem broja parametara, količine teksta i utrošene računske snage. Ne skokovito i ne haotično, nego po glatkoj krivoj koja se drži kroz nekoliko redova veličine.
To je retka situacija u inženjerstvu — unapred se zna šta se dobija za deset puta veće ulaganje. Upravo su ti grafici, a ne neko konceptualno otkriće, razlog zašto su u ovu oblast otišle milijarde.
Uz to je primećeno da veći modeli počinju da rade stvari za koje niko nije trenirao — prevode jezike koje su jedva videli, rešavaju zadatke po analogiji. Oko toga postoji ozbiljan spor: deo tih „iznenadnih pojava" je posledica načina merenja, jer merilo tipa „tačno ili netačno" sakriva postepeno poboljšanje sve dok ne pređe prag. Napredak je stvaran, ali je verovatno manje magičan nego što izgleda.
Ni skaliranje nije bez dna. Kvalitetnog teksta na svetu ima konačno, trošak raste brže od koristi, a kriva obećava postepeno poboljšanje — ne prelazak u nešto suštinski drugo.
VII. Šta model pretvara u sagovornika
Posle predtreniranja slede dve mnogo manje, ali za korisnika presudne faze.
Učenje na primerima razgovora
Ljudi napišu desetine hiljada primera dobrih odgovora na razna pitanja, i model se na njima dotrenira. Time uči oblik: da na pitanje sledi odgovor, kako da odbije zahtev, kada da traži pojašnjenje. Isti zadatak pogađanja nastavka, samo na pažljivo biranom tekstu.
Učenje iz poređenja
Zatim se modelu daju pitanja, on napiše po dva odgovora, a čovek kaže koji je bolji. Od hiljada takvih poređenja se istrenira poseban model koji predviđa šta bi čovek izabrao — i onda se glavni model podešava da mu ocene budu što više.
Ovo je mesto na kome nastaje sve što korisnik doživljava kao karakter asistenta: ton, opreznost, spremnost da prizna neznanje, odbijanje pojedinih zahteva.
I ovde se vraća upozorenje iz četvrte lekcije, sada u punoj težini. Model se ne podešava prema istini nego prema onome što ocenjivači odobravaju, a to dvoje se ne poklapa uvek. Odgovori koji zvuče samouvereno prolaze bolje od opreznih. Slaganje sa sagovornikom prolazi bolje od protivrečenja. Poznata sklonost modela da se dodvorava i da popusti kad korisnik navali nije kvar u mehanizmu — to je merilo koje radi tačno onako kako je postavljeno.
VIII. Kontekst, upit i dokumenti
Gotov model se ne menja dok ga koristiš. Njegovi parametri su zamrznuti. Sve što se dešava u razgovoru dešava se u kontekstnom prozoru — tekstu koji mu se daje na uvid pre nego što nastavi.
Otuda i tri stvari koje se stalno pominju:
Sastavljanje upita je veština uređivanja tog teksta tako da najverovatniji nastavak bude baš ono što ti treba. Nije trik nego posledica toga kako model radi. Poseban slučaj je učenje u kontekstu: daš mu tri primera zadatka rešenog na željeni način i on nastavi po tom obrascu — bez ikakvog treninga, samo zato što je obrazac vidljiv u tekstu.
Dopunjavanje pretragom, poznato po skraćenici RAG, rešava to što model ne zna tvoje dokumente. Postupak spaja sve iz prethodne lekcije: dokumenti se iseku na odlomke i svaki se pretvori u vektor; pitanje se pretvori u vektor; nađu se najbliži odlomci; oni se ubace u kontekst i model odgovara na osnovu njih. Model nije ništa naučio — dobio je materijal pred sobom.
Fino podešavanje ili kontekst je odluka koja se stalno postavlja, a pravilo je prosto. Ako treba promeniti kako model odgovara — ton, format, stil kuće — to se uči finim podešavanjem. Ako treba da zna šta, i to nešto što se menja, ide u kontekst. Ubacivanje činjenica finim podešavanjem je skupo, brzo zastari i modelu ne daje pojam o tome odakle mu podatak.
Šta iz ovoga treba poneti
Pažnja je postupak kojim svaka reč pita ostale šta joj je važno i od njih preuzima sadržaj. Time reč prestaje da ima stalno značenje i dobija ono koje joj rečenica daje — što je bila mana na kojoj je stala prethodna lekcija.
Ceo jezički model se uči jednim prizemnim zadatkom — pogodi sledeći token. Sve što izgleda kao znanje ili zaključivanje ispalo je usput, jer bez toga nema dobrog pogađanja.
Ono što korisnik doživljava kao karakter dolazi iz poslednje, najmanje faze — iz podešavanja prema ljudskim ocenama. A pošto se meri odobravanje a ne istina, tu nastaju i najpoznatije mane.
Time je sklopljena cela slika: od prave kroz tačke do modela koji piše tekst. Ostaje ono najvažnije — gde ta slika puca. O tome je poslednja lekcija.
Vežba · opciono
Prvi deo se radi olovkom i džepnim računarom. Rečenica je „Jovan je uzeo kosu i pokosio travu", a posmatramo reč kosu. Neka je svaka reč predstavljena sa dva broja, gde prvi raste ka značenju alata a drugi ka značenju frizure:
Jovan (0, 1) · ocena 1
uzeo (1, 1) · ocena 2
kosu (5, 5) · ocena 5
pokosio (9, 2) · ocena 8
travu (8, 3) · ocena 4
Ocene su podudarnost upita reči kosu sa ključem svake reči. Saberi ih — dobija se 20 — pa svaku podeli sa 20 da dobiješ udele. Zatim izračunaj mešavinu: pomnoži svaki par brojeva svojim udelom i saberi po kolonama.
Ispada otprilike (6,55 · 2,8). Reč je krenula od neutralnog (5 · 5) i pomerila se ka kosidbi. To je ceo mehanizam pažnje, izračunat rukom.
Sada zameni pokosio i travu rečima ošišao (2, 9) i mušteriju (1, 8), sa istim ocenama, i ponovi račun. Ista reč završava na sasvim drugom mestu.
Drugi deo je za one koji rade kod. Napiši pažnju od nule za nekoliko vektora, bez gotovih slojeva, pa je uporedi sa bibliotečkom verzijom. Zatim istreniraj sićušni transformer na tekstu po izboru i gledaj kako mu se izlaz kroz epohe menja od slučajnih slova do nečega što liči na jezik.
Ako imaš vremena za treći korak, napravi mali RAG nad sopstvenim dokumentima. To je najbrži način da se poveže sve iz poslednje dve lekcije.
SLEDEĆA LEKCIJA
8. Gde modeli otkazuju i šta to znači
Halucinacije, pristrasnost, merenje koje vara, i šta se menja kada model izađe u svet.
Tekst je pisan uz pomoć jezičkog modela Claude Opus 5 kompanije Anthropic. Sadržaj, struktura i konačna redakcija su autorski.
Comments
Post a Comment