Pāriet uz galveno saturu
OpenAI

2025. gada 13. novembris

IzpētePublikācija

Neironu tīklu izpratne, izmantojot retinātas ķēdes

Mēs apmācījām modeļus domāt vienkāršākos un izsekojamākos soļos, lai varētu labāk saprast, kā tie darbojas.

Notiek ielāde…

​​Neironu tīkli nodrošina mūsdienu visspējīgākās MI sistēmas, taču tos joprojām ir grūti saprast. Mēs nerakstām šos modeļus ar skaidrām, soli pa solim instrukcijām. Tā vietā viņi mācās, pielāgojot miljardiem iekšējo savienojumu jeb "svaru", līdz apgūst uzdevumu. Mēs izstrādājam mācību noteikumus, bet ne konkrētas uzvedības, kas rodas, un rezultāts ir blīvs savienojumu tīkls, kuru neviens cilvēks nevar viegli atšifrēt. 

Kā mēs uztveram interpretējamību

Tā kā MI sistēmas kļūst spējīgākas un tām ir reāla ietekme uz lēmumiem zinātnē, izglītībā un veselības aprūpē, ir svarīgi saprast, kā tās darbojas. Interpretējamība attiecas uz metodēm, kas palīdz mums saprast, kāpēc modelis ir radījis noteiktu izvadi. Ir daudz veidu, kā mēs to varētu sasniegt. 

Piemēram, spriešanas modeļi tiek motivēti skaidrot savu darbu, lai nonāktu pie galīgās atbildes. Domu ķēdes interpretējamība izmanto šos skaidrojumus, lai uzraudzītu modeļa uzvedību. Tas ir noderīgi uzreiz: pašreizējo apsvērumu modeļu domu ķēdes šķietami sniedz informāciju par tādu uzvedību kā maldināšana. Tomēr pilnīga paļaušanās uz šo īpašību ir trausla stratēģija, un laika gaitā tā var nedarboties.

Savukārt mehānistiskā interpretējamība, kas ir šī darba uzmanības centrā, cenšas pilnībā izpētīt modeļa aprēķinus. Līdz šim tas ir bijis mazāk noderīgi, taču principā tas varētu sniegt pilnīgāku skaidrojumu par modeļa uzvedību. Mēģinot izskaidrot modeļa uzvedību visdetalizētākajā līmenī, mehānistiskā interpretējamība var veikt mazāk pieņēmumu un sniegt mums lielāku pārliecību. Taču ceļš no zemāka līmeņa detaļām līdz sarežģītas uzvedības skaidrojumiem ir daudz garāks un grūtāks.

Interpretējamība atbalsta vairākus galvenos mērķus, piemēram, nodrošināt labāku uzraudzību un sniegt agrīnas brīdinājuma zīmes par nedrošu vai stratēģiski neatbilstošu rīcību. Tā arī papildina citus mūsu drošības pasākumus, piemēram, mērogojamu uzraudzību, mācības ar uzbrukuma datiem un sarkano komandu veidošanu. 

Šajā darbā mēs parādām, ka bieži varam apmācīt modeļus tā, lai tos būtu vieglāk interpretēt. Mēs redzam savu darbu kā daudzsološu papildinājumu blīvu tīklu post-hoc analīzei. 

Tas ir ļoti ambiciozs solis; no mūsu darba līdz pilnīgai izpratnei par mūsu jaudīgāko modeļu sarežģīto uzvedību ir tāls ceļš. Tomēr mēs atklājam, ka ar vienkāršām uzvedībām daži modeļi, kas apmācīti ar mūsu metodi, satur mazas, atdalītas ķēdes, kas ir gan saprotamas, gan pietiekamas, lai veiktu uzvedību. Tas liecina, ka varētu būt iespējams atrast risinājumu lielāku sistēmu mācībām, kuru mehānismus mēs varam saprast.

Jauna pieeja: retinātu modeļu apguve

Iepriekšējie mehānistiskās interpretējamības pētījumi sākušies ar blīviem, sapītiem tīkliem, mēģinot tos atšķetināt. Šajos tīklos katrs atsevišķs neirons ir savienots ar tūkstošiem citu neironu. Izskatās, ka lielākā daļa neironu pilda daudzas atšķirīgas funkcijas, padarot to visu šķietami neizprotamu. 

