Neuroninių tinklų veikimo aiškinimas remiantis retosiomis grandinėmis
Mokėme modelius mąstyti paprastesniais, lengviau atsekamais žingsniais, kad galėtume geriau suprasti, kaip jie veikia.
Neuroniniai tinklai valdo šiandienos pajėgiausias DI sistemas, tačiau juos vis dar sunku suprasti. Nerašome šiems modeliams aiškių, nuoseklių instrukcijų. Vietoj to, jie mokosi koreguodami milijardus vidinių jungčių, arba „svorių“, kol įvaldo užduotį. Nustatome mokymo taisykles, bet ne konkrečią atsirandančią veikseną, todėl rezultatas yra tankus jungčių tinklas, kurį žmogui sunku iššifruoti.
DI sistemoms tampant vis pajėgesnėms ir darančioms realų poveikį sprendimams mokslo, švietimo ir sveikatos priežiūros srityse, suprasti, kaip jos veikia, yra būtina. Interpretuojamumas reiškia metodus, padedančius suprasti, kodėl modelis pateikė tam tikrą išvestį. Yra daug būdų, kaip galėtume tai pasiekti.
Pavyzdžiui, samprotavimo modeliai yra skatinami paaiškinti, ką atliko bandydami gauti galutinį atsakymą. Interpretuojant minčių grandinę šie paaiškinimai naudojami modelio veiksenai stebėti. Tai duoda tiesioginę naudą: dabartinių samprotavimo modelių minčių grandinės atskleidžia nemažai informacijos apie susirūpinimą keliančius elgesio modelius, pavyzdžiui, apgaulę. Vis dėlto visiškai pasikliauti šia savybe yra trapi strategija, kuri ilgainiui gali nebeveikti.
Kita vertus, mechanistinis interpretuojamumas, kuris yra šio darbo objektas, skirtas visiškai atvirkštinės inžinerijos būdu išanalizuoti modelio skaičiavimus. Kol kas jis buvo mažiau naudingas, bet iš esmės galėtų pasiūlyti išsamesnį modelio veiksenos paaiškinimą. Siekdamas paaiškinti modelio veikseną detaliausiu lygmeniu, mechanistinis interpretuojamumas leidžia daryti mažiau prielaidų ir suteikia daugiau pasitikėjimo. Tačiau kelias nuo žemo lygio detalių iki sudėtingos veiksenos paaiškinimų yra daug ilgesnis ir sunkesnis.
Interpretuojamumas padeda siekti kelių pagrindinių tikslų, pavyzdžiui, leidžia užtikrinti geresnę priežiūrą ir suteikia ankstyvų įspėjamųjų ženklų apie nesaugią ar strategiškai nesuderintą veikseną. Jis taip pat papildo kitas mūsų saugos pastangas, tokias kaip keičiamo masto priežiūra, mokymas naudojant klaidinančias įvestis ir testavimas siekiant nustatyti spragas.
Šiame darbe parodome, kad dažnai galime mokyti modelius taip, kad juos būtų lengviau interpretuoti. Savo darbą matome kaip perspektyvų papildymą tankių tinklų post-hoc analizei.
Tai labai ambicingas žingsnis – kelias nuo mūsų vykdomo darbo iki visiško galingiausių mūsų modelių sudėtingo elgesio supratimo yra dar labai ilgas. Vis dėlto, kalbant apie paprastą veikseną, pastebime, kad retieji modeliai, mokyti taikant mūsų metodą, turi mažas, atskirtas grandines, kurios yra ir suprantamos, ir pakankamos veiksenai įgyvendinti. Iš to galima spręsti, kad yra pakankamai realistiškas kelias mokyti didesnes sistemas taip, kad suprastume jų veikimo mechanizmus.
Ankstesni mechanistinio interpretuojamumo darbai prasidėdavo nuo tankių, susipynusių tinklų, bandant juos išnarplioti. Šiuose tinkluose kiekvienas atskiras neuronas yra sujungtas su tūkstančiais kitų neuronų. Atrodo, kad dauguma neuronų atlieka daug skirtingų funkcijų, todėl juos suprasti atrodo neįmanoma.
Bet kas, jei mokytume išnarpliotus neuroninius tinklus, turinčius daug daugiau neuronų, bet kuriuose kiekvienas neuronas turėtų tik keliasdešimt jungčių? Tuomet galbūt gautas tinklas bus paprastesnis ir lengviau suprantamas. Tai yra pagrindinė mūsų tyrimo idėja.
Vadovaudamiesi šiuo principu, mokėme kalbos modelius, kurių architektūra labai panaši į esamų kalbos modelių, pavyzdžiui, GPT‑2, tik su vienu nedideliu pakeitimu: paverčiame didžiąją dalį modelio svorių nuliais. Modelis buvo priverstas naudoti tik labai nedaug galimų jungčių tarp neuronų. Tai paprastas pakeitimas, kuris, mūsų teigimu, iš esmės atskiria modelio vidinius skaičiavimus.
Įprastuose tankiuosiuose neuroniniuose tinkluose kiekvienas neuronas yra sujungtas su kiekvienu kitu kito sluoksnio neuronu. Mūsų retuosiuose modeliuose kiekvienas neuronas jungiasi tik su keliais kito sluoksnio neuronais. Tikimės, kad dėl to neuronai ir visas tinklas taps lengviau suprantami.
Norime išmatuoti, kokiu mastu mūsų retųjų modelių skaičiavimai yra atskirti. Nagrinėjome įvairias paprastas modelio veiksenas ir tikrinome, ar galime išskirti modelio dalis, atsakingas už kiekvieną veikseną (vadinamąsias grandines).
Rankiniu būdu sudarėme paprastų algoritminių užduočių rinkinį. Kiekvienai iš jų apkarpytą modelį sumažinome iki mažiausios grandinės, kuri vis dar gali atlikti užduotį, ir tyrėme tos grandinės paprastumą. (Daugiau informacijos rasite mūsų straipsnyje(atsidaro naujame lange).) Nustatėme, kad mokydami didesnius ir retesnius modelius, galėjome sukurti vis pajėgesnius modelius su vis paprastesnėmis grandinėmis.
Nubraižėme modelių interpretuojamumo ir pajėgumo santykio diagramą (kairioji apatinė pusė yra geresnė). Esant fiksuotam retojo modelio dydžiui, didinant retumą – nustatant daugiau svorių į nulį – mažėja pajėgumas, bet didėja interpretuojamumas. Didinant modelį, ši riba pasislenka į išorę, o tai rodo, kad galime sukurti didesnius modelius, kurie būtų ir pajėgūs, ir interpretuojami.
Kad būtų aiškiau, panagrinėkime užduotį, kurioje „Python“ kodu išmokytas modelis turi užbaigti eilutę tinkamo tipo kabutėmis. „Python“ kalboje 'hello' turi baigtis vienguba kabute, o "hello" – dvigubomis kabutėmis. Modelis gali tai išspręsti prisimindamas, kokio tipo kabutės buvo eilutės pradžioje, ir atkartodamas ją pabaigoje.
Mūsų lengviausiai interpretuojami modeliai tri atskirtas grandines, kurios įgyvendina būtent šį algoritmą.

