Токенизация: границы токенов и их восстановление

Урок 12 из 148 курса «Mistral AI Cookbook»: официальный курс Mistral AI Cookbook (Мистраль) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

Токенизация преобразует строку в последовательность ID токенов, которые модель использует в качестве входных данных. Токены могут быть символами, подсловами или знаками. Токенизатор разбивает строку на токены и преобразует их в ID (кодирование) и наоборот (декодирование). Затем модель предсказывает следующий токен на основе этой последовательности. Например, предложение "Hello, how are" может быть токенизировано как: Hello, -> 432, how -> 523, are -> 87. Модель предсказывает следующий токен, например 75 (декодируется как you), что позволяет ей генерировать связный текст. Чтобы использовать LLM в качестве чат-бота, его можно fine-tune на диалогах, следующих определённому шаблону. Модель начинает с токена начала строки (BOS) (<s>) и использует токен конца строки (EOS) (</s>) для остановки генерации. Чтобы избежать путаницы и обеспечить правильную остановку, можно использовать редкие строки для форматирования и вставлять токены EOS после каждого ответа Assistant. Пример: Чтобы объяснить эту проблему, рассмотрим другой пример. Рассмотрим URL, например: https://mistral.ai. Такие URL потенциально могут быть токенизированы аналогично следующему: https + :// + mistral + .ai. Поскольку https является очень частой строкой, она, скорее всего, будет отдельным токеном, и большинство безопасных валидных URL будут токенизированы с её использованием. Теперь, что произойдёт, если мы попросим нашу модель сгенерировать следующий токен после http? Обратите внимание, что мы используем http, а не https. Попытается ли она предсказать s, чтобы получить https? Очень маловероятно. Модель никогда не сталкивалась с последовательностью токенов, такой как http + s. Вместо этого, во время обучения она всегда видела https как единый токен. Она будет смещена и с большей вероятностью предскажет :// напрямую, что приведёт к небезопасному URL. В этом случае проблема границ лишь вносит небольшое смещение. Однако в некоторых случаях это может привести к совершенно неверным результатам. Допустим, мы даём ей https: и просим предсказать следующий токен. Токенизатор закодирует это как https + :. Теперь, какой будет следующий токен? //? Вы угадали — нет. Она почти или даже никогда не видела такой последовательности в своих обучающих данных.

План урока

  1. Границы и восстановление токенов
  2. Основы – Краткий обзор
  3. Проблема границ
  4. Решение А
  5. Токенизатор V1
  6. Решение Б - Восстановление токенов

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Урок входит в темы

Полезные гиды