
Կարո՞ղ է gzip-ը լեզվական մոդել լինել. գեներատոր DEFLATE-ի հիման վրա
nathan.rs-ի գրառումը ստուգում է՝ կարո՞ղ է gzip սեղմիչը տեքստ գեներացնել։ gzipt փորձը կիրառում է ճառագայթային որոնում սեղմված բայթերի վրա՝ առանց նեյրոնային ցանցի և ուսուցման։
nathan.rs-ում հրապարակված բլոգային գրառումը տալիս է կատակ թվացող հարց. կարո՞ղ է gzip-ը՝ սեղմման գործիքը, որը գալիս է գրեթե բոլոր օպերացիոն համակարգերի հետ, աշխատել որպես լեզվական մոդել։ Հեղինակը ստեղծել է gzipt-ը՝ փոքր փորձ, որը տեքստ է գեներացնում միայն սեղմիչի միջոցով՝ առանց նեյրոնային ցանցի, առանց սովորած պարամետրերի։
Սեղմումը կանխատեսում է
Մեկնարկային կետը «Language Modeling is Compression» (arXiv 2309.10668) աշխատությունն է, որը ձևակերպում է սեղմման և կանխատեսման համարժեքությունը. ամեն կանխատեսման մոդել ինքնին սեղմիչ է, իսկ ամեն սեղմման ալգորիթմ՝ կանխատեսման մոդել։ Ինտուիցիան գալիս է ինֆորմացիայի տեսությունից. սիմվոլի կոդավորման համար անհրաժեշտ է −log₂ p բիթ, որտեղ p-ն այն հավանականությունն է, որ մոդելը վերագրում է նրան։ Բարձր հավանականությունը նշանակում է կարճ կոդ։
gzip-ը օգտագործում է DEFLATE ալգորիթմը և աշխատում է 32 ԿիԲ սահող պատուհանի վրա։ Եթե հաջորդ բայթերը կրկնում են պատուհանում արդեն եղածը, DEFLATE-ը դրանք կոդավորում է որպես էժան հետադարձ հղում։ Այստեղից է ծնվում գնահատականը. սեղմել համատեքստը թեկնածու շարունակության հետ և չափել արդյունքի երկարությունը։ Որքան կարճ է արդյունքը, այնքան «կանխատեսված» է թեկնածուն։ Կորպուսով նախնական պատրաստումը այդ կորպուսը դնում է gzip-ի պատուհանում։
Գնահատականից գեներացիա
Գնահատումը դեռ գեներացիա չէ։ Ամենալավ սեղմվող հաջորդ բայթի ընտրությունը ձախողվում է, որովհետև gzip-ը վերադարձնում է ամբողջ թիվ՝ առանց կոտորակների։ Մեկ բայթ ավելացնելը հաճախ երկարությունը բոլորովին չի փոխում, ուստի բազմաթիվ թեկնածուներ ստանում են նույն գնահատականը, և ազդանշանը կորչում է քվանտացման աղմուկի մեջ։ gzipt-ը հաղթահարում է դա ճառագայթային որոնմամբ (beam search). այն պահում է beam_width ամենասեղմվող մասնակի շարունակությունները, յուրաքանչյուրը ընդլայնում է կորպուսում հանդիպող բոլոր բայթերով, գնահատում արդյունքները սեղմված երկարությամբ և նորից կտրում։ Սա կրկնվում է horizon բայթի վրա, նախքան լավագույն հատվածի ամրագրումը։
Կարևոր մանրամասնություն. գնահատման համատեքստում մնում են գեներացված տեքստի միայն վերջին բայթերը։ DEFLATE-ը մոտ համընկնումները կոդավորում է ավելի էժան, քան հեռուները, ուստի ամբողջ պատմությունը տեսնող մոդելը կընկներ բառացի ցիկլերի մեջ՝ կրկնելով հենց նոր ստեղծածը։
Ինչ է ստացվում գործնականում
tiny Shakespeare կորպուսով պատրաստված գործիքը «MENENIUS:» հուշումից հետո վերադարձրել է տողեր, որոնք վերագրվում են Մենենիուսին, Մարցիուսին և Լարցիուսին՝ համահունչ չէ, բայց աղբյուրի ազդեցությունը ակնհայտ է։ Կոդը մեկ ֆայլ է ստանդարտ գրադարանի Python-ով (միայն zlib)։ Ծանոթագրություններում հեղինակը նշում է, որ աշխատության հեղինակները նման բան փորձել են, սակայն արդյունքները թույլ են եղել, իսկ ճառագայթային որոնման ավելացումը զգալիորեն բարելավել է գեներացիայի որակը։
Եզրակացությունը նեղ է, բայց իրական. ընդհանուր նշանակության սեղմիչը կարող է կրել տեքստի օգտակար ենթադրյալ մոդել։ Այն շատ հեռու է նեյրոնային լեզվական մոդելից, և հեղինակն ինքն է դա ասում։ Բայց սա մաքուր ցուցադրություն է, որ կանխատեսումն ու սեղմումը նույն խնդիրն են՝ երկու կողմից։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։