Token (LLM) (BG)

From Systems analysis Wiki
Jump to navigation Jump to search

Токен (token) — минималната единица текст, с която могат да работят големите езикови модели (LLM). Всеки текст преди обработка от LLM се преобразува предварително в последователност от токени, които след това се превеждат в числови представления, удобни за анализ и обработка от модела.

В зависимост от използваната стратегия за токенизация, токенът може да представлява:

  • Цяла дума (например „къща")
  • Част от дума или корен (например „къщ" в „къщичка\")
  • Единичен символ или пунктуация (например „,", „!")

Използването на токени позволява на езиковите модели ефективно да изучават и възпроизвеждат структури на текста, да разкриват закономерности, както и да разбират семантиката и синтаксиса на текста.

Процес на токенизация

Токенизация (tokenization) — това е процесът на разбиване на изходния текст на токени с последващото им преобразуване в числови идентификатори, разбираеми за модела.

Този етап е задължителен и фундаментален за работата на големите езикови модели. С негова помощ LLM получава възможността да:

  • Анализира синтаксиса — структурата на текста и наредбата на елементите (думи и фрази);
  • Извлича семантиката — дълбинния смисъл на текста и взаимовръзките между елементите.

Разграничават се няколко основни метода на токенизация, сред които:

  • Byte Pair Encoding (BPE): Алгоритъм, който итеративно заменя най-честите двойки символи с нови токени, което позволява ефективно обработване на редки думи и морфологични вариации.
  • WordPiece: Използва се в моделите BERT и разбива думите на подсловни единици, което помага при обработката на непознати думи.
  • SentencePiece: Метод, който разглежда текста като последователност от символи и прилага модели на базата на BPE или Unigram за токенизация.

Изборът на метод за токенизация влияе върху производителността на модела, способността му да обработва различни езици и ефективността на обучението.

Специални токени

Освен основните токени, моделите използват също специални токени за означаване на функционални елементи на текста, като например:

  • [CLS] (class) — токен за начало на последователност, често използван за задачи по класификация на текст;
  • [SEP] (separator) — разделя различни части на текста (например въпрос и отговор, изречения или абзаци);
  • [MASK] — специален токен за означаване на дума, която моделът трябва да предвиди (използва се в BERT и други masked-language модели);
  • [PAD] (padding) — използва се за изравняване на текста по дължина.

Тези специални токени помагат на моделите да възприемат по-точно структурата и контекста на обработвания текст.

Токени и контекстен прозорец

Контекстен прозорец (context window) — това е максималният брой токени, които моделът е способен едновременно да отчита и обработва при генерирането на текст.

Например моделът GPT-3 има контекстен прозорец с размер 2048 токена. Това означава, че при създаването на текст моделът може едновременно да отчита информацията, съдържаща се в максимум 2048 токена от изходния текст. Размерът на контекстния прозорец влияе върху:

  • Максималния обем информация, достъпен за модела;
  • Качеството и смисловата последователност на генерираните отговори;
  • Способността на модела да възприема дълги текстове и да запазва контекста при голямо разстояние между токените.

Литература

  • 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.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Song, X. et al. (2021). Fast WordPiece Tokenization. *EMNLP 2021*. 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.
  • Limisiewicz, T.; Balhar, J.; Mareček, D. (2023). Tokenization Impacts Multilingual Language Modeling: Assessing Vocabulary Allocation and Overlap Across Languages. 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.