Telegram Group & Telegram Channel
Byte Latent Transformer: Patches Scale Better Than Tokens
Artidoro Pagnoni, Ram Pasunuru, Pedro Rodriguez, John Nguyen, Benjamin Muller, Margaret Li, Chunting Zhou, Lili Yu, Jason Weston, Luke Zettlemoyer, Gargi Ghosh, Mike Lewis, Ari Holtzman, Srinivasan Iyer
Статья: https://arxiv.org/abs/2412.09871
Код: https://github.com/facebookresearch/blt

Byte Latent Transformer (BLT) -- это интересный заход на отказ от токенизации с фиксированным словарём и про работу на уровне байтов в LLM. Динамически разбиваем входной поток на патчи, определяя их границы по энтропии следующего символа, и на таких патчах и работаем. Если поток данных простой и предсказуемый, можем сделать патчи подлиннее, а если всё сложно, можно выделить больше компьюта на большее количество патчей. Получаем динамическую аллокацию компьюта.

Интересная нетривиальная работа. Теперь к деталям!

Токенизаторы -- это вообще интересная история, которая существует рядом с красивым и дифференцируемым end-to-end обучением трансформеров и разрушает эту идиллическую end-to-end картину. Токенизаторы тоже обучаются, но делается это не бэкпропом, а относительно простым алгоритмом, который выбирает наиболее часто встречающиеся последовательности в языке и составляет из них словарь, обычно заранее заданного размера. Про токенизаторы иногда забывают, но это безумно важная компонента, потому что при плохой токенизации сильно страдает итоговое качество различных задач. Например, сложно учить трансформер выполнять арифметические операции, если числа токенизируются не по отдельным цифрам, а по произвольным кускам из нескольких. Другой типовой пример, применение модели к языкам, на которых токенизация не очень обучалась, тогда слова разбиваются на токены, не отражающие реальной языковой картины и не соответствующие ничему осмысленному. История про ошибочный подсчёт букв “r” в слове “strawberry”, кажется, тоже с этим связана.

Были попытки это преодолеть и обучать модели на байтах или UTF-8 символах, но основная проблема в том, что размер последовательности от этого сильно растёт. Это сейчас вон, до 2M контексты, но оно только недавно появилось, да и дорого довольно.

Ещё, конечно, неплохо избавиться от огромных софтмаксов на размер словаря… Входные и выходные таблицы эмбеддингов могут быть очень немаленькими. Всегда есть трейдофф между размером словаря и вычислениями. Увеличивая словарь мы увеличиваем среднюю длину токена, что уменьшает число элементов в последовательности, с которой работает модель. Но это же увеличивает размерность финального слоя проекции, так что сильно тут не поиграешь. У Llama 3 размер эмбеддингов увеличился в 4 раза относительно Llama 2 при росте среднего размера токена от 3.7 до 4.4.

Идея, что модель должна динамически аллоцировать компьют там, где он нужен, привела к архитектуре Byte Latent Transformer (BLT), в которой три трансформерных блока: две маленьких локальных byte-level модели и большой глобальный латентный трансформер (latent transformer). Латентный трансформер оперирует репрезентациями патчей, а две локальные модели занимаются кодированием последовательности входных байт в патчи и репрезентаций патчей обратно в байты.

Есть множество способов разбить входной байтовый поток на патчи. Простейший вариант -- Strided Patching Every K Bytes, патчи фиксированного размера, k байт. Можно контролировать количество вычислений, задавая размер патча. Но динамической аллокации компьюта нет, а хотелось бы выделять побольше на сложные участки, и поменьше на простые. Другая проблема -- неконсистентное разбиение одних и тех же слов в зависимости от их позиции. Непонятно какой от этого профит кроме вреда.

Более понятный вариант -- Space Patching, разбиение по пробельным символам, которые скорее всего являются естественными границами в предложении. Но это может плохо работать с некоторыми языками и доменами. Ну и менять размер патча нельзя.
14👍2014🔥1



group-telegram.com/gonzo_ML/3109
Create:
Last Update:

Byte Latent Transformer: Patches Scale Better Than Tokens
Artidoro Pagnoni, Ram Pasunuru, Pedro Rodriguez, John Nguyen, Benjamin Muller, Margaret Li, Chunting Zhou, Lili Yu, Jason Weston, Luke Zettlemoyer, Gargi Ghosh, Mike Lewis, Ari Holtzman, Srinivasan Iyer
Статья: https://arxiv.org/abs/2412.09871
Код: https://github.com/facebookresearch/blt

