Обработка естественного языка

Tokenization

Токенизация

актуальноТекущий рабочий стандарт

Разбиение текста на единицы, с которыми работает модель: слова, подслова или байты.

Ключевые тезисы

  • BPE, WordPiece и SentencePiece делят редкие слова на частотные подслова.
  • Размер словаря — компромисс между длиной последовательности и качеством представлений.
  • Стоимость запроса к LLM считается в токенах, а не в символах.

Подробный разбор

3 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Почему подслова, а не слова

Компромисс между размером словаря и длиной последовательности.

Словарь из слов не справляется с морфологией и опечатками: «идти», «идёт», «идущий» — три несвязанных токена, а «идьот» вообще неизвестен. Словарь из символов решает это, но делает последовательности слишком длинными.

  • BPE: начинаем с символов и жадно склеиваем самые частые пары.
  • WordPiece (BERT): склеивает пары, максимально увеличивающие правдоподобие корпуса.
  • SentencePiece / Unigram: работает прямо с сырым текстом, без предварительной разбивки по пробелам — важно для языков без пробелов.
Пример

«недооценённый» → не + до + оцен + ённый. Слово, ни разу не встречавшееся в обучении, всё равно представимо через знакомые части.

На практике

Русский текст даёт примерно вдвое больше токенов, чем английский той же длины: словари большинства моделей обучены преимущественно на английском. Это напрямую влияет на стоимость запросов к LLM.

2

Как обучается BPE

Пошаговый разбор алгоритма слияния пар.

  1. Разбить весь корпус на символы, посчитать частоты соседних пар.
  2. Слить самую частую пару в новый токен.
  3. Пересчитать частоты и повторять, пока словарь не достигнет заданного размера.
Микропример

Корпус: низкий низкий низший. Частые пары: н+и, и+з. После нескольких слияний появляется токен низ, а окончания кий и ший остаются отдельными — ровно та морфемная граница, которую хотелось получить.

На практике

Специальные токены ([CLS], [PAD], <|endoftext|>) добавляются в словарь вручную и никогда не участвуют в слияниях.

3

Практические следствия

Как токенизация влияет на стоимость, длину контекста и качество.

ТекстСимволовТокенов (типично)
английский100~25
русский100~45
код100~35
числа и id100~60
  • Длинные числа режутся на куски — отсюда слабость LLM в арифметике «в уме».
  • Один и тот же текст с разным пробелом впереди даёт разные токены: «слово» и « слово» — это разные id.
  • Смена токенизатора несовместима с уже обученными весами эмбеддингов.

Связанные темы

От слов к векторам

Bag of Words75%

Мешок слов · Обработка естественного языка

Текст представляется вектором частот слов, порядок полностью игнорируется.

TF-IDF75%

TF-IDF · Обработка естественного языка

Взвешивает частоту слова в документе на его редкость в корпусе, подавляя общеупотребительные слова.

Word2Vec75%

Word2Vec · Обработка естественного языка

Обучает плотные векторы слов по контексту: близкие по смыслу слова оказываются рядом в пространстве.

GloVe75%

GloVe · Обработка естественного языка

Строит эмбеддинги из глобальной матрицы совстречаемости слов, а не только из локальных окон.

FastText75%

FastText · Обработка естественного языка

Представляет слово суммой векторов его символьных n-грамм, что даёт эмбеддинги даже для незнакомых слов.

Embeddings75%

Эмбеддинги · Обработка естественного языка

Плотные векторные представления объектов, где геометрическая близость означает смысловое сходство.