Pavyzdinė grandinė retajame transformatoriuje, kuri prognozuoja, ar eilutę baigti viengubomis, ar dvigubomis kabutėmis. Ši grandinė naudoja tik penkis liekamuosius kanalus (vertikalios pilkos linijos), du MLP neuronus 0 sluoksnyje ir vieną dėmesio užklausos–rakto kanalą bei vieną vertės kanalą 10 sluoksnyje. Modelis 1) viengubas kabutes užkoduoja viename liekamajame kanale, o dvigubas – kitame; 2) naudoja MLP sluoksnį, kad paverstų tai vienu kanalu, aptinkančiu bet kokias kabutes, ir kitu, atskiriančiu viengubas ir dvigubas kabutes; 3) naudoja dėmesio operaciją, kad ignoruotų tarpinius prieigos raktus, rastų ankstesnes kabutes ir nukopijuotų jų tipą į galutinį prieigos raktą; ir 4) prognozuoja atitinkamą uždarančią kabutę.
Pagal mūsų apibrėžimą, tikslios pirmiau parodytos jungtys yra pakankamos užduočiai atlikti – jei pašalinsime likusią modelio dalį, ši maža grandinė vis tiek veiks. Jos taip pat yra būtinos – pašalinus šias kelias briaunas, modelis nebeveikia.
Taip pat nagrinėjome sudėtingesnę veikseną. Šios veiksenos grandines (pavyzdžiui, toliau pavaizduotą kintamųjų susiejimą) sunkiau iki galo paaiškinti. Net ir tada galime gauti palyginti paprastus dalinius paaiškinimus, prognozuojančius modelio veikseną.
Dar viena pavyzdinė grandinė, ne tokia išsami. Norint nustatyti kintamojo, pavadinto current, tipą, viena dėmesio operacija nukopijuoja kintamojo pavadinimą į prieigos raktą set(), kai jis apibrėžiamas, o kita vėlesnė operacija nukopijuoja tipą iš prieigos rakto set() į vėlesnį kintamojo naudojimą, leisdama modeliui tinkamai numnyti kitą prieigos raktą.
Šis darbas – ankstyvas žingsnis siekiant didesnio tikslo – padaryti modelio skaičiavimus lengviau suprantamus. Tačiau dar reikia daug ką nuveikti. Mūsų retieji modeliai yra daug mažesni už pažangiausius modelius, o didelė jų skaičiavimų dalis lieka neinterpretuota.
Toliau tikimės pritaikyti savo metodus didesniems modeliams ir paaiškinti daugiau modelių veiksenos. Išvardiję grandinių motyvus, kuriais grindžiamas sudėtingesnis samprotavimas pajėgiuose retuosiuose modeliuose, galėtume geriau suprasti, kaip tikslingiau tirti pažangiausius modelius.
Matome du būdus, kaip įveikti retųjų modelių mokymo neefektyvumą. Vienas jų – išgauti retas grandines iš esamų tankiųjų modelių, o ne mokyti retuosius modelius nuo nulio. Tankiuosius modelius įdiegti iš esmės efektyviau nei retuosius. Kitas kelias – kurti efektyvesnius modelių mokymo interpretuojamumui metodus, kuriuos būtų lengviau pritaikyti gamybinėje aplinkoje.
Atkreipkite dėmesį, kad mūsų išvados negarantuoja, jog šis metodas tiks pajėgesnėms sistemoms, tačiau šie ankstyvi rezultatai teikia vilčių. Mūsų tikslas – laipsniškai plėsti patikimai interpretuojamą modelio dalį ir kurti įrankius, padedančius lengviau analizuoti, taisyti riktus ir vertinti būsimas sistemas.
Autoriai
Leo Gao, Achyuta Rajaram, Jacob Coxon, Soham V. Govande, Bowen Baker ir Dan Mossing