Byte Latent Transformer (BLT) -- это интересный заход на отказ от токенизации с фиксированным словарём и про работу на уровне байтов в LLM. Динамически разбиваем входной поток на патчи, определяя их границы по энтропии следующего символа, и на таких патчах и работаем. Если поток данных простой и предсказуемый, можем сделать патчи подлиннее, а если всё сложно, можно выделить больше компьюта на большее количество патчей. Получаем динамическую аллокацию компьюта.

Интересная нетривиальная работа. Теперь к деталям!

Токенизаторы -- это вообще интересная история, которая существует рядом с красивым и дифференцируемым end-to-end обучением трансформеров и разрушает эту идиллическую end-to-end картину. Токенизаторы тоже обучаются, но делается это не бэкпропом, а относительно простым алгоритмом, который выбирает наиболее часто встречающиеся последовательности в языке и составляет из них словарь, обычно заранее заданного размера. Про токенизаторы иногда забывают, но это безумно важная компонента, потому что при плохой токенизации сильно страдает итоговое качество различных задач. Например, сложно учить трансформер выполнять арифметические операции, если числа токенизируются не по отдельным цифрам, а по произвольным кускам из нескольких. Другой типовой пример, применение модели к языкам, на которых токенизация не очень обучалась, тогда слова разбиваются на токены, не отражающие реальной языковой картины и не соответствующие ничему осмысленному. История про ошибочный подсчёт букв “r” в слове “strawberry”, кажется, тоже с этим связана.

Были попытки это преодолеть и обучать модели на байтах или UTF-8 символах, но основная проблема в том, что размер последовательности от этого сильно растёт. Это сейчас вон, до 2M контексты, но оно только недавно появилось, да и дорого довольно.

Ещё, конечно, неплохо избавиться от огромных софтмаксов на размер словаря… Входные и выходные таблицы эмбеддингов могут быть очень немаленькими. Всегда есть трейдофф между размером словаря и вычислениями. Увеличивая словарь мы увеличиваем среднюю длину токена, что уменьшает число элементов в последовательности, с которой работает модель. Но это же увеличивает размерность финального слоя проекции, так что сильно тут не поиграешь. У Llama 3 размер эмбеддингов увеличился в 4 раза относительно Llama 2 при росте среднего размера токена от 3.7 до 4.4.

Идея, что модель должна динамически аллоцировать компьют там, где он нужен, привела к архитектуре Byte Latent Transformer (BLT), в которой три трансформерных блока: две маленьких локальных byte-level модели и большой глобальный латентный трансформер (latent transformer). Латентный трансформер оперирует репрезентациями патчей, а две локальные модели занимаются кодированием последовательности входных байт в патчи и репрезентаций патчей обратно в байты.

Есть множество способов разбить входной байтовый поток на патчи. Простейший вариант -- Strided Patching Every K Bytes, патчи фиксированного размера, k байт. Можно контролировать количество вычислений, задавая размер патча. Но динамической аллокации компьюта нет, а хотелось бы выделять побольше на сложные участки, и поменьше на простые. Другая проблема -- неконсистентное разбиение одних и тех же слов в зависимости от их позиции. Непонятно какой от этого профит кроме вреда.

Более понятный вариант -- Space Patching, разбиение по пробельным символам, которые скорее всего являются естественными границами в предложении. Но это может плохо работать с некоторыми языками и доменами. Ну и менять размер патча нельзя.

BY gonzo-обзоры ML статей


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/gonzo_ML/3109

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

"Someone posing as a Ukrainian citizen just joins the chat and starts spreading misinformation, or gathers data, like the location of shelters," Tsekhanovska said, noting how false messages have urged Ukrainians to turn off their phones at a specific time of night, citing cybersafety. Oleksandra Matviichuk, a Kyiv-based lawyer and head of the Center for Civil Liberties, called Durov’s position "very weak," and urged concrete improvements. One thing that Telegram now offers to all users is the ability to “disappear” messages or set remote deletion deadlines. That enables users to have much more control over how long people can access what you’re sending them. Given that Russian law enforcement officials are reportedly (via Insider) stopping people in the street and demanding to read their text messages, this could be vital to protect individuals from reprisals. In 2018, Russia banned Telegram although it reversed the prohibition two years later.
from us


Telegram gonzo-обзоры ML статей
FROM American