❕Токен - это минимальная единица текста, с которой работают современные языковые модели. В качестве токена могут выступать как полноценные слова, так и части слов, слоги или отдельные символы.
✂️ Например, в некоторых моделях слово «привет» может разбиваться на токены: [«при», «вет»].
❕Токенизация — процесс предобработки входного текста в список токенов. Обычно далее каждый токен векторизуется и весь этот массив векторов подаётся модели на вход, с чем она начинает работать.
🤯 В моделях Transformer токенизаторы обучаемы. Обучение токенизаторов не схоже с тем, как обучаются ML-модели, наоборот, это статистический процесс, который определяет, какие сочетания символов (подслов, слов) лучше всего выбрать для корпуса текста, с которым мы работаем.
🔝Современные токенизаторы можно разделить по следующим видам:
1. Byte-Pair Encoding (используется в GPT-like моделях, обучается слиянием символов из основного корпуса, выбирая пары по наибольшей частоте встречаемости, подробно про алгоритм и реализацию кода обучения читайте тут)
2. WordPiece (используется преимущественно в BERT-like моделях, также обучается слиянием, но используется не частота встречаемости, а более универсальная формула, также подробно читайте про реализацию и формулу тут)
3. Unigram (не так применим, однако, для полноты картины читайте о нем тут)
❗️Почему это важно:
1️⃣ Фертильность (мера, показывающая среднее количество токенов на одно слово после токенизации предложения):
Напрямую влияет на стоимость использования любой модели: больше токенов после токенизации предложения -> больше входная последовательность в LLM -> больше стоимость.
2️⃣ Качество работы:
Правильно токенизированная последовательность также сильно влияет на качество модели из-за появления символов, которых модель не видела или из-за особенностей некоторых языков, где нет, например, пробелов.
Очень грамотно и подробно этот нюанс описан тут.
3️⃣ Скорость работы:
Следствие из первого пункта: чем больше последовательность токенов, тем больше вычислений стоит делать, что также влияет на скорость ответа модели.
🔥 Дополнительная информация по теме:
- Краткий обзор токенизаторов на Хабре
- О токенизаторах с NLP-курса на Hugging Face
- «Насколько хорош Ваш Токенайзер» - статья на arxiv [ENG]
- Статья на английском для начинающих о токенах в LLM [ENG]
Теперь вы знаете, как работают токенизаторы🔥
Ждём ваших лайков и обратной связи❤️
До встречи👋🏻