Bet kā būtu, ja mēs apmācītu nesaistītus neironu tīklus ar daudz vairāk neironiem, bet kur katram neironam būtu tikai daži desmiti savienojumu? Tad varbūt iegūtais tīkls būtu vienkāršāks un saprotamāks. Šis ir mūsu darba centrālais pētniecības uzdevums.

Paturot prātā šo principu, mēs apmācījām valodas modeļus ar ļoti līdzīgu arhitektūru esošajiem valodas modeļiem, piemēram, GPT‑2, ar vienu nelielu modifikāciju: mēs lielāko daļu modeļa svara pārvērtām nullē. Tas ierobežoja modeli izmantot tikai ļoti nedaudzus no iespējamajiem savienojumiem starp tā neironiem. Tā ir vienkārša izmaiņa, kas, kā mēs apgalvojam, būtiski atvieglo modeļa iekšējos aprēķinus.

Diagramma, kas salīdzina blīvas un retas ķēdes. Blīvā versija parāda divas mezglu rindas ar daudzām savstarpēji savienojošām līnijām, savukārt retā versija parāda tādu pašu izkārtojumu, bet ar mazāk, selektīvākiem savienojumiem.

Parastos blīvos neironu tīklos katrs neirons ir savienots ar katru neironu nākamajā slānī. Mūsu retajos modeļos katrs neirons savienojas tikai ar dažiem neironiem nākamajā slānī. Mēs ceram, ka tas padarīs neironus un tīklu kopumā vieglāk saprotamus.

Interpretējamības novērtēšana

Mēs vēlamies novērtēt, cik lielā mērā mūsu reto modeļu aprēķini ir atdalīti. Mēs apsvērām dažādas vienkāršas modeļa uzvedības un pārbaudījām, vai varam izolēt modeļa daļas, kas ir atbildīgas par katru uzvedību — ko mēs saucam par ķēdēm.

Mēs rūpīgi atlasījām vienkāršu algoritmisku uzdevumu komplektu. Katram mēs samazinājām modeli līdz mazākajai shēmai, kas joprojām var veikt uzdevumu, un pārbaudījām, cik vienkārša ir šī shēma. (Sīkāku informāciju skati mūsu rakstu(atveras jaunā logā).) Mēs atklājām, ka, veicot mācības ar lielākiem un retākiem modeļiem, mēs varējām izveidot arvien spējīgākus modeļus ar arvien vienkāršākām ķēdēm.

Izkliedes diagramma, kurā uz x ass attēlotas modeļa spējas (pirmsapmācības zaudējumi), bet uz y ass - interpretējamība (apgrieztās shēmas lielums). Punkti attēlo dažāda izmēra un retuma līmeņa modeļus, kur krāsa norāda kopējo parametru skaitu un marķiera izmērs norāda uz nenulles parametru skaitu. Bultiņas norāda uz augšējo labo virzienu kā “labāku”.

Mēs attēlojam interpretējamību salīdzinājumā ar iespējām dažādos modeļos (jo zemāk un pa kreisi, jo labāk). Fiksētam retā modeļa lielumam, palielinot retumu—nosakot vairāk svaru nulles pozīcijā—samazinās iespējas, bet palielinās interpretējamība. Palielinot modeļa lielumu, šī robeža tiek pārvietota uz āru, kas liecina, ka mēs varam izveidot lielākus modeļus, kas ir gan spējīgi, gan interpretējami.

Lai to konkretizētu, izmēģini uzdevumu, kur modelim, kas apmācīts ar Python kodu, ir jāaizpilda virkne ar pareizo pēdiņu veidu. Python valodā 'hello' jābeidzas ar vienu pēdiņu, bet “hello” - ar dubultu pēdiņu. Modelis var atrisināt šo problēmu, atceroties, ar kāda veida pēdiņām tika atvērta virkne, un atveidojot tās beigās.

Mūsu visinterpretējamākie modeļi šķietami satur atšķetinātas shēmas, kas īsteno tieši šo algoritmu.

