Tokenization (NLP) (BG)
Токенизация в контекста на големите езикови модели (LLM) е фундаментален процес на предварителна обработка, който се състои в разбиването на текстова последователност на по-малки, управляеми единици, наречени токени. След това тези токени се преобразуват в числови идентификатори, които моделът може да обработва. Токенизацията е критично важна първа стъпка, тъй като пряко влияе върху производителността, ефективността, справедливостта и качеството на езиковото разбиране на модела.
Основни концепции
Токен
Токенът е дискретна единица текст, която езиковият модел обработва. В зависимост от избрания метод на токенизация, токенът може да представлява:
- Цяла дума (например „котка").
- Част от дума или подслово (например „пре-", „-пис-", „-ва").
- Отделен символ (например „а", „б", „в").
- Байт (в случай на byte-level токенизация).
На всеки уникален токен се присвоява специфичен индексен номер от речника на токенизатора.
Речник на токенизатора
Речникът (или вокабулярът) е пълният набор от всички възможни токени, които моделът може да разпознае. Размерът на речника е важен хиперпараметър:
- Голям речник позволява повече думи да се представят като цели токени, което подобрява разбирането и намалява дължината на последователностите, но увеличава размера на модела и сложността на обучението.
- Малък речник е по-компактен, но изисква разбиването на редки или сложни думи на по-голям брой подслова, което може да удължава последователностите и да затруднява улавянето на семантиката.
Размерът на речника варира значително между моделите: от ~50 000 токена в GPT-2 до повече от 100 000 в съвременни модели като GPT-4 (100 277) и LLaMA-3 (128 000).
Основни методи на токенизация
Съществуват три основни нива на гранулярност при токенизацията.
1. Токенизация на ниво думи (Word-level)
- Принцип: Текстът се разделя на отделни думи въз основа на разделители (интервали, препинателни знаци).
- Предимства: Интуитивно разбираем; последователностите от токени са по-кратки, което намалява изчислителното натоварване.
- Недостатъци:
- Проблемът с непознатите думи (Out-of-Vocabulary, OOV): Моделът не може да обработи думи, които не са присъствали в обучителния речник, както и печатни грешки и нови думи.
- Голям размер на речника: Необходимо е съхраняването на всички уникални думи, което е особено проблематично за езици с богата морфология.
2. Токенизация на ниво символи (Character-level)
- Принцип: Текстът се разбива на отделни символи.
- Предимства:
- Няма проблем с OOV: Всяка дума може да се представи като последователност от символи.
- Малък речник: Ограничен до размера на азбуката и специалните символи.
- Недостатъци:
- Дълги последователности: Текстът се преобразува в много дълги последователности от токени, което значително увеличава изчислителните разходи.
- Загуба на семантика: На модела му е по-трудно да улови смисъла, тъй като оперира с отделни символи, а не с цели думи.
3. Подсловна токенизация (Subword Tokenization)
Това е междинен и днес най-популярен подход, който съчетава предимствата на предишните методи.
- Принцип: Често използваните думи остават като цели токени, а редките или непознатите думи се разбиват на по-малки, значими части (подслова).
- Предимства:
- Ефективно обработва OOV-думи и морфологични вариации.
- Контролируем размер на речника.
- Улавя морфологичната структура на думите.
- Основни алгоритми:
- Byte Pair Encoding (BPE): Итеративен алгоритъм, който започва с набор от символи и последователно обединява най-често срещаните двойки в нови токени. Използва се в моделите GPT. Byte-level BPE, използван в GPT-2 и RoBERTa, разглежда думите като байтови последователности, което напълно решава проблема с OOV.
- WordPiece: Алгоритъм, подобен на BPE, но при сливането на двойки избира тези, които максимизират правдоподобието на обучителните данни. Използва се в моделите BERT.
- Unigram LM: За разлика от BPE/WordPiece, този метод започва с голям набор от подслова и постепенно го намалява, като премахва токените, които най-малко влияят върху общата вероятност на корпуса. Това позволява създаването на няколко вероятни токенизации за една дума (подсловна регуляризация).
- Инструментариум SentencePiece: Библиотека от Google, която имплементира BPE и Unigram LM и обработва текста като непрекъснат поток от символи, което я прави универсална за езици без явни разделители на думи (например китайски). Използва се в моделите LLaMA и T5.
Токенизация в мултимодални LLM
В мултимодалните модели, работещи не само с текст, токенизацията се разпростира и върху други типове данни:
- Визуална токенизация: Изображенията се разбиват на малки пачове (например 16x16 пиксела), които след това се преобразуват в токен-вектори, аналогично на текстовите.
- Аудио токенизация: Непрекъснатите аудиосигнали се преобразуват в последователност от дискретни токени, представляващи кратки звукови фрагменти.
- Единен подход (TEAL): Концепция, при която данните от всяка модалност първо се токенизират с помощта на съответния токенизатор, след което техните embedding-и се обработват в единно съвместно пространство.
Проблеми и ограничения
Токенизацията, въпреки своята важност, е източник на много проблеми в работата на LLM:
- Непоследователност и чувствителност: Малки промени във входните данни (печатна грешка, регистър, интервал в края) могат коренно да променят токенизацията, което води до непредсказуемо поведение на модела.
- Многоезични проблеми: Единен речник за много езици често се оказва неефективен за нискоресурсни или морфологично богати езици, водейки до прекалено дълги токенни последователности.
- Влияние върху разсъжденията: Нелогичното разбиване на числа (например „25 000" на „25", „,", „000") или символи затруднява изпълнението на аритметични и символни задачи.
- Глич-токени (Glitch Tokens): Аномални или редки токени от обучителните данни (например потребителски имена от Reddit), които могат да предизвикат непредсказуемо или вредоносно поведение на модела.
Развиващ се ландшафт и бъдещи направления
Изследванията в областта на токенизацията активно се развиват в следните направления:
- Модели без токенизатор: Разработване на модели (CANINE, ByT5), работещи директно на ниво байтове или символи, с цел пълното премахване на етапа на явна токенизация и свързаните с него проблеми.
- Адаптивна и обучаема токенизация: Създаване на токенизатори, които могат динамично да се адаптират към езика, домейна или дори конкретния входен текст, или се обучават съвместно с основния модел.
- Когнитивно-ориентирани подходи: Разработване на методи, вдъхновени от когнитивната наука за човешката езикова обработка (например „Принципът на най-малкото усилие"), за създаване на по-семантично осмислени токенизации.
Препратки
- Преглед на токенизацията в курса по LLM от Hugging Face
- Документация за токенизация от Mistral AI
Литература
- Schuster, M.; Nakajima, K. (2012). Japanese and Korean Voice Search. PDF.
- Sennrich, R.; Haddow, B.; Birch, A. (2016). Neural Machine Translation of Rare Words with Subword Units. arXiv:1508.07909.
- Kudo, T.; Richardson, J. (2018). SentencePiece: A Simple and Language-Independent Subword Tokenizer and Detokenizer for Neural Text Processing. arXiv:1808.06226.
- Kudo, T. (2018). Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates. arXiv:1804.10959.
- Song, X. et al. (2021). Fast WordPiece Tokenization. ACL-Anthology.
- Mielke, S. J.; Dalmia, S.; Cotterell, R. (2021). A Brief History of Open-Vocabulary Modeling and Tokenization in NLP. arXiv:2112.10508.
- Xue, J. et al. (2022). ByT5: Towards a Token-Free Future with Pre-trained Byte-to-Byte Models. arXiv:2105.13626.
- Clark, J. H. et al. (2022). CANINE: Pre-Training an Efficient Tokenization-Free Encoder for Language Representation. arXiv:2103.06874.
- Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling. arXiv:2305.17179.
- Pourmostafa Roshan Sharami, J.; Shterionov, D.; Spronck, P. (2023). A Systematic Analysis of Vocabulary and BPE Settings for Optimal Fine-Tuning of NMT. arXiv:2303.00722.
- Batsuren, K. et al. (2024). Evaluating Subword Tokenization: Alien Subword Composition and OOV Generalization Challenge. arXiv:2404.13292.
- Chai, Y. et al. (2024). Tokenization Falling Short: On Subword Robustness in Large Language Models. arXiv:2406.11687.