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

Ի՞նչ է թոքենիզատորը:

Tokenizer-ը տեքստը բաժանում է բառերի կամ ենթաբառերի, դրան հասնելու բազմաթիվ եղանակներ կան:

Օրինակ, ստորև տրված տեքստը կարելի է բաժանել ենթաբառերի մի քանի ձևով.

Բառերին կցված կետադրական նշանները դրանք դարձնում են ոչ օպտիմալ: Կետադրական նշանների առկայությունը մոդելին կստիպի սովորել կոնկրետ ներկայացումը և կփրկի նրան բառին հաջորդող ամեն հնարավոր կետադրական նշանով պատկերների հսկայական քանակ սովորելուց:

Բայց դա պարզապես չի դադարում այստեղ. Ավելի լավ կլիներ, որ «Let’s»-ը նշվեր որպես «Let» և «s»: Սա ընդամենը մեկ օրինակ է այն բանի, թե ինչպես է տարբերվում նշանավորումը՝ հիմնվելով կիրառվող կանոնի վրա: Նշանակման տարբեր կանոնները կբերեն տարբեր արդյունքներ նույն մուտքային տեքստի համար:

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

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

Տեսնենք սա օրինակով.

Նկատի ունեցեք, որ բոլոր բառերը փոքրատառերով են, քանի որ մենք օգտագործում ենք առանց տառերի մոդել: Ի հավելումն կետադրական խնդիրների, ինչպես ցույց է տրված նաև վերը նշված օրինակում, ուշադրություն դարձրեք, որ «tokenize» բառը բացակայում է բառապաշարում և, հետևաբար, բաժանվում է որպես [«token», «##ize»]: «##»-ը նշանակում է, որ այս նշանը պետք է կցվի նախորդի հետ՝ վերարտադրելիության նպատակով վերծանման ժամանակ:

Տեսնենք, թե որն է մեր հաջորդ լավագույն խաղադրույքը, նիշերի մակարդակի նշանավորումը: Իր պարզեցված նշանաբանության կանոնի շնորհիվ այն ոչ ժամանակ է պահանջում, ոչ էլ ծանրաբեռնում հիշողության վրա: Բայց այն հարվածում է մոդելի կատարողականին այն պարզ պատճառով, որ այն չի կարողանում սովորել իմաստալից մուտքային ներկայացումները, օրինակ. Սովորելով «C» ընդդեմ «Covid»-ի ներկայացումը. ո՞ր մեկն է ավելի հեշտ սովորելը իմաստալից ներկայացման առումով:

Այսպիսով, մենք տեսել ենք բառերի և կերպարների նշանավորումը և կդիմենք հիբրիդային մոտեցմանը, որը կոչվում է ենթաբառի նշանավորում:

Ենթաբառերի նշանաբանը և դրա բնութագրերը.

  • Աջակցում է բառապաշարի ողջամիտ չափին
  • Սովորում է համատեքստից անկախ բովանդակալից ներկայացումներ
  • Մշակում է նախկինում չտեսնված բառերը

Տեսնենք ինչպես?

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

Եկեք սովորենք, թե որոնք են երեք հիմնական ենթաբառերի նշանաբանները.

  • BPE (Բայթ զույգի կոդավորում)
  • Բառ-կտոր
  • Նախադասություն-կտոր

Բայթ զույգի կոդավորում՝

Ես փորձել եմ բացատրել BPE ենթաբառերի tokeinzation գործընթացը՝ օգտագործելով ստորև ներկայացված պատկերը: Հուսով ենք, որ դա կօգնի ձեզ հասկանալ տարբեր քայլերը՝ նախնական նշանավորման, հիմնական բառապաշարի ձևավորման և ինչպես միաձուլման կանոնները հանգեցնում են թարմացված բառապաշարի:

Եթե ​​«bug» նոր բառ հայտնվի՝ հիմնվելով BPE մոդելի ուսուցման կանոնների վրա, այն կնշանակվի որպես [«b», «ug»]: Այն դեպքում, երբ նոր բառերը կազմում են նշաններ, որոնք չկան հիմնական բառապաշարում, օրինակ. «Գավաթ»-ը պարունակում է «m» նշանը, որն ի սկզբանե չկար բառապաշարում, կփոխարինվի «‹unk›» նշանով: Նկատի ունեցեք, որ այս ‹unk› նշանն անհրաժեշտ չէ, եթե բառապաշարում առկա են բոլոր հիմնական նիշերը: Սա ձեռք է բերվում բայթ մակարդակի BPE-ի միջոցով:

WordPiece. Այն աշխատում է BPE-ի նման, այն տարբերությամբ, որ ընտրում է խորհրդանիշների զույգը, որը առավելագույնի կհասցնի բառապաշարին ավելացված ուսուցման տվյալների լեզու-մոդելի հավանականությունը, BPE-ում հաճախակի հանդիպող զույգի փոխարեն:

SentencePiece. Չվերահսկվող նշանաբան, որը ներառում է բացատներ նիշերի հավաքածուում և այնուհետև կիրառում է BPE բառապաշար ստեղծելու համար:

Հիմնական բնութագրերը.

  • Աջակցում է երկու սեգմենտավորման ալգորիթմներին, մասնավորապես բայթ-զույգ կոդավորումը (BPE) և unigram լեզվի մոդելը
  • Ֆիքսված բառապաշարի չափը, քանի որ գործնականում անհնար է ներառել ձեր բառապաշարի բոլոր բառերը՝ թվային ներկայացում ստանալու համար: օրինակ՝ փառք և փառաբանել, արժանապատվություն ընդդեմ արժանապատիվ, դրանք իմաստային առումով նույնն են և կարիք չունեն առանձին վեկտոր վերագրելու:
  • Ուղղակիորեն ստեղծում է բառապաշար id քարտեզագրման համար
  • Լեզվի համար ագնոստիկ, այսինքն՝ նախադասությունները վերաբերվում է որպես յունիկոդ նիշերի հաջորդականության և զերծ է լեզվից կախված տրամաբանությունից:
  • Մարզվում է անմիջապես չմշակված նախադասություններից և միշտ չէ, որ պահանջում է նախնական նշանավորում
  • Օգտագործում է կանոնակարգման մեթոդներ, ինչպիսիք են ենթաբառերի կանոնավորացումը և BPE-ի թողարկումը, որոնք հնարավորություն են տալիս տվյալների մեծացումը՝ կատարելով ենթաբառերի նմուշառում անմիջապես: Այս տեխնիկան արտադրում է ամուր մոդելներ և բարելավում է նյարդային մեքենայական թարգմանության մոդելների ճշգրտությունը:

Ամփոփում՝

Մենք սկսեցինք հասկանալով, թե ինչ է թոքենիզատորը և ինչու են դրանք առաջին հերթին անհրաժեշտ: Այնուհետև մենք սովորեցինք երեք տեսակի թոքենիզատորներ՝ նիշ, բառ և ենթաբառի նշանաբաններ: Ենթատոկենիզատորներում կան երեք հիմնական նշանաբաններ՝ BPE, WordPiece և SentencePiece

Հղումներ: