1.5Kпросмотров
30 июля 2025 г.
📷 ФотоScore: 1.7K
Dynamic Chunking for End-to-End Hierarchical Sequence Modeling меня упомянул Борис среди классных каналов, считаю своего рода успехом. более того, я был удостоен чести, что ко мне единственному придрались - по мне тоже ачивка ❤️ - за отсутствие заглавных букв
Ну, что ж..🤩 Вопрос токенизации для языковых (и не только) моделей стал более популярным после выхода Byte Latent Transformer (BLT), где токены заменялись на семантические “патчи”, которые разделялись предиктами отдельной модели (она предсказывала энтропию в авторегрессивном стиле) + SpaceByte использует “более натуральные” символы в английском для более семантичного разделения (e.g., /, :, ]) Но Альберт Гу, по его же словам, хотел чего-то более эстетичного и укладывающегося в end2end пайплайн - дифференцируемый чанкинг, который не только может быть применим и к языкам другой природы (китайский, код, днк), так еще и иметь интерпретируемость (и точно не содержать информацию о следующем байте) И вот как сейчас выглядит версия H-Net с роутингом по аналогии МоЕ:
- Есть проекции q/k для каждого символа (чанка с предыдущей стадии), через которые определяется их схожесть
- Когда же между соседними репрезентациями наблюдается снижение в косинусном расстоянии (по трешхолду в 0.5), то считаем, что граница чанка определена
- Таким образом получаем и “токены” более осмысленно разграниченными, и длину последовательности сокращаем. При том за репрезентацию всего чанка берется первый эмбеддинг чанка (есть абляции на другие виды пулинга, результат не меняется)
- Далее основная сеть, которая суть заключает в себе миксеры на уровне последовательности по типу трансформер блока или мамбы2
- А дечанкинг (он же апсемплинг) дублирует репрезентацию чанка, пока не встретит новый, чтобы потом дублировать новый эмбеддинг с домножением на уверенность роутинг модуля Все это приправляется EMA, STE и еще некоторыми добавлениями в архитектуру (доп нормализации и проекции, разные лернинг рейты под соответствующую глубину модулей) для стабилизации градиентного флоу в столь дискретном сетапе. Но, видимо, ничего не работает без load balancing как в МоЕ, который выставляет таргет количество символов, которое должно залетать в чанк (экспериментировали здесь с 6) Первичные эксперименты выставили на длине в 8192 utf-8 символа по моделям в 760M & 1.3B + на китайском и коде проверили, сравнивали по FLOPS'ам с бейзлайнами (кстати с BLT нет результатов ибо они не захотели тратить время и компьют на трейн доп модели к основной). Визуализация границ чанков во многих местах выглядит интересно, часто попадает в нужные разделения, иногда граница лежит на какой-то хрени → не все так гладко и путь наименьшего сопротивления в обучении все еще ведет к костылям Часть нарратива статьи еще посвящена, как мамба обыгрывает трансформер (ожидаемо от автора мамбы), учитывая предыдущий контекст с заменой аттеншна на ссм и все такое, но сейчас авторы больше смещены на концепцию гибрида (что вызывает вопросы насчет эстетики) из-за трейдоффа между ретривалом и эффективностью: аттеншн головы в тандеме с мамба блоками начинают выполнять функции ближе всего к ретривал головам Есть еще интересная секция про то, как дистиллить BPE бекбоны в чанкинг архитектуры, чтобы не полетели эмбеддинги, завязанные под токены - добавляют лоссы на матчинг векторов со своим начальным состоянием и пропускают начала токенов через сеть. Но пока непонятно Очень интересная работа, которая, конечно, оставляет больше вопросов (в хорошем смысле) - как много можно застакать эти слои чанкинга, что будет по превосходству мамбы если эксперименты проведет не фанат мамбы, критичен ли динамический сабсемплинг последовательной при трейне на бОльшем скейле, что по другим модальностям и все такое 👀 paper, code