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

Tokenization

Токенизация

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

Направления: Прикладные направления · NLP, Генеративный ИИ · RAG

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

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

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

Какую задачу решает

Модель работает с числами, а текст — это символы. решает, на какие единицы его резать. Выбор не технический: он определяет размер словаря, длину последовательностей, поведение на редких словах и, в конечном счёте, стоимость каждого запроса к модели.

Разбиение по словам даёт огромный словарь и беспомощность перед незнакомым словом. Разбиение по символам решает это, но делает последовательности в пять раз длиннее. Субсловные методы (BPE и его родня) занимают середину: частые слова остаются целыми, редкие собираются из кусков, и незнакомых слов не существует в принципе.

Почему модель не может посчитать буквы

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

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

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

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

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

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

На практике

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

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

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

На практике

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

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

Где применяется

  • Любая Первый шаг : без текст в модель не попадёт.
  • Оценка стоимостиПодсчёт в — основа планирования расходов на API.
  • контекстаСколько документов поместится в — вопрос о , а не о страницах.
  • Доменная адаптацияСвой токенизатор для кода, химических формул или ДНК резко сокращает длину последовательностей.

Плюсы, минусы и альтернативы

Плюсы

  • Незнакомых слов не существует: любое слово соберётся из частей.
  • Словарь фиксированного размера при полном покрытии языка.
  • Морфологически близкие слова часто делят общие .
  • Работает для любого языка без ручных правил.

Минусы

  • Границы не совпадают с морфемами: разбиение бывает бессмысленным.
  • Задачи посимвольного уровня (подсчёт букв, рифмы) даются моделям плохо именно из-за .
  • Неанглийские языки платят больше за тот же текст.
  • Числа режутся непредсказуемо, что мешает арифметике.
  • Смена токенизатора обесценивает все обученные веса.

Брать, если

  • Всегда при работе с текстовыми моделями.
  • Отдельный токенизатор — когда домен специфичен (код, формулы, биопоследовательности).

Не брать, если

  • Не обучайте свой токенизатор, если используете предобученную модель: он с ней несовместим.

Чем заменяют

Видеолекции

Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.

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

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

Bag of Words75%

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

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

TF-IDF75%

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

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

Word2Vec75%

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

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

GloVe75%

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

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

FastText75%

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

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

Embeddings75%

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

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

Кому эта тема нужна

Профильная компетенция для ролей: NLP-инженер, Инженер речи.

Усиливает профиль: LLM-инженер.

Спрашивают на собеседовании: Яндекс — NLP, Wildberries — Каталог, поиск и атрибуты, Росатом — Документооборот и NLP.

Проверить себя

Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.

Следующий шагПроверить себя: NLPТема встречается в этом тесте 2 раза. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

Глава «Обработка естественного языка» последний раз правилась . Нашли ошибку — напишите.