Bosh sahifa Wiki Tokenization

Tokenization

Tokenization — matn, audio yoki boshqa ketma-ket ma’lumotni model qayta ishlay oladigan kichik birliklarga ajratish jarayoni. Til modellarida tokenization matnni token IDlar ketma-ketligiga aylantiradi. Token so‘z, so‘z bo‘lagi, character, byte yoki maxsus belgi bo‘lishi mumkin.

Model vocabulary’si va tokenizer trainingdan oldin yoki model bilan birga tanlanadi. Bir modelning tokenlari boshqa modelnikiga mos kelmasligi mumkin.

So‘z darajasi

Oddiy word tokenization matnni bo‘sh joy va punctuation bo‘yicha bo‘ladi:

Men dasturlashni o‘rganaman.

natija:

Men | dasturlashni | o‘rganaman | .

Bu usul tushunarli, ammo katta vocabulary va unknown word muammosiga ega.

Character darajasi

Har character alohida token:

s | a | l | o | m

Vocabulary kichik bo‘ladi.

Har qanday yangi so‘zni ifodalash mumkin.

Sequence juda uzunlashadi va model uzoq character patternlarini o‘rganishi kerak.

Subword

Subword tokenizer so‘zlarni tez-tez uchraydigan bo‘laklarga ajratadi.

Masalan:

dasturlashni
→ dastur | lash | ni

Aniq bo‘linish tokenizer vocabulary’siga bog‘liq.

Subword usuli vocabulary hajmi va sequence uzunligi o‘rtasida muvozanat yaratadi.

Byte Pair Encoding

BPE dastlab character yoki byte birliklaridan boshlaydi.

Datasetda eng ko‘p yonma-yon uchraydigan juftliklar bosqichma-bosqich birlashtiriladi.

Natijada tez-tez so‘zlar bitta token, kam uchraydigan so‘zlar bir nechta subword bo‘ladi.

Merge qoidalari tokenizer artifactining bir qismi.

WordPiece

WordPiece vocabulary tanlashda likelihood yoki modelga foydali birlashmalarga yaqin objective ishlatadi.

U subword prefix yoki continuation belgilaridan foydalanishi mumkin.

Turli implementation qoidalari mavjud.

BPE va WordPiece o‘xshash, lekin aynan bir xil algorithm emas.

Unigram tokenizer

Unigram modeli katta candidate vocabulary’dan boshlaydi.

Kam foydali tokenlar bosqichma-bosqich olib tashlanadi.

Bir matn uchun bir nechta segmentatsiya ehtimoli bo‘lishi mumkin.

Trainingda probabilistik segmentation regularization sifatida ishlatilishi ehtimoli bor.

Byte-level tokenization

Matn UTF-8 byte’lariga yaqin birliklardan ifodalanadi.

Afzalligi — unknown character deyarli bo‘lmaydi.

Har qanday Unicode matn byte ketma-ketligi sifatida yoziladi.

Kamchiligi — ayrim tillarda token soni ko‘payishi mumkin.

Vocabulary

Tokenizer vocabulary token string va ID mappingini saqlaydi:

"men" → 125
"##lar" → 904

Model embedding matrix token IDga tayanadi.

Vocabulary o‘zgarsa model weightlari bilan compatibility buziladi.

Unknown token

Word-level yoki cheklangan tokenizer noma’lum birlikni maxsus [UNK] tokeniga aylantirishi mumkin.

Bu asl matn detailini yo‘qotadi.

Subword va byte-level tokenizer unknown holatini kamaytiradi.

Maxsus tokenlar

Model maxsus tokenlardan foydalanishi mumkin:

Ular oddiy matn bilan collision qilmasligi va model configida aniq IDga ega bo‘lishi kerak.

Token ID

Tokenizer outputi integer IDlar:

[18, 904, 72, 5]

Model to‘g‘ridan-to‘g‘ri string emas, IDlarni qabul qiladi.

