Անցնել հիմնական բովանդակությանը
OpenAI

Նեյրոնային ցանցերի ըմբռնումը նոսր սխեմաների միջոցով

Մենք վերապատրաստեցինք մոդելներին մտածել ավելի պարզ, ավելի հետագծելի քայլերով, որպեսզի կարողանանք ավելի լավ հասկանալ, թե ինչպես են դրանք աշխատում:

Բեռնվում է…

​​Նեյրոնային ցանցերը հզորացնում են այսօրվա ամենաընդունակ ԱԲ համակարգերը, բայց դրանք դեռևս դժվար է հասկանալ։ Մենք չենք գրում այս մոդելները հստակ, քայլ առ քայլ հրահանգներով: Փոխարենը, դրանք սովորում են՝ կարգավորելով միլիարդավոր ներքին կապեր, կամ «կշիռներ», մինչև որ տիրապետեն առաջադրանքին։ Մենք նախագծում ենք ուսուցման կանոնները, բայց ոչ այն կոնկրետ վարքագծերը, որոնք ի հայտ են գալիս, և արդյունքում ստացվում է կապերի խիտ ցանց, որը ոչ մի մարդ չի կարող հեշտությամբ վերծանել։ 

Ինչպես ենք մենք ընկալում մեկնաբանելիությունը

Քանի որ ԱԲ համակարգերը դառնում են ավելի ընդունակ և իրական ազդեցություն են ունենում գիտության, կրթության և առողջապահության ոլորտում որոշումների վրա, կարևոր է հասկանալ, թե ինչպես են դրանք աշխատում: Մեկնաբանելիությունը վերաբերում է այն մեթոդներին, որոնք օգնում են մեզ հասկանալ, թե ինչու է մոդելը արտադրել տվյալ արդյունքը: Կան բազմաթիվ եղանակներ, որոնցով մենք կարող ենք հասնել սրան։ 

Օրինակ, հիմնավորման մոդելները խրախուսվում են բացատրել իրենց աշխատանքը վերջնական պատասխանի հասնելու ուղուն: Մտքերի շղթայի մեկնաբանելիությունը օգտագործում է այս բացատրությունները՝ մոդելի վարքագիծը վերահսկելու համար: Սա անմիջապես օգտակար է. ներկայիս հիմնավորման մոդելների մտքի շղթաները կարծես տեղեկատվական են խաբեության նման մտահոգիչ վարքագծերի նկատմամբ: Այնուամենայնիվ, լիովին հենվել այս հատկության վրա՝ փխրուն ռազմավարություն է, և դա կարող է ժամանակի ընթացքում խափանվել:

Մյուս կողմից, մեխանիստիկ մեկնաբանելիությունը, որը այս աշխատանքի ուշադրության կենտրոնում է, ձգտում է ամբողջովին հակադարձ ինժեներացնել մոդելի հաշվարկները: Այն մինչ այժմ անմիջապես այնքան էլ օգտակար չի եղել, բայց սկզբունքորեն կարող է առաջարկել մոդելի վարքագծի ավելի ամբողջական բացատրություն: Փորձելով բացատրել մոդելի վարքագիծը առավել մանրամասն մակարդակում՝ մեխանիկական մեկնաբանելիությունը կարող է ավելի քիչ ենթադրություններ անել և մեզ ավելի մեծ վստահություն հաղորդել։ Բայց ցածր մակարդակի մանրամասներից դեպի բարդ վարքագծերի բացատրություններ տանող ճանապարհը շատ ավելի երկար և ավելի դժվար է։

Մեկնաբանելիությունը աջակցում է մի քանի հիմնական նպատակների, օրինակ՝ ավելի լավ վերահսկողության հնարավորություն տալով և ապահովելով անապահով կամ ռազմավարական սխալ վարքագծի վաղ նախազգուշացման նշաններ: Այն նաև լրացնում է անվտանգության մեր մյուս ջանքերը, ինչպիսիք են մասշտաբային վերահսկողությունը, հակառակորդի ուսուցումը և կարմիր թիմավորումը: 

Այս աշխատանքում մենք ցույց ենք տալիս, որ հաճախ կարող ենք մոդելները վարժեցնել այնպիսի եղանակներով, որոնք հեշտացնում են դրանց մեկնաբանումը: Մենք մեր աշխատանքը դիտարկում ենք որպես խիտ ցանցերի հետհետազոտական վերլուծության խոստումնալից լրացում։ 