Diagramma, kas ilustrē piemēra shēmu retā transformatorā. Tas parāda, kā specifiski neironi un uzmanības galvas aktivizējas, reaģējot uz ievades tekstvienībām, piemēram, “(” un “ķēdēm”, ar marķētiem ceļiem pozitīviem un negatīviem svariem, reizinājumiem, nelinearitātēm un savienojumiem starp MLP un uzmanības slāņiem, kas beidzas ar izvades tekstvienības varbūtībām.

Piemērs ķēdei retā transformatorā, kas paredz, vai virkni beigt ar vienu pēdiņu vai dubultajām pēdiņām. Šajā shēmā tiek izmantoti tikai pieci atlikuma kanāli (vertikālās pelēkās līnijas), divi MLP neironi 0. slānī un viens uzmanības vaicājuma-atslēgas kanāls un viens vērtības kanāls 10. slānī. Modelis (1) kodē vienkāršās pēdiņas vienā atlikušajā kanālā un dubultās pēdiņas citā; (2) izmanto MLP slāni, lai to pārvērstu vienā kanālā, kas nosaka jebkuruas pēdiņas, un citā, kas klasificē starp vienu pēdiņu un dubultajām pēdiņām; (3) izmanto uzmanības mehānismu, lai ignorētu starpā esošās tekstvienības, atrastu iepriekšējo pēdiņu un kopētu tās veidu uz pēdējo tekstvienību; un (4) prognozē atbilstošas noslēguma pēdiņas.

Mūsu definīcijā precīzi savienojumi, kas parādīti iepriekš, ir pietiekami, lai veiktu uzdevumu—ja mēs noņemam pārējo modeli, šī mazā shēma joprojām darbojas. Tās ir arī nepieciešamas – šo nedaudzo malu dzēšana izraisa modeļa kļūmi.

Mēs arī aplūkojām dažas sarežģītākas uzvedības. Mūsu shēmas šīm uzvedībām (piemēram, zemāk parādītā mainīgo saistīšana) ir grūtāk pilnībā izskaidrot. Pat tad mēs joprojām varam iegūt relatīvi vienkāršus daļējus skaidrojumus, kas prognozē modeļa uzvedību.

Diagramma, kas izceļ piemēru ar retu transformatora shēmu Python funkcijā get_neighbors. Divas piešķiršanas current = set() ir iekļautas lodziņā, ar krāsainām bultiņām, kas parāda, kuras uzmanības galviņas (apzīmētas ar Q/K/V indeksiem) aktivizējas, lai savienotu katru mainīgā current parādīšanos ar tā izmantošanu cilpā.

Vēl viens piemērs shēmai, mazāk detalizēti. Lai noteiktu mainīgā ar nosaukumu current tipu, viena uzmanības operācija kopē mainīgā nosaukumu set() tekstvienībā, kad tas ir definēts, un cita vēlāka operācija kopē tipu no set() tekstvienības nākamajā mainīgā lietojumā, ļaujot modelim secināt pareizo nākamo tekstvienību.

Turpmākais ceļš

Šis darbs ir agrīns solis ceļā uz lielāku mērķi: padarīt modeļu aprēķinus vieglāk saprotamus. Taču vēl jāmēro tāls ceļš. Mūsu retie modeļi ir daudz mazāki nekā jaunākie modeļi, un liela daļa to aprēķinu paliek neinterpretēta. 

Pēc tam mēs ceram paplašināt mūsu metodes uz lielākiem modeļiem un izskaidrot vairāk modeļu uzvedības. Uzskaitot ķēdes motīvus, kas ir sarežģītāku apsvērumu pamatā spējīgos retos modeļos, mēs varētu attīstīt izpratni, kas palīdz mums labāk orientēties uz jaunāko modeļu izpēti.

Lai pārvarētu retu modeļu mācību neefektivitāti, mēs saskatām divus turpmākos ceļus. Viens no tiem ir izvilkt retas ķēdes no esošajiem blīvajiem modeļiem, nevis veikt retu modeļu mācības no nulles. Blīvie modeļi ir būtiski efektīvāki ieviešanai nekā retie modeļi. Otrs ceļš ir izstrādāt efektīvākas metodes, lai apmācītu modeļus interpretējamībai, ko varētu būt vieglāk ieviest ražošanā.

Ņem vērā, ka mūsu atklājumi šeit negarantē, ka šī pieeja attieksies uz spējīgākām sistēmām, taču šie agrīnie rezultāti ir daudzsološi. Mūsu mērķis ir pakāpeniski paplašināt, cik lielu daļu modeļa mēs varam droši interpretēt, un izveidot rīkus, kas padara nākotnes sistēmas vieglāk analizējamas, atkļūdojamas un novērtējamas.

Autori

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