Decode jarayoni IDlarni tokenlarga, keyin matnga birlashtiradi.

Decode har doim original whitespace’ni mutlaq tiklamasligi mumkin.

Whitespace

Ba’zi tokenizer token ichida oldingi bo‘sh joyni maxsus belgi bilan saqlaydi.

Masalan, salom va salom boshqa token bo‘lishi mumkin.

Whitespace code, Markdown va natural language’da semantik ahamiyatga ega.

Normalization uni nazoratsiz olib tashlamaydi.

Normalization

Tokenizationdan oldin:

qayta ishlanishi mumkin.

Normalization qoidasi training va inference’da bir xil bo‘lishi kerak.

Turli apostrof shakllari o‘zbekcha tokenlarni bo‘lib yuborishi mumkin.

O‘zbek tili

O‘zbek tili ko‘p qo‘shimchali bo‘lgani sabab word vocabulary juda kattalashadi.

Subword tokenizer asos va qo‘shimchani qisman ajratishi mumkin.

Lotin-kirill, o‘, g‘, ʻ, ' va boshqa apostrof variantlari data preprocessingda bir xillashtiriladi.

Noto‘g‘ri normalization so‘zni ko‘p noyob tokenlarga ajratadi.

Token soni

API narxi, context window va inference latency ko‘pincha token soniga bog‘liq.

Bir xil belgilar soni turli tilda boshqa token soniga ega.

Code, URL va random identifier ko‘p mayda token yaratishi mumkin.

Token counter aynan model tokenizeridan foydalanadi.

Padding

Batchdagi sequence’lar turli uzunlikda.

Qisqa sequence maxsus padding token bilan tenglashtiriladi.

Attention mask padding positionlarni model hisobidan chiqaradi.

Padding chap yoki o‘ng tomonda bo‘lishi model va taskga bog‘liq.

Truncation

Input context limitdan uzun bo‘lsa kesilishi mumkin.

Strategiyalar:

  • oxirini kesish;
  • boshini kesish;
  • markazdan;
  • sliding window;
  • chunking;
  • summary.

Muhim instruction yoki answer qismi tasodifan kesilmasligi kerak.

Offset mapping

Tokenizer har token original matndagi qaysi character oralig‘iga tegishli ekanini berishi mumkin.

Bu:

  • NER;
  • highlighting;
  • annotation;
  • search result;
  • error display

uchun foydali.

Unicode character va byte offset farqlanadi.

Tokenizer drift

Model bilan boshqa tokenizer ishlatilsa IDlar boshqa ma’noga ega bo‘ladi.

Natija ma’nosiz bo‘lishi mumkin.

Model artifacti:

bilan birga saqlanadi.

Vocabulary training

Tokenizer corpus qaysi til va domainlardan tuzilganiga qarab tokenlarni o‘rganadi. Agar o‘zbekcha matn kam bo‘lsa, oddiy o‘zbek so‘zi ko‘p mayda tokenlarga bo‘linishi mumkin. Bu context sarfi va model o‘rganish samaradorligini pasaytiradi. Vocabulary trainingda til balansiga e’tibor beriladi.

Added token

Fine-tuning yoki maxsus application uchun yangi marker token qo‘shilishi mumkin. Model embedding matrixi yangi qator bilan kengayadi va bu embedding trainingda o‘rganiladi. Faqat tokenizerga token qo‘shib, model weightini moslashtirmaslik random yoki noto‘g‘ri representation beradi.

Security

Tokenizer control character, bidirectional text va confusable Unicode’ni turli usulda bo‘lishi mumkin. Input validation display qilingan matn bilan model ko‘rgan token ketma-ketligi orasidagi farqni hisobga oladi.

Bog‘liq tushunchalar

Tokenization, Token, Subword, Byte Pair Encoding, WordPiece, Unigram model, Vocabulary, Token ID, Padding, Context window, Text normalization