Սա շատ հավակնոտ խաղադրույք է. մեր աշխատանքից մինչև մեր ամենահզոր մոդելների բարդ վարքագծերը լիովին հասկանալը երկար ճանապարհ կա: Այնուամենայնիվ, պարզ վարքագծերի համար մենք գտնում ենք, որ մեր մեթոդով վերապատրաստված նոսր մոդելները պարունակում են փոքր, տարանջատված սխեմաներ, որոնք և՛ հասկանալի են, և՛ բավարար՝ վարքագիծը կատարելու համար: Սա ենթադրում է, որ կարող է լինել հասկանալի ճանապարհ դեպի ավելի մեծ համակարգերի ուսուցում, որոնց մեխանիզմները մենք կարող ենք հասկանալ:

Նոր մոտեցում՝ նոսր մոդելների ուսուցում

Նախորդ մեխանիկական մեկնաբանելիության աշխատանքները սկսել են խիտ, խճճված ցանցերից և փորձել են դրանք ապախճճել։ Այս ցանցերում յուրաքանչյուր առանձին նեյրոն կապված է հազարավոր այլ նեյրոնների հետ։ Նեյրոնների մեծ մասը կարծես կատարում է բազմաթիվ տարբեր ֆունկցիաներ, ինչը թվում է, թե անհնար է հասկանալ։ 

Բայց ի՞նչ կլինի, եթե մենք վարժեցնեինք չխճճված նեյրոնային ցանցեր՝ շատ ավելի նեյրոններով, բայց որտեղ յուրաքանչյուր նեյրոն ունի ընդամենը մի քանի տասնյակ կապեր: Հետո գուցե արդյունքում ստացվող ցանցը կլինի ավելի պարզ և ավելի հասկանալի։ Սա մեր աշխատանքի հիմնական հետազոտական ուղղությունն է:

Այս սկզբունքը հաշվի առնելով՝ մենք վարժեցրեցինք լեզվի մոդելներ, որոնք GPT‑2‑ի նման գոյություն ունեցող լեզվի մոդելներին շատ նման ճարտարապետություն ունեն՝ մեկ փոքր փոփոխությամբ. մենք ստիպում ենք մոդելի կշիռների ճնշող մեծամասնությունը զրո լինել: Սա սահմանափակեց մոդելին օգտագործել իր նեյրոնների միջև հնարավոր կապերից միայն շատ քչերը: Սա պարզ փոփոխություն է, որը մենք պնդում ենք, էապես պարզեցնում է մոդելի ներքին հաշվարկները:

Դիագրամ, որը համեմատում է խիտ սխեմաները և սակավ սխեմաները: Խիտ տարբերակը ցույց է տալիս երկու շարք հանգույցներ բազմաթիվ փոխկապակցված գծերով, մինչդեռ սակավ տարբերակը ցույց է տալիս նույն դասավորությունը, բայց ավելի քիչ և ավելի ընտրողական կապերով։

Նորմալ խիտ նեյրոնային ցանցերում յուրաքանչյուր նեյրոն միացված է հաջորդ շերտի յուրաքանչյուր նեյրոնին։ Մեր նոսր մոդելներում յուրաքանչյուր նեյրոն կապվում է միայն հաջորդ շերտի մի քանի նեյրոնների հետ։ Հուսով ենք, որ դա նեյրոնները և ցանցն ամբողջությամբ ավելի հասկանալի կդարձնի։

Մեկնաբանելիության գնահատում

Մենք ցանկանում ենք չափել, թե որքանով են տարանջատված մեր նոսր մոդելների հաշվարկները։ Մենք դիտարկեցինք տարբեր պարզ մոդելի վարքագծեր և ստուգեցինք, թե արդյոք կարող ենք մեկուսացնել մոդելի այն մասերը, որոնք պատասխանատու են յուրաքանչյուր վարքագծի համար, որոնք մենք անվանում ենք շղթաներ:

Մենք ձեռքով ընտրեցինք պարզ ալգորիթմական առաջադրանքների հավաքածու: Յուրաքանչյուրի համար մենք կրճատեցինք մոդելը մինչև ամենափոքր միացում, որը դեռ կարող է կատարել առաջադրանքը, և ուսումնասիրեցինք, թե որքան պարզ է այդ միացումը: (Մանրամասների համար տե՛ս մեր հոդվածը(բացվում է նոր պատուհանում)։) Մենք հայտնաբերեցինք, որ ավելի մեծ և ավելի ցրված մոդելների ուսուցմամբ՝ կարող ենք ստեղծել ավելի ու ավելի ընդունակ մոդելներ՝ ավելի պարզ սխեմաներով:

Ցրման գրաֆիկ, որը ցույց է տալիս մոդելի ունակությունը (նախնական ուսուցման կորուստը) x-առանցքի վրա՝ ընդդեմ մեկնաբանելիության (էտված միացման չափը) y-առանցքի վրա։ Միավորները ներկայացնում են տարբեր չափերի և նոսրության մակարդակների մոդելներ, որոնց գույնը ցույց է տալիս ընդհանուր պարամետրերը, իսկ նշանի չափը՝ ոչ զրոյական պարամետրերի քանակը: Սլաքները վերին աջ ուղղությունը նշում են որպես «ավելի լավ»։

Մենք գծում ենք մեկնաբանելիությունը և հնարավորությունը մոդելների միջև (ստորին ձախը ավելի լավն է): Ֆիքսված սակավ մոդելի չափի դեպքում սակավության ավելացումը՝ ավելի շատ կշիռներ զրոյացնելով, նվազեցնում է կարողությունը, բայց մեծացնում է մեկնաբանելիությունը։ Մոդելի չափի մեծացումը տեղափոխում է այս սահմանը դեպի դուրս՝ ցույց տալով, որ մենք կարող ենք կառուցել ավելի մեծ մոդելներ, որոնք և՛ ունակ են, և՛ մեկնաբանելի:

Սա կոնկրետ դարձնելու համար պատկերացրեք մի առաջադրանք, որտեղ Python կոդի վրա վերապատրաստված մոդելը պետք է լրացնի մի տող՝ ճիշտ տիպի չակերտով: Python-ում ‘hello’-ն պետք է ավարտվի մեկական չակերտով, իսկ “hello”-ն պետք է ավարտվի կրկնակի չակերտով։ Մոդելը կարող է լուծել այս խնդիրը՝ հիշելով, թե որ տեսակի մեջբերումն է բացել տողը և այն վերարտադրելով վերջում։

Մեր առավել մեկնաբանելի մոդելները, կարծես, պարունակում են տարանջատված սխեմաներ, որոնք իրականացնում են հենց այդ ալգորիթմը:

