Языковые модели работают с дискретной последовательностью символов — токенов или патчей. Сегментация входа в эту последовательность (токенизация) при субсловном подходе теряет информацию о символах внутри каждого токена. Разбираем, какие конкретно проблемы это порождает, как устроены байтовые архитектуры, которые пытаются их обойти, и что меняется на инференсе.
Четыре проблемы субсловной токенизации
Первая: информация о символах внутри каждого токена теряется, из-за чего модели отстают в задачах, требующих знания символов. Вторая — токенизационное смещениенеявная зависимость субсловной токенизации от будущего содержимого текста: границы токенов выбираются с учётом того, что идёт дальше по тексту, поэтому при инференсе, когда промпт заканчивается в середине слова или пробелом, поведение оказывается неожиданным. Третья — жёсткость из-за необходимости фиксированного конечного субсловного словаря: разные задачи требуют разной эффективности для разных языков, а словарь один. Четвёртая — привязка токенизации к распределению вычислений: одинаковый объём вычислений тратится на каждый токен при prefillобработке входной последовательности перед генерацией, каждый токен одинаково влияет на размер KV-кэшкэш ключей и значений, который хранит состояния предыдущих токенов при генерации, и фиксированное количество вычислений уходит на последовательную генерацию любого нового токена.
Байтовые модели решают первые две проблемы, а при правильном выборе мелкозернистых единиц — и третью. Байтовые LTLMмодели, которые работают над байтами, но выполняют шаг токенизации внутри модели, агрегируя байтовые представления в представления над латентными патчами способны решить все четыре.
Три подхода к байтовым моделям
Сравниваются три подхода к байтовым моделям: BLTByte Latent Transformer — байтовая модель, в которой локальные слои энкодера сначала кодируют байтовые потоки в чанки переменного размера, затем глобальные слои работают с чанками, а локальные слои декодера декодируют чанки обратно в байты, H-Netбайтовая модель, в которой границы патчей предсказываются с обучением, в том числе через супервизию предсказания границ по субсловным границам и вспомогательную функцию потерь на совпадение эмбеддингов и ByteFlowбайтовая модель с динамической токенизацией, где границы могут быть выучены сквозным образом, опираться на всплески энтропии или задаваться внешней супервизией.
В BLT границы патчей вводятся на локальном энкодере, после чего глобальные слои работают с укороченной последовательностью. H-Net и ByteFlow — это LTLM: они выполняют шаг токенизации внутри модели, агрегируя байтовые представления в представления над латентными патчами.
Все три отличаются от плоского Transformer тем, что вводят явную иерархию local–global–local. В разбираемой работе, напротив, сохраняется плоская архитектура Transformer без этой иерархии, и показывается, что сегментация может возникать неявно: байтовые Transformer'ы развивают сегментационно-подобные позиции, агрегирующие локальную текстовую информацию.
Как байтовый трансформер строит локальные абстракции
Входные данные представлены не отдельными токенами, а сумками (bags) байтовгруппами из нескольких подряд идущих токенов, которые модель обрабатывает как единое целое. Причинная модель с одним выходным слоем использует предшествующие сумки B_{<i}, чтобы выдать одно общее распределение вероятностей pθ(·|B_{<i}) для всех токенов следующей сумки B_i. Обучение с такими сумками называется TST, и его функция потерь усредняет кросс-энтропию по всем целевым сумкам.
Схема обучения устроена так: первые 30% обновлений предобучения используют TST, оставшиеся 70% — обычное предсказание следующего токена на тех же параметрах. При этом каждая сумка из четырёх токенов считается одним обучающим токеном, что даёт в 1.9 раза больше текста при том же числе обучающих токенов.
Локальный контекст на входе обеспечивается хешированными n-граммами. Для последовательности байтовых или субсловных токенов входное представление e_i вычисляется как взвешенная сумма обычного эмбеддинга E(x_i) и эмбеддингов E_n(Hash(x_{i-n+1:i})) по группам n-грамм G:
ei = 1/(1+|G|) [ E(xi) + Σ_{n∈G} En(Hash(xi−n+1:i)) ]При i < n отсутствующий левый контекст дополняется нулями. Для байтовой модели G = {5,6,7,8} с четырьмя хеш-таблицами по 32 768 слотов, для субсловной G = {2} с одной таблицей на 131 072 слота.
TST пошагово: сумки, границы, позиционные эмбеддинги
TSTToken-Superposition Training — обучение с наложением токенов, при котором модель предсказывает сразу группу следующих токенов делит последовательность токенов на непересекающиеся сумки по K=4 последовательных токена. Каждая сумка представляется средним эмбеддингов своих токенов, включая причинные хеш-признаки, если они включены. Граница между сумками задаётся фиксированным размером 4, а не выбирается адаптивно.
Модель использует предшествующие сумки B_{<i}, чтобы выдать одно общее распределение по токенам для всех токенов следующей сумки. Функция потерь усредняет кросс-энтропию по всем целевым сумкам. TST применяется в первых 30% обновлений предобучения, остальные 70% используют обычное обучение на предсказание следующего токена. При этом каждая сумка из четырёх токенов считается одним обучающим токеном.
Хешированные эмбеддинги: словарь без словаря
Хешированные эмбеддинги добавляют к обычному эмбеддингу токена представления n-грамм, вычисляемые через общий полиномиальный хеш. E — обычная таблица эмбеддингов токенов, а E_n — отдельная таблица эмбеддингов для длины n, индексируемая общим полиномиальным хешем. Когда i < n, отсутствующий левый контекст дополняется нулями.
Для Byte G = {5,6,7,8} с четырьмя хеш-таблицами по 32 768 слотов, для Subword G = {2} с одной таблицей на 131 072 слота, так что обе семьи используют 131 072 хеш-слота суммарно. Число параметров при этом сохраняется, потому что N считается как число уникальных активных параметров модели, включая выходной эмбеддинг, а входные и хеш-эмбеддинги исключаются.
LoopFormer
LoopFormerмеханизм, который многократно применяет один и тот же общий стек трансформера, обусловливая каждый проход нормализованным временем и размером шага применяется как повторное использование общего стека трансформера. В управляемом варианте Subword используется та же схема с четырьмя фиксированными проходами, сохраняя базовые блоки декодера и обычную цель предсказания следующего токена.
Переиспользуется полный причинный декодер: H^(0) — входные эмбеддинги, Φθ — полный причинный стек декодера с параметрами θ, а рекуррентность задаётся как H^(r) = Φθ(H^(r−1)) для r от 1 до 4. И обучение, и оценка используют эту рекуррентность, с одной предсказательной головой после последнего прохода. Экономия параметров достигается тем, что общий стек считается один раз, а вычисления включают все четыре прохода декодера и одно применение выходной головы.
Эксперимент IsoFLOPs
Обучаются два семейства моделей: байтовые (Byte) и подсловные (Subword). Байтовые используют словарь размером 256, подсловные — словарь из 49 152 токенов от cosmo2-tokenizer. Бюджет вычислений фиксируется через training FLOPs per token M и общий объём вычислений C = M·D, где D — количество токенов обучающих данных. Для каждого бюджета C собираются потери L моделей разного размера N, строится кривая (N, L), и оптимальное число параметров N*(C) находится в точке минимума потерь. Сравнение ведётся по метрике BPBbits per byte — валидационная кросс-энтропия, нормированная на количество байтов текста.
Байтовые модели по умолчанию применяют TST и hash embeddings, подсловные — нет. В свипе IsoFLOPsсравнение моделей при одинаковом бюджете вычислений оцениваются четыре рецепта: raw, hash-only, TST-only и TST+hash.
Как распределяется информация вдоль текста
При переходе от токенов к байтам распределение информации вдоль текста становится более контрастным: байтовые модели имеют больше вероятностной массы как вблизи нуля, так и в высоких значениях BPB. Вблизи нуля байтовые плотности приближаются к 1/x с показателем α ∈ [−0.97, −0.91], тогда как для сабвордов α ∈ [−0.8, −0.6]. В хвосте байтовые модели имеют немного больший масштаб затухания β и больше массы при высоких BPB.
При агрегации статистик каждый токен T_i, охватывающий m_i исходных байтов текста, получает вес m_i — так учитываются различия в длине токенов. Усреднение BPB байтовой модели по полным спанам, заданным сабворд-токенизатором, почти закрывает разрыв в распределении BPB между байтами и сабвордами, а распределения агрегированных значений похожи для разных токенизаторов, поскольку они разделяют большинство границ.
Замороженный слой: доказательство эмерджентных абстракций
frozen layer interventionэксперимент, в котором часть промежуточных слоёв модели принудительно обрабатывает не полную байтовую последовательность, а её сжатое представление, чтобы проверить, справляется ли модель с такой потерей детализации
В эксперименте с замороженным слоем (frozen layer intervention) выбирается непрерывный диапазон промежуточных слоёв, которые принудительно работают на более короткой последовательности локально агрегированных представлений, при этом до и после этого диапазона сохраняется полное байтовое разрешение, а параметры модели не обновляются.
Входная последовательность разбивается на локальные спаны с помощью замороженной 200M байтовой модели, архитектурно соответствующей основной; каждый спан усредняется (mean-pooled) в одно представление, обрабатывается на сжатом разрешении и затем возвращается обратно в последовательность исходного байтового разрешения.
По картам внимания копирование байтовых смещений определяется так: для копируемого байтового смещения r запрос берётся из позиции непосредственно перед этим байтом, а множество ключей K содержит исходную фразу и предшествующую ей позицию-разделитель B. Затем для N=10 примеров и H=14 голов вычисляется усреднённое по примерам и головам внимание, которое нормализуется по исходной области. В промежуточных слоях внимание концентрируется вблизи границ чанков, и несколько последующих целевых байтов многократно обращаются к одним и тем же агрегированным позициям — это указывает на формирование осмысленных локальных представлений. Такая агрегация возникает даже при отсутствии пробелов во входных строках, то есть не является просто следствием явных разделителей.
Порог появления абстракций: восстановление производительности становится заметным для интервалов, начинающихся примерно с 17-го слоя, а стабильная сжимаемая область возникает в поздних слоях. Для Byte-1B при G=[21,27] 7 из 28 слоёв (25%) работают только на сжатых локальных представлениях, и производительность остаётся близкой к базовой без сжатия. Для субсловной модели то же вмешательство вызывает существенную деградацию почти на всех интервалах слоёв — это свойство именно байтовой модели, а не общее следствие усреднения скрытых состояний.
Спекулятивное декодирование на низко-BPB байтах
Схема «drafting low-BPB continuations» использует маленькие черновики (draft) для предложения продолжений, которые затем проверяет целевая модель (target). В качестве черновиков берутся существующие модели 200M (16 слоёв) и 50M (8 слоёв), а целевыми являются модели того же семейства размером 1B; специализированные черновики не обучаются.
«Низкий BPB» относится к байтам с низким значением bits-per-byte: маленькие черновики достигают высоких acceptance ratesдолей принятия — доли оценённых токенов, которые целевая модель приняла у черновика именно на low-BPB байтовых токенах, и большая доля байтовых токенов попадает в эти интервалы. Верификация выполняется оракульной симуляцией на заданном тексте: обе модели обусловливаются предшествующими токенами (teacher forcing), и токен черновика считается принятым, если обе модели выбирают один и тот же токен, даже если он отличается от эталонного. Каждый шаг верификации заканчивается на первом отказе или границе документа и считается одним симулированным прямым проходом целевой модели без ограничения длины предложения; принятые байты на проход суммируются по декодированным длинам принятых токенов черновика.
Что видит клиент: длины принятия
На низко-BPB байтах малые драфт-модели дают высокие доли принятия. При 200M-драфте доля принятия 90.6% для Byte против 74.1% для Subword, при 50M-драфте — 84.6% против 62.0%. На один проход верификации цели Byte принимает 9.527 токена при 200M-драфте и 5.471 при 50M, тогда как Subword — 2.831 и 1.618 соответственно, то есть примерно в 3.4 раза больше токенов.
Поскольку каждый принятый байтовый токен равен одному байту (Bytes / accepted token = 1.000), принятые байты на проход почти совпадают: 9.527 против 9.523 при 200M и 5.471 против 5.111 при 50M. Именно эти длины принятия означают, что много дополнительных байтовых токенов можно верифицировать вместе, сокращая число отдельных последовательных вызовов цели.
Пограничные случаи
Границы слов в байтовой модели обрабатываются через специальный символ <b>, который локальный декодер учится выдавать в конце каждого патча, тогда как локальный энкодер его никогда не видит. Используются два предсказателя границ: один на основе локального энкодера с будущим контекстом (для префилла), другой — как часть языковой головы без будущего контекста (для декодирования). Чтобы сделать это без накладных расходов, словарь байтов удваивается с 256 до 512, добавляя версию каждого байта с границей, и сэмплирование работает по объединённому словарю.
Для невиданных символов и смешанных языков байтовое представление сохраняет все байты как отдельные токены, что даёт больше шагов моделирования для сложных токенов с высоким BPB. Хеширование n-грамм добавляет локальный контекст: для Byte используются группы длин {5,6,7,8} с четырьмя хеш-таблицами по 32 768 слотов, а при i<n отсутствующий левый контекст дополняется нулями.
Чем приходится платить
Байтовый подход даёт более длинные последовательности, поэтому на каждый байт приходится больше вычислений, и стандартный рецепт обучения оказывается неоптимальным: байтовые последовательности содержат существенно больше токенов, а каждый байтовый токен несёт меньше локального семантического контекста, чем сабвордовый.
Компенсируют это несколькими механизмами. TST усредняет четыре последовательных эмбеддинга и предсказывает следующий четырёхтокенный мешок: в первые 30% обучения это даёт 4-кратное покрытие токенов, а в сумме — 1.9-кратное покрытие текста при том же числе обучающих токенов. Hash embeddings добавляют к байтовым эмбеддингам представления n-грамм, позволяя каждому байтовому токену включать информацию из близлежащих многобайтовых паттернов. Ширину свёртки gated DeltaNetРекуррентный слой, который в байтовой архитектуре чередуется с Gated Softmax Attention в соотношении 3:1 и имеет увеличенную с 4 до 16 ширину свёртки для более широкого локального рецептивного поля. увеличивают с 4 до 16, чтобы построить более широкое локальное рецептивное поле. LoopFormer многократно применяет общий стек Transformer, обусловливая каждый проход нормализованным временем и размером шага, и комбинирует предсказание следующего токена на полных и коротких траекториях с shortcut-consistency objectiveвспомогательной целью обучения, которая согласует результаты проходов разной глубины, чтобы модель можно было останавливать раньше без потери качества для эластичного инференса по глубине.
Как сравнивали и что получилось
Стенд и методология
Для byte-моделей заданы context length 8 192 токена и global batch 1 048 576 токенов, для subword — 2 048 и 262 144 соответственно; byte-последовательность вчетверо длиннее subword-последовательности. Обучение ведётся на ClimbMixнаборе данных для предобучения языковых моделей. Число обновлений зависит от числа слоёв: 16, 20, 24, 28 и 40 слоёв используют 50k, 60k, 70k, 80k и 100k обновлений. Оптимизаторы — Muon для матриц и AdamW для остальных параметров, планировщик WSDрасписание скорости обучения с этапами warmup, стабилизации и затухания с 1% warmup и 20% 1-sqrt decay, точность вычислений bfloat16.
Замеры эффективности инференса проводятся оракульной симуляцией на заданном тексте валидации, а не через генерацию. Черновики — 200M и 50M, целевые — 1B из того же семейства, специализированные черновики не обучаются. Оценка ведётся в пределах нативного контекстного окна каждого семейства: 8 192 байтовых токена или 2 048 субтокенов. Приёмка токена черновика считается по совпадению выбора двух моделей, включая случай отличия от эталонного токена, а доля принятых — это доля оценённых токенов, принятых. Каждый шаг верификации завершается на первом отказе или границе документа и считается одним симулированным прямым проходом целевой модели без ограничения длины предложения. Воспроизведение: взять валидационный набор, черновики 200M/50M и целевые 1B того же семейства, прогонять teacher forcing по тексту, считать принятые токены и байты на прямой проход.
Результаты
| Метрика | Byte 200M | Subword 200M | Byte 50M | Subword 50M |
|---|---|---|---|---|
| Acceptance rate (%) | 90.6 | 74.1 | 84.6 | 62.0 |
| Accepted tokens / forward | 9.527 | 2.831 | 5.471 | 1.618 |
| Accepted bytes / forward | 9.527 | 9.523 | 5.471 | 5.111 |
| Bytes / accepted token | 1.000 | 3.364 | 1.000 | 3.159 |
На задачах точной работы с символами и словами (CUTE) байтовые модели показывают средний балл 99.19–99.93% против 69.89–80.83% у subword-моделей того же размера, то есть отрыв около 19–30 процентных пунктов. На задаче Spelling байтовые дают 99.80–100.00%, субтокенные — 51.70–81.80%; на Character swapping — 99.50–100.00% против 3.20–18.00%. В обзоре указано, что байтовые трансформеры достигают примерно 40% относительного улучшения на CUTE word manipulation и 20% прироста на OCRBench по сравнению с субтокенными моделями.
На OCRBench байтовые модели превосходят subword на всех размерах, например 42.40 против 34.70 у моделей 3B, на TextVQA — 55.39 против 50.76. На DocVQA и ChartQA преимущество меньше и также наблюдается у большинства размеров, например 38.83 против 37.40 и 38.36 против 36.92 у 3B. На задачах общего визуального понимания и визуального рассуждения различия смешанные и зависят от масштаба: у крупнейших плотных моделей Byte превосходит Subword на ScienceQA-IMG, MMBench и POPE, а у крупнейшей MoE-модели — на ScienceQA-IMG, MMBench, MME и GQA.
По BPB: Four-pass Subword закрывает большую часть разрыва BPB с Byte как в представлении по параметрам, так и по вычислениям, при более высоком QA RC, а sparse MoE снижает Byte BPB при меньших активированных вычислениях. 1B Byte MoE достигает более низкого BPB, чем 3B dense Subword модель, при сопоставимом QA RC.
Что эти цифры не показывают
Симуляция измеряет согласие на заданном тексте, а не на сгенерированных историях, и не задаёт верхнюю границу для генерации: сгенерированные истории могут отличаться от эталонного текста, поэтому эти длины не дают общей верхней границы для принятой длины черновика при генерации. Для практических ускорений требуется декодирование по сгенерированным историям с конечными предложениями и измерением затрат на драфтинг и верификацию.
Измерения охватывают качество языкового моделирования (BPB), точность на задачах QA RC, мелкозернистые задачи, визуально-языковые бенчмарки и диагностику согласия draft–target. Не сообщается об измерениях энергопотребления, стоимости обучения, поведения на очень длинных контекстах или мультиязычности. Контекстное окно упоминается лишь как фиксированное для оценки, без экспериментов на более длинных контекстах. QA RC оценивается как макро-среднее по 21 семейству задач, и все перечисленные задачи англоязычные, без указания мультиязычных наборов. Вычислительная эффективность обсуждается через IsoFLOPs и training compute, но без денежной стоимости обучения или энергопотребления.
Что из этого следует на практике
Байтовый подход убирает токенизационное смещение и потерю информации о символах — именно поэтому на задачах точной работы с символами отрыв от субсловных моделей достигает 19–30 процентных пунктов, а на Character swapping — почти двузначного разрыва в пользу байтов. Если задача требует посимвольной точности (проверка орфографии, перестановки, работа с редкими символами и смешанными языками), байтовая модель даёт качественно другой уровень.
На инференсе байтовая модель открывает возможность верифицировать сразу много токенов за один проход целевой модели: при 200M-драфте Byte принимает 9.527 токена за проход против 2.831 у Subword. Но поскольку каждый байтовый токен равен одному байту, а субтокен покрывает в среднем 3.364 байта, принятые байты на проход почти совпадают (9.527 против 9.523 при 200M). Выигрыш в токенах не равен выигрышу в байтах — это ключевая оговорка при оценке реального ускорения.
Эмерджентные локальные абстракции означают, что байтовая модель сама формирует внутреннюю сегментацию: 25% промежуточных слоёв можно заставить работать на сжатых представлениях без потери качества, тогда как для субсловной модели то же вмешательство вызывает деградацию. Это открывает путь к экономии вычислений на поздних слоях, но требует, чтобы сжатие приходилось на достаточно поздние слои — примерно с 17-го.
Цена — более длинные последовательности и больше вычислений на байт. Компенсируется это TST (1.9-кратное покрытие текста при том же числе обучающих токенов), хешированными n-граммами, увеличенной шириной свёртки и LoopFormer. Без этих механизмов стандартный рецепт обучения на байтах неоптимален.