Пређите на главни садржај
OpenAI

Razumevanje neuronskih mreža kroz retka kola

Trenirali smo modele da razmišljaju u jednostavnijim koracima koje je lakše pratiti — kako bismo bolje razumeli kako funkcionišu.

Учитавање…

​​Neuronske mreže pokreću današnje najsposobnije AI sisteme, ali ih je i dalje teško razumeti. Ove modele ne pišemo pomoću eksplicitnih, korak-po-korak uputstava. Umesto toga, oni uče prilagođavanjem milijardi unutrašnjih veza, odnosno „težina“, dok ne ovladaju zadatkom. Mi osmišljavamo pravila treniranja, ali ne i specifična ponašanja koja iz njega proističu, pa je rezultat gusta mreža veza koju nijedan čovek ne može lako da odgonetne. 

Kako posmatramo interpretabilnost

Kako AI sistemi postaju sposobniji i imaju stvarni uticaj na odluke u nauci, obrazovanju i zdravstvu, razumevanje njihovog rada postaje od suštinske važnosti. Interpretabilnost se odnosi na metode koje nam pomažu da razumemo zašto je model proizveo dati izlaz. Postoji mnogo načina na koje bismo to mogli postići. 

Na primer, modeli rezonavanja podstiču se da objasne svoj postupak na putu do konačnog odgovora. Interpretabilnost lanca misli koristi ta objašnjenja za praćenje ponašanja modela. To je odmah korisno: lanci misli kod savremenih modela rezonavanja deluju informativno u vezi sa zabrinjavajućim ponašanjima poput obmane. Međutim, potpuno oslanjanje na ovo svojstvo je krhka strategija i ono može vremenom da oslabi.

S druge strane, mehanicistička interpretabilnost, koja je fokus ovog rada, nastoji da u potpunosti obrnutim inženjeringom rekonstruiše računanja modela. Do sada je bila manje neposredno korisna, ali bi, u načelu, mogla da ponudi potpunije objašnjenje ponašanja modela. Time što nastoji da objasni ponašanje modela na najgranularnijem nivou, mehanicistička interpretabilnost može da uvede manje pretpostavki i pruži nam više pouzdanja. Ali put od niskonivojskih detalja do objašnjenja složenih ponašanja mnogo je duži i teži.

Interpretabilnost podržava nekoliko ključnih ciljeva, na primer omogućava bolji nadzor i pruža rane znake upozorenja na nebezbedno ili strateški neusklađeno ponašanje. Ona takođe dopunjuje naše druge napore u oblasti bezbednosti, kao što su skalabilni nadzor, adversarijalno treniranje i red-teaming. 

U ovom radu pokazujemo da modele često možemo trenirati na načine koji ih čine lakšim za tumačenje. Naš rad vidimo kao obećavajuću dopunu post hoc analizi gustih mreža. 

Ovo je veoma ambiciozna opklada; put od našeg rada do potpunog razumevanja složenih ponašanja naših najmoćnijih modela je dug. Ipak, za jednostavna ponašanja nalazimo da retki modeli trenirani našom metodom sadrže mala, razdvojena kola koja su i razumljiva i dovoljna da izvedu to ponašanje. To ukazuje na moguć ostvariv put ka treniranju većih sistema čije mehanizme možemo razumeti.

Novi pristup: učenje retkih modela

Dosadašnji rad na mehanicističkoj interpretabilnosti polazio je od gustih, zamršenih mreža i pokušavao da ih raspetlja. U tim mrežama svaki pojedinačni neuron povezan je sa hiljadama drugih neurona. Čini se da većina neurona obavlja mnogo različitih funkcija, što razumevanje čini gotovo nemogućim. 

Ali šta ako bismo trenirali raspetljane neuronske mreže, sa mnogo više neurona, ali tako da svaki neuron ima samo nekoliko desetina veza? Tada bi možda dobijena mreža bila jednostavnija i lakša za razumevanje. To je centralna istraživačka opklada našeg rada.

Imajući ovaj princip na umu, trenirali smo jezičke modele sa arhitekturom veoma sličnom postojećim jezičkim modelima kao što je GPT‑2, uz jednu malu izmenu: primoravamo ogromnu većinu težina modela da budu nule. Time je model bio ograničen da koristi samo vrlo mali broj mogućih veza između svojih neurona. To je jednostavna promena za koju tvrdimo da značajno razdvaja unutrašnja računanja modela.

Dijagram koji poredi gusta kola i retka kola. Gusta verzija prikazuje dva reda čvorova sa mnogo međusobno povezanih linija, dok retka verzija prikazuje isti raspored, ali sa manjim brojem, selektivnijih veza.

U običnim gustim neuronskim mrežama, svaki neuron je povezan sa svakim neuronom u sledećem sloju. U našim retkim modelima, svaki neuron se povezuje samo sa nekoliko neurona u sledećem sloju. Nadamo se da to čini neurone, kao i mrežu u celini, lakšim za razumevanje.

Vrednovanje interpretabilnosti

Želimo da izmerimo u kojoj meri su računanja naših retkih modela razdvojena. Razmatrali smo različita jednostavna ponašanja modela i proveravali da li možemo da izdvojimo delove modela odgovorne za svako ponašanje — koje nazivamo kolima.

Ručno smo sastavili skup jednostavnih algoritamskih zadataka. Za svaki smo orezali model do najmanjeg kola koje i dalje može da izvrši zadatak i ispitali koliko je to kolo jednostavno. (Za detalje pogledajte naš rad(отвара се у новом прозору).) Utvrdili smo da treniranjem većih i ređih modela možemo da dobijemo sve sposobnije modele sa sve jednostavnijim kolima.

