Кодирование парами байтов
Кодирование парами байтов (BPE) — это алгоритм, основанный на сжатии, который создает словарь путем многократного объединения наиболее часто встречающихся пар символов.
Обзор
It is the tokenizer behind GPT models, balancing tiny vocabularies of characters against huge vocabularies of whole words.
Глубокое погружение
BPE начинает с обработки текста как последовательности отдельных символов (или необработанных байтов). Затем он подсчитывает каждую соседнюю пару символов, объединяет наиболее часто встречающуюся пару в новый токен и повторяет это тысячи раз. Каждое слияние, как правило, записывается. Обычные последовательности букв, такие как «th», «ing» или целые частые слова, постепенно становятся отдельными токенами, в то время как редкие слова остаются разделенными на более мелкие части. Первоначально это был метод сжатия данных, появившийся в 1994 году, но он был адаптирован для НЛП Сеннричем и др. в 2016 году по машинному переводу. GPT-2 и GPT-4 используют BPE на уровне байтов, который работает с байтами UTF-8, поэтому любой символ, смайлик или язык всегда можно закодировать без ошибок из-за словаря.
Техническая информация
Обучение BPE создает упорядоченный список правил слияния. Чтобы токенизировать новый текст, алгоритм разбивает его на байты/символы и жадно применяет слияния в том же порядке приоритета, пока ни одно правило не будет соответствовать. BPE на уровне байтов гарантирует запасной вариант: даже невидимый символ разлагается на составляющие его байты, поэтому словарь в 256 байт плюс изученные слияния охватывает все без токена UNK.
Стратегическое воздействие
Скорость и масштаб
Языковые рабочие процессы могут развиваться быстрее, не жертвуя при этом согласованностью.
Доступ и охват
Это расширяет доступ к различным языкам и стилям общения.
Более четкие решения
Команды могут тратить больше времени на принятие решений, в то время как автоматизация занимается повторением.
Будущее кодирования парами байтов
BPE остается рабочей лошадкой токенизатора, но растет давление в сторону моделей на уровне байтов или символов, которые пропускают явную токенизацию и избегают таких причуд, как неудобные разделения кода, математических вычислений или неанглоязычных сценариев. Исследования безтокеновых архитектур и изученных токенизаторов направлены на исправление предубеждений BPE. Тем не менее, его скорость и эффективность сжатия означают, что словари в стиле BPE в ближайшем будущем будут использоваться в большинстве производственных LLM.
Реальная реализация
GPT-2 и GPT-4 используют BPE на уровне байтов, поэтому любой символ Юникода или смайлик можно закодировать без ошибок.
Системы машинного перевода используют BPE для разделения редких или сложных слов на подслова многократного использования, общие для разных языков.
Библиотека токенизаторов Hugging Face обучает словари BPE для пользовательских доменов, таких как биомедицинский или юридический текст.
Модели кода маркируют идентификаторы и ключевые слова с помощью BPE, объединяя частые шаблоны, такие как «def» или «==», в отдельные токены.
Риски и ограничения
Галлюцинированные факты могут незаметно войти в отчеты, потоки поддержки или результаты исследований.
Незамедлительная чувствительность может привести к противоречивым результатам по схожим запросам.
Конфиденциальные текстовые данные могут быть раскрыты, если контроль доступа слабый.
Дорожная карта реализации
Перед развертыванием определите выходной формат, тон и стандарты качества.
Наземные ответы с помощью надежных источников, когда точность имеет значение.
Обеспечьте контрольную точку человеческого контроля для получения важных результатов.
Отслеживайте закономерности сбоев и регулярно обновляйте подсказки или рабочие процессы.
Продолжайте исследовать
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Byte-Pair Encoding quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Следующее руководство
Токенизация и кодирование пар байтов
Часто задаваемые вопросы
What is Byte-Pair Encoding?
Кодирование парами байтов (BPE) — это алгоритм, основанный на сжатии, который создает словарь путем многократного объединения наиболее часто встречающихся пар символов. Это токенизатор моделей GPT, балансирующий крошечные словари символов с огромными словарями целых слов.
Какую основную операцию повторяет BPE для создания своего словаря?
BPE подсчитывает пары соседних символов и объединяет один наиболее часто встречающийся символ в новый токен, повторяя его тысячи раз.
Как BPE обрабатывает текст, когда начинает обучение?
BPE начинается с самых маленьких единиц (символов или необработанных байтов) и увеличивает токены большего размера за счет слияний.
Почему BPE на уровне байтов позволяет избежать ошибок вне словаря (UNK)?
Поскольку базовый словарь включает все 256 байтов, даже невидимые символы возвращаются к своему байтовому представлению.
Откуда изначально появился алгоритм BPE до того, как его приняла НЛП?
BPE был представлен как метод сжатия данных в 1994 году, а затем адаптирован для токенизации подслов в 2016 году.
Как BPE применяет изученные правила при токенизации нового текста?
Правила слияния упорядочены, и токенизация применяет их жадно по приоритету до тех пор, пока не перестанут соответствовать новые правила.