Սխեմա, որը ցույց է տալիս նոսր տրանսֆորմատորի օրինակելի միացում: Այն ցույց է տալիս, թե ինչպես են որոշակի նեյրոններն ու ուշադրության կենտրոններն ակտիվանում ի պատասխան մուտքային տոկենների, ինչպիսիք են «(» և «սխեմաների»՝ դրական և բացասական կշիռների, բազմապատկումների, ոչ գծայնությունների և MLP-ի ու ուշադրության շերտերի միջև կապերի պիտակավորված ուղիներով, որոնք ավարտվում են արտածման թոքենների հավանականություններով:

Օրինակային սխեմա նոսր փոխարկիչում, որը կանխատեսում է՝ արդյոք տողը պետք է ավարտել մեկ կամ կրկնակի չակերտով։ Այս սխեման օգտագործում է ընդամենը հինգ մնացորդային ալիք (ուղղահայաց մոխրագույն գծեր), երկու MLP նեյրոն 0-րդ շերտում և մեկ ուշադրության հարցում-բանալին ալիք և մեկ արժեքային ալիք 10-րդ շերտում: Մոդելը (1) կոդավորում է միայնակ չակերտները մեկ մնացորդային ալիքում և կրկնակի չակերտները մյուսում; (2) օգտագործում է MLP շերտ՝ սա վերածելու մեկ ալիքի, որը հայտնաբերում է ցանկացած չակերտ, և մյուսի, որը դասակարգում է միայնակ և կրկնակի չակերտների միջև; (3) օգտագործում է ուշադրության գործողություն՝ միջամտող տոկենները անտեսելու, նախորդ չակերտը գտնելու և դրա տեսակը վերջնական տոկենին պատճենելու համար; և (4) կանխատեսում է համապատասխանող փակման չակերտը:

Մեր սահմանման մեջ վերը նշված ճշգրիտ կապերը բավարար են առաջադրանքը կատարելու համար՝ եթե հեռացնենք մոդելի մնացած մասը, այս փոքր միացումը դեռ աշխատում է։ Դրանք նույնպես անհրաժեշտ են՝ այս մի քանի եզրերը ջնջելը մոդելի ձախողման պատճառ է դառնում:

Մենք նաև դիտարկեցինք որոշ ավելի բարդ վարքագծեր։ Մեր այս վարքագծերի սխեմաները (օրինակ՝ ստորև ներկայացված փոփոխական կապելը) ավելի դժվար է ամբողջությամբ բացատրել: Նույնիսկ այդ ժամանակ մենք դեռ կարող ենք հասնել համեմատաբար պարզ մասնակի բացատրությունների, որոնք կանխատեսում են մոդելի վարքագիծը:

Դիագրամ, որը ցույց է տալիս Python ֆունկցիայի get_neighbors-ի ներսում սակավ տրանսֆորմատորային սխեմայի օրինակ։ current = set() փոփոխականին երկու հանձնարարությունները տուփով են, գունավոր սլաքներով, որոնք ցույց են տալիս, թե որ ուշադրության կենտրոնները (պիտակավորված Q/K/V ինդեքսներով) ակտիվանում են փոփոխական current-ի յուրաքանչյուր առաջացումը հանգույցում դրա օգտագործման հետ կապելու համար:

Մեկ այլ օրինակելի սխեմա՝ ավելի քիչ մանրամասնությամբ։ Փոփոխականի current տեսակը որոշելու համար ուշադրության գործողություններից մեկը պատճենում է փոփոխականի անունը set() նշանի մեջ, երբ այն սահմանվում է, իսկ մեկ այլ գործողություն ավելի ուշ պատճենում է տեսակը set() նշանից փոփոխականի հետագա օգտագործման մեջ՝ թույլ տալով մոդելին եզրակացնել ճիշտ հաջորդ նշանը:

Առջևում գտնվող ճանապարհը

Այս աշխատանքը վաղ քայլ է դեպի ավելի մեծ նպատակ՝ մոդելի հաշվարկները ավելի հեշտ հասկանալի դարձնելը: Բայց դեռ երկար ճանապարհ կա անցնելու։ Մեր նոսր մոդելները շատ ավելի փոքր են, քան առաջատար մոդելները, և դրանց հաշվարկի մեծ մասերը մնում են չմեկնաբանված: 

Հետագայում մենք հույս ունենք մասշտաբավորել մեր մեթոդները ավելի մեծ մոդելների համար և ավելի մանրամասն բացատրել մոդելների վարքագիծը։ Թվարկելով ավելի բարդ դատողությունների հիմքում ընկած շրջանային մոտիվները ընդունակ հազվագյուտ մոդելներում՝ մենք կարող ենք զարգացնել հասկացողություն, որն օգնում է մեզ ավելի լավ թիրախավորել առաջատար մոդելների հետազոտությունները։

Նոսր մոդելների ուսուցման անարդյունավետությունը հաղթահարելու համար մենք տեսնում ենք երկու ուղի առաջընթացի համար: Մեկը գոյություն ունեցող խիտ մոդելներից նոսր սխեմաներ հանելն է, այլ ոչ թե զրոյից նոսր մոդելներ ուսուցումն է: Խիտ մոդելները սկզբունքորեն ավելի արդյունավետ են տեղակայման համար, քան նոսր մոդելները: Մյուս ճանապարհը ավելի արդյունավետ տեխնիկաներ մշակելն է՝ մոդելները մեկնաբանելիության համար վարժեցնելու, ինչը կարող է ավելի հեշտ լինել արտադրության մեջ դնելը:

Նկատի ունեցեք, որ մեր գտածոներն այստեղ երաշխիք չեն, որ այս մոտեցումը կտարածվի ավելի ընդունակ համակարգերի վրա, սակայն այս նախնական արդյունքները խոստումնալից են։ Մեր նպատակն է աստիճանաբար ընդլայնել, թե որքան մոդել կարող ենք հուսալիորեն մեկնաբանել, և ստեղծել գործիքներ, որոնք ապագա համակարգերը կդարձնեն ավելի հեշտ վերլուծելու, վրիպազերծելու և գնահատելու համար:

Հեղինակներ

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