Rasejani dijagram koji prikazuje sposobnost modela (gubitak pri pretreningu) na x-osi u odnosu na interpretabilnost (veličina orezanog kola) na y-osi. Tačke predstavljaju modele različitih veličina i nivoa retkosti, pri čemu boja označava ukupan broj parametara, a veličina markera broj parametara različitih od nule. Strelice označavaju gornji desni smer kao „bolje“.

Prikazujemo interpretabilnost u odnosu na sposobnost kroz različite modele (donji levi ugao je bolji). Za fiksnu veličinu retkog modela, povećanje retkosti — postavljanje većeg broja težina na nulu — smanjuje sposobnost, ali povećava interpretabilnost. Povećanje veličine modela pomera ovu granicu naviše i udesno, što ukazuje da možemo da izgradimo veće modele koji su i sposobni i interpretabilni.

Da ovo učinimo konkretnim, razmotrite zadatak u kome model treniran na Python kodu treba da dovrši string ispravnim tipom navodnika. U Python-u, ‘hello’ mora da se završi jednostrukim navodnikom, a “hello” mora da se završi dvostrukim navodnikom. Model to može da reši tako što pamti koji je tip navodnika otvorio string i reprodukuje ga na kraju.

Čini se da naši najinterpretabilniji modeli sadrže razdvojena kola koja implementiraju upravo taj algoritam.

Dijagram koji ilustruje primer kola u retkom transformatoru. Prikazuje kako se određeni neuroni i glave pažnje aktiviraju kao odgovor na ulazne tokene poput “(” i “circuits”, uz označene putanje za pozitivne i negativne težine, množenja, nelinearnosti i veze između MLP i slojeva pažnje, što na kraju dovodi do verovatnoća izlaznih tokena.

Primer kola u retkom transformatoru koje predviđa da li string treba završiti jednostrukim ili dvostrukim navodnikom. Ovo kolo koristi samo pet rezidualnih kanala (vertikalne sive linije), dva MLP neurona u sloju 0, i jedan kanal upit-ključ pažnje i jedan kanal vrednosti u sloju 10. Model (1) kodira jednostruke navodnike u jednom rezidualnom kanalu, a dvostruke u drugom; (2) koristi MLP sloj da to pretvori u jedan kanal koji detektuje bilo koji navodnik i drugi koji razlikuje jednostruke od dvostrukih navodnika; (3) koristi operaciju pažnje da zanemari međuto kene, pronađe prethodni navodnik i kopira njegov tip u završni token; i (4) predviđa odgovarajući završni navodnik.

Prema našoj definiciji, tačne veze prikazane iznad dovoljne su za izvršavanje zadatka — ako uklonimo ostatak modela, ovo malo kolo i dalje funkcioniše. One su takođe neophodne — brisanje ovih nekoliko grana dovodi do toga da model podbaci.

Proučavali smo i neka složenija ponašanja. Naša kola za ta ponašanja (na primer vezivanje promenljivih prikazano ispod) teže je potpuno objasniti. Čak i tada, i dalje možemo da postignemo relativno jednostavna delimična objašnjenja koja predviđaju ponašanje modela.

Dijagram koji ističe primer kola retkog transformatora unutar Python funkcije get_neighbors. Uokvirene su dve dodele current = set(), a obojene strelice pokazuju koje glave pažnje (označene Q/K/V indeksima) se aktiviraju da povežu svako pojavljivanje promenljive current sa njenom upotrebom u petlji.

Još jedan primer kola, sa manje detalja. Da bi odredila tip promenljive pod nazivom current, jedna operacija pažnje kopira ime promenljive u token set() kada se ona definiše, a druga kasnija operacija kopira tip iz tokena set() u narednu upotrebu promenljive, omogućavajući modelu da zaključi sledeći ispravan token.

Put koji je pred nama

Ovaj rad je rani korak ka širem cilju: da računanja modela učinimo lakšim za razumevanje. Ali pred nama je još dug put. Naši retki modeli mnogo su manji od graničnih modela, a veliki delovi njihovog računanja i dalje ostaju neprotumačeni. 

Zatim se nadamo da ćemo naše tehnike skalirati na veće modele i objasniti veći deo njihovog ponašanja. Nabrajanjem motiva kola koji stoje u osnovi složenijeg rezonovanja u sposobnim retkim modelima mogli bismo da razvijemo razumevanje koje nam pomaže da bolje usmerimo istraživanja graničnih modela.

Da bismo prevazišli neefikasnost treniranja retkih modela, vidimo dva puta napred. Jedan je da izdvajamo retka kola iz postojećih gustih modela, umesto da retke modele treniramo od nule. Gusti modeli su u osnovi efikasniji za primenu od retkih modela. Drugi put je razvijanje efikasnijih tehnika za treniranje modela radi interpretabilnosti, koje bi možda bilo lakše uvesti u produkciju.

Imajte u vidu da naši ovde izneti nalazi nisu garancija da će se ovaj pristup proširiti na sposobnije sisteme, ali su ovi rani rezultati obećavajući. Naš cilj je da postepeno širimo koliki deo modela možemo pouzdano da interpretiramo i da izgradimo alate koji buduće sisteme čine lakšim za analizu, otklanjanje grešaka i evaluaciju.

Autori

Leo Gao, Achyuta Rajaram, Jacob Coxon, Soham V. Govande, Bowen Baker и Dan Mossing