Разбиение текста на единицы, с которыми работает модель: слова, подслова или байты.
Ключевые тезисы
- BPE, WordPiece и SentencePiece делят редкие слова на частотные подслова.
- Размер словаря — компромисс между длиной последовательности и качеством представлений.
- Стоимость запроса к LLM считается в токенах, а не в символах.
Подробный разбор
3 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.
1Почему подслова, а не слова
Компромисс между размером словаря и длиной последовательности.
Словарь из слов не справляется с морфологией и опечатками: «идти», «идёт», «идущий» — три несвязанных токена, а «идьот» вообще неизвестен. Словарь из символов решает это, но делает последовательности слишком длинными.
- BPE: начинаем с символов и жадно склеиваем самые частые пары.
- WordPiece (BERT): склеивает пары, максимально увеличивающие правдоподобие корпуса.
- SentencePiece / Unigram: работает прямо с сырым текстом, без предварительной разбивки по пробелам — важно для языков без пробелов.
«недооценённый» → не + до + оцен + ённый. Слово, ни разу не встречавшееся в обучении, всё равно представимо через знакомые части.
Русский текст даёт примерно вдвое больше токенов, чем английский той же длины: словари большинства моделей обучены преимущественно на английском. Это напрямую влияет на стоимость запросов к LLM.
2Как обучается BPE
Пошаговый разбор алгоритма слияния пар.
- Разбить весь корпус на символы, посчитать частоты соседних пар.
- Слить самую частую пару в новый токен.
- Пересчитать частоты и повторять, пока словарь не достигнет заданного размера.
Корпус: низкий низкий низший. Частые пары: н+и, и+з. После нескольких слияний появляется токен низ, а окончания кий и ший остаются отдельными — ровно та морфемная граница, которую хотелось получить.
Специальные токены ([CLS], [PAD], <|endoftext|>) добавляются в словарь вручную и никогда не участвуют в слияниях.
3Практические следствия
Как токенизация влияет на стоимость, длину контекста и качество.
| Текст | Символов | Токенов (типично) |
|---|---|---|
| английский | 100 | ~25 |
| русский | 100 | ~45 |
| код | 100 | ~35 |
| числа и id | 100 | ~60 |
- Длинные числа режутся на куски — отсюда слабость LLM в арифметике «в уме».
- Один и тот же текст с разным пробелом впереди даёт разные токены:
«слово»и« слово»— это разные id. - Смена токенизатора несовместима с уже обученными весами эмбеддингов.
Связанные темы
От слов к векторам
Bag of Words75%
Мешок слов · Обработка естественного языкаТекст представляется вектором частот слов, порядок полностью игнорируется.
TF-IDF75%
TF-IDF · Обработка естественного языкаВзвешивает частоту слова в документе на его редкость в корпусе, подавляя общеупотребительные слова.
Word2Vec75%
Word2Vec · Обработка естественного языкаОбучает плотные векторы слов по контексту: близкие по смыслу слова оказываются рядом в пространстве.
GloVe75%
GloVe · Обработка естественного языкаСтроит эмбеддинги из глобальной матрицы совстречаемости слов, а не только из локальных окон.
FastText75%
FastText · Обработка естественного языкаПредставляет слово суммой векторов его символьных n-грамм, что даёт эмбеддинги даже для незнакомых слов.
Embeddings75%
Эмбеддинги · Обработка естественного языкаПлотные векторные представления объектов, где геометрическая близость означает смысловое сходство.