🔬 Метод
Кодирование двустадийное:
1️⃣ Сначала эмбеды прогоняют через замороженную GPT-2
2️⃣ Затем переводят в целевое латентное пространство через обучаемый энкодер (в котором приятнее диффундировать)
Декодирование тоже двустадийное:
1️⃣ Прогоняем через обучаемый латентный декодер
2️⃣ Выход декодера подаем уже в обучаемый токен декодер, чтобы получить токены
При обучении вход декодера замумляется, но система энкодер + декодер пытаеся реконструировать исходный эмбед (GPT2). Суть данной аугментации в том, чтобы сделать декодер более устойчивым к шуму, а также предотвратить коллапс латентного пространства.
Диффузионная модель просто оптимизирует L2 лосс для
Для того чтобы все хорошо училось важно
🔥 Разогреть энкодер, сначала обучая его только на реконструкцию, а лишь затем включить диффузию.
🕔 Адаптивное расписание сэмплирования шагов времени. Оно подбирается так, чтобы в каждом бине был примерно одинаковый лосс в сумме.
❗️ Различие с ELF
ELF тоже оперирует в латентном пространстве, но фиксированном (Т5 эмбеды).
🧪 Эксперименты
В качестве базового энкодера используется GPT-2 и DiT как диффузионная тушка. В ablation гоняют на отрезках из OpenWebText длиной 128 токенов.
Показывают, что все компоненты метода - разогрев энкодера, обучаемый энкодер поверх GPT-2, расписание шагов диффузии и правильная величина шума важны для качества.
В финальных экспериментах увеличивают длину контекста до 1024 и сравниваются с разными современными подходами по текстовой диффузии
👉 MDLM
👉 Duo
👉 CANDI
👉 FLM
И оказываются лучше по соотношению между перплексией и энтропией (разнообразием). Учится оно несколько дольше большинства бейзлайнов, но зато сэмплирует быстрее на инференсе (за счет того, что декодировать надо только в конце?).
💡 Выводы
Интересный результат. Но как всегда в этой отрасли, встает вопрос о масштабируемости на уровень более-менее SOTA моделек.
Кодирование двустадийное:
1️⃣ Сначала эмбеды прогоняют через замороженную GPT-2
2️⃣ Затем переводят в целевое латентное пространство через обучаемый энкодер (в котором приятнее диффундировать)
Декодирование тоже двустадийное:
1️⃣ Прогоняем через обучаемый латентный декодер
2️⃣ Выход декодера подаем уже в обучаемый токен декодер, чтобы получить токены
При обучении вход декодера замумляется, но система энкодер + декодер пытаеся реконструировать исходный эмбед (GPT2). Суть данной аугментации в том, чтобы сделать декодер более устойчивым к шуму, а также предотвратить коллапс латентного пространства.
Диффузионная модель просто оптимизирует L2 лосс для
x0 оценки. Она может обусловливаться на предыдущую оценку x0. Все учится end-to-end с диффузионным лоссом, лоссами реконструкции и кросс-энтропией на предсказание следующего токена (лосс влияет только на token decoder, после него stopgrad).Для того чтобы все хорошо училось важно
🔥 Разогреть энкодер, сначала обучая его только на реконструкцию, а лишь затем включить диффузию.
🕔 Адаптивное расписание сэмплирования шагов времени. Оно подбирается так, чтобы в каждом бине был примерно одинаковый лосс в сумме.
❗️ Различие с ELF
ELF тоже оперирует в латентном пространстве, но фиксированном (Т5 эмбеды).
🧪 Эксперименты
В качестве базового энкодера используется GPT-2 и DiT как диффузионная тушка. В ablation гоняют на отрезках из OpenWebText длиной 128 токенов.
Показывают, что все компоненты метода - разогрев энкодера, обучаемый энкодер поверх GPT-2, расписание шагов диффузии и правильная величина шума важны для качества.
В финальных экспериментах увеличивают длину контекста до 1024 и сравниваются с разными современными подходами по текстовой диффузии
👉 MDLM
👉 Duo
👉 CANDI
👉 FLM
И оказываются лучше по соотношению между перплексией и энтропией (разнообразием). Учится оно несколько дольше большинства бейзлайнов, но зато сэмплирует быстрее на инференсе (за счет того, что декодировать надо только в конце?).
💡 Выводы
Интересный результат. Но как всегда в этой отрасли, встает вопрос о масштабируемости на уровень более-менее SOTA моделек.
❤3
TileLang (DSL для написания кернелов, представленный на ICLR 2026), как мне кажется, один из самых перспективных языков для написания кернелов.
С одной стороны, дает гораздо больший контроль над результатом, так как пользователь может явно работать с разными видами памяти (регистры, shared memory / tensor memory), с разбиением задач на блоки и потоки, контролировать тип используемых gemm-ов, задавать синхронизации, барьеры, и многое другое. И в то же время он все еще значительно проще в освоении и в синтаксисе, чем CUDA + CUTLASS, CuTe DSL.
Из проектов и реализаций, использующих его стоит отметить:
• TileKernels от DeepSeek
• FlashQLA от Qwen3
• tilelang-ascend (адаптация tilelang под хуавеевские асценды)
Из обучающих материалов могу порекомендовать:
• tilelang-puzzles - набор задачек возрастающей сложности, чтобы пощупать язык
• Примеры из оригинального репозитория
• Туториал по написанию FlashAttention под AMDшные GPU
Мне он видится как довольно хороший баланс между эффективностью / гибкостью и сложностью в освоении.
С одной стороны, дает гораздо больший контроль над результатом, так как пользователь может явно работать с разными видами памяти (регистры, shared memory / tensor memory), с разбиением задач на блоки и потоки, контролировать тип используемых gemm-ов, задавать синхронизации, барьеры, и многое другое. И в то же время он все еще значительно проще в освоении и в синтаксисе, чем CUDA + CUTLASS, CuTe DSL.
Из проектов и реализаций, использующих его стоит отметить:
• TileKernels от DeepSeek
• FlashQLA от Qwen3
• tilelang-ascend (адаптация tilelang под хуавеевские асценды)
Из обучающих материалов могу порекомендовать:
• tilelang-puzzles - набор задачек возрастающей сложности, чтобы пощупать язык
• Примеры из оригинального репозитория
• Туториал по написанию FlashAttention под AMDшные GPU
Мне он видится как довольно хороший баланс между эффективностью / гибкостью и сложностью в освоении.
🔥14❤3
Неожиданный опенсорс от Ideogram - Ideogram-4.
Чекпоинты прилагаются в fp8 и nf4 форматах.
Утверждается, что оно state-of-the-art среди open-source моделей и не сильно уступает ведущим closed-source. При этом размер модели вообще не огромный - всего 9.3B параметров (то есть превосходит куда более увесистые модели типа Flux-2-dev, Hunyuan-Image-3 и Qwen-Image).
Архитектурно - single-stream DiT с Qwen-3-VL-Instruct энкодером.
Еще из примечательного - учатся и инферятся на структурированных JSON кэпшенах.
Лицензия, правда, некоммерческая.
[Блогпост]
Чекпоинты прилагаются в fp8 и nf4 форматах.
Утверждается, что оно state-of-the-art среди open-source моделей и не сильно уступает ведущим closed-source. При этом размер модели вообще не огромный - всего 9.3B параметров (то есть превосходит куда более увесистые модели типа Flux-2-dev, Hunyuan-Image-3 и Qwen-Image).
Архитектурно - single-stream DiT с Qwen-3-VL-Instruct энкодером.
Еще из примечательного - учатся и инферятся на структурированных JSON кэпшенах.
Лицензия, правда, некоммерческая.
[Блогпост]
❤11💩4
FLARE: Diffusion for Hybrid Language Model
[Статья] [Код] coming soon (или не soon)
Диффузионные языковые модели продолжают активно развиваться, но пока заметно уступают современным авторегрессионным моделям в своей весовой категории. При этом многие инженерные наработки последних лет — например, линейное внимание и эффективные рекуррентные механизмы — практически не использовались в dLLM.
Кроме того, обучение таких моделей с нуля обходится дорого. Гораздо привлекательнее выглядит сценарий, в котором можно стартовать с сильной авторегрессионной модели и относительно дешево превратить её в диффузионную.
Именно такой рецепт предлагает команда Adobe. Авторы показывают, как конвертировать SOTA AR-модель в гибридную диффузионную архитектуру, сохранив большую часть качества исходной модели.
[Статья] [Код] coming soon (или не soon)
Диффузионные языковые модели продолжают активно развиваться, но пока заметно уступают современным авторегрессионным моделям в своей весовой категории. При этом многие инженерные наработки последних лет — например, линейное внимание и эффективные рекуррентные механизмы — практически не использовались в dLLM.
Кроме того, обучение таких моделей с нуля обходится дорого. Гораздо привлекательнее выглядит сценарий, в котором можно стартовать с сильной авторегрессионной модели и относительно дешево превратить её в диффузионную.
Именно такой рецепт предлагает команда Adobe. Авторы показывают, как конвертировать SOTA AR-модель в гибридную диффузионную архитектуру, сохранив большую часть качества исходной модели.
👍6
🔬 Метод
Ключевая идея — максимально сохранить знания базовой авторегрессионной модели, то есть её autoregressive prior.
Для этого входная последовательность дублируется в два потока:
1️⃣ Чистый поток — обычная авторегрессия.
2️⃣ Шумный поток — диффузионный. Он обусловливается на:
зашумленные токены внутри текущего блока;
чистые токены из предыдущих по времени блоков.
Лосс-функция одновременно оптимизирует:
• авторегрессионный лосс;
• диффузионный лосс размаскирования.
Для GDN рекуррентное состояние берётся из последнего чистого блока и дополняется вкладом зашумлённого блока.
Для генерации предлагаются два режима:
👉 Diffusion-Trust
По сути напоминает confidence-based unmasking: модель постепенно раскрывает наиболее уверенные токены.
👉 AR-Trust
Фактически вариант спекулятивного декодирования. Диффузионный поток предлагает токены, а авторегрессионный поток их проверяет.
Первый вариант обеспечивает более параллельную генерацию, но может терять в качестве. Второй позволяет сохранять качество на уровне, близком к исходной AR-модели.
🧪 Эксперименты
Первичные эксперименты проводят на Qwen3-1.7B (чистый Transformer).
Отдельное внимание уделяется выбору данных для адаптации. Авторы рассматривают различные смеси:
• CoT;
• Math;
• Instruction Following.
Наблюдение довольно интересное: хорошая смесь данных не должна ухудшать качество базовой модели уже после AR-SFT.
В итоге оказывается полезно смешивать данные из разных доменов. Финальный датасет содержит около 10B токенов.
В ablation показывают, что критически важны:
✅ сохранение авторегрессионного потока;
✅ наличие авторегрессионного лосса;
✅ сдвиг логитов на один токен в диффузионном потоке.
Далее авторы переходят к моделям семейства Qwen-3.5 (2B / 4B / 9B).
FLARE-9B в большинстве сценариев превосходит:
• LLaDA-2.0;
• LLaDA-2.1;
• SDAR.
Однако отставание от базовой Qwen-3.5-9B всё ещё остаётся довольно заметным.
Как и ожидалось, AR-Trust показывает лучшее качество, чем более параллельный Diffusion-Trust.
Отдельно авторы оптимизируют инфраструктурную часть:
• сравнивают Gated Delta Rule и ShortConv;
• подбирают размеры блоков;
• исследуют различные схемы чанкирования.
В результате MFU удаётся почти удвоить относительно бейзлайна.
По throughput результаты тоже выглядят достойно:
заметно быстрее SDAR-1.7B;
младшие модели существенно опережают LLaDA;
версия 9B также сохраняет преимущество по токенам/сек.
💡 Выводы
Работа выглядит очень интересной как практический рецепт превращения сильной авторегрессионной модели в гибридную диффузионную.
Главная проблема пока остаётся прежней: нет открытых моделей и кода. Если бы авторы выложили оба артефакта, ценность работы была бы значительно выше.
Также остаются открытые вопросы:
❓ Как выглядит end-to-end latency относительно AR-бейзлайнов?
❓ Насколько хорошо подход масштабируется на современные крупные MoE-модели вроде DeepSeek-V4, Minimax M3 или Qwen-3.5-397B?
Будет интересно посмотреть на продолжение этой линии работ.
Ключевая идея — максимально сохранить знания базовой авторегрессионной модели, то есть её autoregressive prior.
Для этого входная последовательность дублируется в два потока:
1️⃣ Чистый поток — обычная авторегрессия.
2️⃣ Шумный поток — диффузионный. Он обусловливается на:
зашумленные токены внутри текущего блока;
чистые токены из предыдущих по времени блоков.
Лосс-функция одновременно оптимизирует:
• авторегрессионный лосс;
• диффузионный лосс размаскирования.
Для GDN рекуррентное состояние берётся из последнего чистого блока и дополняется вкладом зашумлённого блока.
Для генерации предлагаются два режима:
👉 Diffusion-Trust
По сути напоминает confidence-based unmasking: модель постепенно раскрывает наиболее уверенные токены.
👉 AR-Trust
Фактически вариант спекулятивного декодирования. Диффузионный поток предлагает токены, а авторегрессионный поток их проверяет.
Первый вариант обеспечивает более параллельную генерацию, но может терять в качестве. Второй позволяет сохранять качество на уровне, близком к исходной AR-модели.
🧪 Эксперименты
Первичные эксперименты проводят на Qwen3-1.7B (чистый Transformer).
Отдельное внимание уделяется выбору данных для адаптации. Авторы рассматривают различные смеси:
• CoT;
• Math;
• Instruction Following.
Наблюдение довольно интересное: хорошая смесь данных не должна ухудшать качество базовой модели уже после AR-SFT.
В итоге оказывается полезно смешивать данные из разных доменов. Финальный датасет содержит около 10B токенов.
В ablation показывают, что критически важны:
✅ сохранение авторегрессионного потока;
✅ наличие авторегрессионного лосса;
✅ сдвиг логитов на один токен в диффузионном потоке.
Далее авторы переходят к моделям семейства Qwen-3.5 (2B / 4B / 9B).
FLARE-9B в большинстве сценариев превосходит:
• LLaDA-2.0;
• LLaDA-2.1;
• SDAR.
Однако отставание от базовой Qwen-3.5-9B всё ещё остаётся довольно заметным.
Как и ожидалось, AR-Trust показывает лучшее качество, чем более параллельный Diffusion-Trust.
Отдельно авторы оптимизируют инфраструктурную часть:
• сравнивают Gated Delta Rule и ShortConv;
• подбирают размеры блоков;
• исследуют различные схемы чанкирования.
В результате MFU удаётся почти удвоить относительно бейзлайна.
По throughput результаты тоже выглядят достойно:
заметно быстрее SDAR-1.7B;
младшие модели существенно опережают LLaDA;
версия 9B также сохраняет преимущество по токенам/сек.
💡 Выводы
Работа выглядит очень интересной как практический рецепт превращения сильной авторегрессионной модели в гибридную диффузионную.
Главная проблема пока остаётся прежней: нет открытых моделей и кода. Если бы авторы выложили оба артефакта, ценность работы была бы значительно выше.
Также остаются открытые вопросы:
❓ Как выглядит end-to-end latency относительно AR-бейзлайнов?
❓ Насколько хорошо подход масштабируется на современные крупные MoE-модели вроде DeepSeek-V4, Minimax M3 или Qwen-3.5-397B?
Будет интересно посмотреть на продолжение этой линии работ.
DFlare: Scaling Up Draft Capacity for Block Diffusion Speculative Decoding
[Статья]
По существу работа предлагает инкрементальные улучшения поверх DFlash (наткнулся, когда искал код FLARE), поэтому кратко:
👉 Вместо того, чтобы брать равномерно признаки с какого-то по какой-то слой, делают взвешенное смешивание с обучаемой матрицей.
👉 Разделяют KV проекции для target контекста и драфтовых токенов.
👉 В экспоненциальном затухании весов токенов при удалении вглубь драфта постепенно повышают знаменатель (снижают скорость затухания).
👉 Stack more layers and train on more (3x) data 😝.
В итоге оно дает 5-10% ускорения против DFlash.
[Статья]
По существу работа предлагает инкрементальные улучшения поверх DFlash (наткнулся, когда искал код FLARE), поэтому кратко:
👉 Вместо того, чтобы брать равномерно признаки с какого-то по какой-то слой, делают взвешенное смешивание с обучаемой матрицей.
👉 Разделяют KV проекции для target контекста и драфтовых токенов.
👉 В экспоненциальном затухании весов токенов при удалении вглубь драфта постепенно повышают знаменатель (снижают скорость затухания).
👉 Stack more layers and train on more (3x) data 😝.
В итоге оно дает 5-10% ускорения против DFlash.
👍9🤔3
Alignment Collapse Under KV Cache Quantization: Diagnosis and Mitigation
[Статья][Код]
При сжатии моделей, активаций и KV-кэшей обычно смотрят на перплексию и результаты на стандартных бенчмарках, то есть оценивают, насколько изменилось качество модели в целом.
Однако на практике есть еще один важный аспект — безопасность.
Авторы показывают, что модель может практически не потерять качество по стандартным метрикам, но при этом заметно хуже соблюдать alignment и гораздо охотнее отвечать на опасные запросы.
[Статья][Код]
При сжатии моделей, активаций и KV-кэшей обычно смотрят на перплексию и результаты на стандартных бенчмарках, то есть оценивают, насколько изменилось качество модели в целом.
Однако на практике есть еще один важный аспект — безопасность.
Авторы показывают, что модель может практически не потерять качество по стандартным метрикам, но при этом заметно хуже соблюдать alignment и гораздо охотнее отвечать на опасные запросы.
🔥10❤4
🔬 Метод
Ключевое наблюдение статьи в следующем - признаки, отвечающие за способность модели отказывать в ответе, лежат в низкоразмерном подпространстве. Перплексия / стандартные бенчи оценивают возмущение в более высокоразмерном пространстве. Можно в среднем не сильно исказить общие признаки, но существенно задеть safety.
Далее авторы исследуют природу safety признаков.
Если safety каналы соотвествуют выбросам (каналам с большой нормой), то большой разницы между per-tensor квантизацией и per-channel (per-group) не будет. Если же они лежат в каналах с небольшой нормой, то они более чувствительны к выбору гранулярности.
Вводится PCR Score (FlipRate - доля ответов, где модель со сжатым кэшом согласилась на harmful запрос, а с несжатым отказалась)
Кроме того safety может быть распределена между несколькими подряд идущими слоями (spread). Их тогда следует обрабатывать аккуратнее.
Общая процедура safety-aware квантизации следующая:
• Квантизуем кэш каждого слоя по отдельности. Находим те, где большой процент флипов.
• Находим слои, где FlipRate превышает 10-20%.
• Считаем PCR
Для чувствительных слоев:
• Если PCR < 30% держим в FP16
• PCR 30-70% - в FP16 первый слой из группы подряд идущих критических слоев, остальные квантизуем с размером группы 64.
• PCR > 70% (low spread) - просто квантизуем с размером группы 64
• PCR > 70% (high spread) - FP16 для первых 3-4 слоев, а далее все с размером группы 64
Для такой калибровки достаточно ~20 промптов, и оно неплохо, как утверждается, обобщается.
🧪 Эксперименты
Исследования проводят на разных моделях (Qwen-2.5, Mistral, Mixtral, Gemma-2, Yi) и для разных техника сжатия (наивное сжатие / KIVI). Замеряют на совокупности из 5 safety бенчей - AdvBench, HarmBench, XSTest, IFEval, и каком-то своем датасете.
У разных моделей разные паттерны Safefy
• У Квена Safety сконцентирована в 0 слое
• Gemma-2 больше всего в первом слое, но еще и на нескольких соседних
• Mistral / Yi - Safety распределена широко по всей модели
Safety ломается на разных битностях (при per-tensor квантизации). У квена уже при 6-битной квантизации refusal ломается, у Mistral на 4-х битах, Gemma-2 / Mixtral только при 2-битной, когда уже сама по себе модель перестает выдавать что-то внятное.
Далее авторы валидируют свой подход по safety-aware квантизации. Защищая конкретные слои удается для некоторых моделей (для Qwen-2.5-7B) прямо хорошо сохранить safety (в 1.9% модель согласилась выполнить harmful запрос против 90.3% без защиты). Но всегда оно так хорошо работает.
Еще утверждается, что подход обобщается на разные модели (Olmo / KIVI квантизатор). FP8 квантизация KV-кэша для Квена тоже существенно сказывается на safety, а вот если квантовать в INT - то почти без разницы с FP16.
💡 Выводы
Довольно важное наблюдение для развертывания моделей на практике. Провайдерам и владельцам разных сервисов стоит быть начеку, ибо экономия памяти без видимой просадки качества может привести к репутационным рискам и потерям. Интересно, если заквантовать кэш Фаблы 5-ой будет ли справедливо то же самое? Немного удивляет выбор моделей для статьи вышедшей в июне 2026 года - модели в основном довольно старые, никаких тебе последних квенов и гемм.
Ключевое наблюдение статьи в следующем - признаки, отвечающие за способность модели отказывать в ответе, лежат в низкоразмерном подпространстве. Перплексия / стандартные бенчи оценивают возмущение в более высокоразмерном пространстве. Можно в среднем не сильно исказить общие признаки, но существенно задеть safety.
Далее авторы исследуют природу safety признаков.
Если safety каналы соотвествуют выбросам (каналам с большой нормой), то большой разницы между per-tensor квантизацией и per-channel (per-group) не будет. Если же они лежат в каналах с небольшой нормой, то они более чувствительны к выбору гранулярности.
Вводится PCR Score (FlipRate - доля ответов, где модель со сжатым кэшом согласилась на harmful запрос, а с несжатым отказалась)
PCR=1 − FlipRate_{per-tensor} / FlipRate_{per-channel}Кроме того safety может быть распределена между несколькими подряд идущими слоями (spread). Их тогда следует обрабатывать аккуратнее.
Общая процедура safety-aware квантизации следующая:
• Квантизуем кэш каждого слоя по отдельности. Находим те, где большой процент флипов.
• Находим слои, где FlipRate превышает 10-20%.
• Считаем PCR
Для чувствительных слоев:
• Если PCR < 30% держим в FP16
• PCR 30-70% - в FP16 первый слой из группы подряд идущих критических слоев, остальные квантизуем с размером группы 64.
• PCR > 70% (low spread) - просто квантизуем с размером группы 64
• PCR > 70% (high spread) - FP16 для первых 3-4 слоев, а далее все с размером группы 64
Для такой калибровки достаточно ~20 промптов, и оно неплохо, как утверждается, обобщается.
🧪 Эксперименты
Исследования проводят на разных моделях (Qwen-2.5, Mistral, Mixtral, Gemma-2, Yi) и для разных техника сжатия (наивное сжатие / KIVI). Замеряют на совокупности из 5 safety бенчей - AdvBench, HarmBench, XSTest, IFEval, и каком-то своем датасете.
У разных моделей разные паттерны Safefy
• У Квена Safety сконцентирована в 0 слое
• Gemma-2 больше всего в первом слое, но еще и на нескольких соседних
• Mistral / Yi - Safety распределена широко по всей модели
Safety ломается на разных битностях (при per-tensor квантизации). У квена уже при 6-битной квантизации refusal ломается, у Mistral на 4-х битах, Gemma-2 / Mixtral только при 2-битной, когда уже сама по себе модель перестает выдавать что-то внятное.
Далее авторы валидируют свой подход по safety-aware квантизации. Защищая конкретные слои удается для некоторых моделей (для Qwen-2.5-7B) прямо хорошо сохранить safety (в 1.9% модель согласилась выполнить harmful запрос против 90.3% без защиты). Но всегда оно так хорошо работает.
Еще утверждается, что подход обобщается на разные модели (Olmo / KIVI квантизатор). FP8 квантизация KV-кэша для Квена тоже существенно сказывается на safety, а вот если квантовать в INT - то почти без разницы с FP16.
💡 Выводы
Довольно важное наблюдение для развертывания моделей на практике. Провайдерам и владельцам разных сервисов стоит быть начеку, ибо экономия памяти без видимой просадки качества может привести к репутационным рискам и потерям. Интересно, если заквантовать кэш Фаблы 5-ой будет ли справедливо то же самое? Немного удивляет выбор моделей для статьи вышедшей в июне 2026 года - модели в основном довольно старые, никаких тебе последних квенов и гемм.
👍2
КПД
И премию за самые информативные названия коммитов получает... [Ссылка]
В телеге, впрочем, тоже не шибко парятся за информативный changelog)
❤11😁6
Симпатичный и содержательный блогпост про Flow-Based генерацию языка.
Содержание блога следующее:
1️⃣ Стандарные вводные про авторегрессию vs диффузию
2️⃣ Специфика текстовый диффузии
3️⃣ Наблюдение про то, что минимизация L2 для x0-предсказания суть MLE для гауссовой модели с фиксированной дисперсией
4️⃣ Затем вводится понятие FlowMap - отображения из любой точки s на траектории в любую другую t (иначе говоря, выход интегрирования по мгновенной скорости)
5️⃣ Обучать FlowMap можно через Lagrangian self-distillation (тождество, которому обязан удовлетворять FlowMap)
6️⃣ Далее приводится специальная форма FlowMap для категориального распределения, когда распределение живет на вероятностном симплексе
Содержание блога следующее:
1️⃣ Стандарные вводные про авторегрессию vs диффузию
2️⃣ Специфика текстовый диффузии
3️⃣ Наблюдение про то, что минимизация L2 для x0-предсказания суть MLE для гауссовой модели с фиксированной дисперсией
4️⃣ Затем вводится понятие FlowMap - отображения из любой точки s на траектории в любую другую t (иначе говоря, выход интегрирования по мгновенной скорости)
5️⃣ Обучать FlowMap можно через Lagrangian self-distillation (тождество, которому обязан удовлетворять FlowMap)
6️⃣ Далее приводится специальная форма FlowMap для категориального распределения, когда распределение живет на вероятностном симплексе
❤8👍2🔥1
MiniMax Sparse Attention
[Статья] [Код]
Работа с длинным контекстом становится все более востребованной, но стандартный full attention вычислительно дорогой, поэтому за последние годы появилась целая плеяда работ, предлагающих разные вариации Sparse Attention.
И в данной работе предложили Yet Another Sparse Attention, который даже масштабируется на крупные и практически интересные модели — свежевышедший Minimax M3.
[Статья] [Код]
Работа с длинным контекстом становится все более востребованной, но стандартный full attention вычислительно дорогой, поэтому за последние годы появилась целая плеяда работ, предлагающих разные вариации Sparse Attention.
И в данной работе предложили Yet Another Sparse Attention, который даже масштабируется на крупные и практически интересные модели — свежевышедший Minimax M3.
🔬 Метод
Концептуально метод довольно несложный. Возникают две ветки вычислений:
🤙 Легковесная индексирующая ветка. В ней на каждую query-группу в исходном внимании приходится одна query-голова и одна единственная key-голова на весь слой. Сначала считается pre-softmax скор, а затем отбирается максимальное значение в рамках некоего разбиения на блоки. Затем берутся topK блоков с наибольшим найденным значением максимума.
🤙 Главная ветка. Обычное блочно-разреженное внимание на блоках, которые вернула индексирующая ветка.
Процедура обучения устроена следующим образом:
👉Функция потерь — KL-дивергенция между выходами индексной ветки и усредненными выходами основной ветки. Хотим, чтобы выбранная sparsity в индексной ветке совпадала с главной. Через вероятности в главной ветке делается stopgrad, чтобы не коллапсировало.
👉 На входы индексной ветки тоже накладывается stopgrad, чтобы оптимизировались только проекции индексной ветки и градиент не тек ниже по модели.
👉 Разогрев индексной ветки. Сначала некоторое время гоняют полный attention в обеих ветках, а затем включают topK в индексной ветке.
👉 Последний блок (скользящее окно токенов) добавляют всегда.
С Minimax Sparse Attention (MSA) можно обучать как с самого начала, так и пострейнить.
Еще они наворотили topK-кернел, который быстрее торчового и быстрее TileLang-референса. И еще там персистентная сетка, учитывающая неоднородную и динамическую загрузку в процессе вычислений.
🧪 Эксперименты
Эксперименты проводят на 109B MoE с 6B активными параметрами (учат на 3T токенов суммарно). Есть три постановки:
🔅 Full Attention бейзлайн
🔅 MSA-PT (учат MSA с нуля)
🔅 MSA-CPT (2.6T токенов с Full Attention / 400B с MSA)
MSA учится довольно стабильно, лосс почти не отходит от Full Attention, без спайков и скачков.
По метрикам все 3 варианта довольно близки, без явного победителя, при этом в MSA внимание проводится всего на 2048 токенов (16 блоков по 128 токенов). Для работы на длинном контексте дополнительно дообучают модель, и там она на Helmet/RULER примерно на уровне MSA.
На контексте в 1М токенов предложенный подход дает 28х теоретического ускорения против полного внимания, но на практике выходит 14х на префилле и 7х на декоде из-за дополнительных оверхедов с запуском второй ветки вычислений, topK, индексаций.
💡 Выводы
Подход, безусловно, интересный, но не хватает сравнения с линейными вниманиями (в идеале гибридами полного и линейного внимания), а также другими бейзлайнами по Sparse Attention (с тем же Big Bird, DeepSpeed Sparse Attention, XAttention, DeepSeek-V4 разреженными вниманиями и многими другими). Также непонятно, как оно себя ведет на context-intensive задачах. А еще ускорения почему-то репортятся на H800, а кернелы выложены только под Blackwell.
Концептуально метод довольно несложный. Возникают две ветки вычислений:
🤙 Легковесная индексирующая ветка. В ней на каждую query-группу в исходном внимании приходится одна query-голова и одна единственная key-голова на весь слой. Сначала считается pre-softmax скор, а затем отбирается максимальное значение в рамках некоего разбиения на блоки. Затем берутся topK блоков с наибольшим найденным значением максимума.
🤙 Главная ветка. Обычное блочно-разреженное внимание на блоках, которые вернула индексирующая ветка.
Процедура обучения устроена следующим образом:
👉Функция потерь — KL-дивергенция между выходами индексной ветки и усредненными выходами основной ветки. Хотим, чтобы выбранная sparsity в индексной ветке совпадала с главной. Через вероятности в главной ветке делается stopgrad, чтобы не коллапсировало.
👉 На входы индексной ветки тоже накладывается stopgrad, чтобы оптимизировались только проекции индексной ветки и градиент не тек ниже по модели.
👉 Разогрев индексной ветки. Сначала некоторое время гоняют полный attention в обеих ветках, а затем включают topK в индексной ветке.
👉 Последний блок (скользящее окно токенов) добавляют всегда.
С Minimax Sparse Attention (MSA) можно обучать как с самого начала, так и пострейнить.
Еще они наворотили topK-кернел, который быстрее торчового и быстрее TileLang-референса. И еще там персистентная сетка, учитывающая неоднородную и динамическую загрузку в процессе вычислений.
🧪 Эксперименты
Эксперименты проводят на 109B MoE с 6B активными параметрами (учат на 3T токенов суммарно). Есть три постановки:
🔅 Full Attention бейзлайн
🔅 MSA-PT (учат MSA с нуля)
🔅 MSA-CPT (2.6T токенов с Full Attention / 400B с MSA)
MSA учится довольно стабильно, лосс почти не отходит от Full Attention, без спайков и скачков.
По метрикам все 3 варианта довольно близки, без явного победителя, при этом в MSA внимание проводится всего на 2048 токенов (16 блоков по 128 токенов). Для работы на длинном контексте дополнительно дообучают модель, и там она на Helmet/RULER примерно на уровне MSA.
На контексте в 1М токенов предложенный подход дает 28х теоретического ускорения против полного внимания, но на практике выходит 14х на префилле и 7х на декоде из-за дополнительных оверхедов с запуском второй ветки вычислений, topK, индексаций.
💡 Выводы
Подход, безусловно, интересный, но не хватает сравнения с линейными вниманиями (в идеале гибридами полного и линейного внимания), а также другими бейзлайнами по Sparse Attention (с тем же Big Bird, DeepSpeed Sparse Attention, XAttention, DeepSeek-V4 разреженными вниманиями и многими другими). Также непонятно, как оно себя ведет на context-intensive задачах. А еще ускорения почему-то репортятся на H800, а кернелы выложены только под Blackwell.
❤7
Alex Smola (известный как пионер large-scale деплоя моделей и CEO Boson AI) выложил очень содержательную презентацию по Efficiency in LLMs, которую он расскажет Machine Learning Summer School (записи вроде не будет 😰).
В ней он рассказывает про:
• Современное железо и как оно влияет на инференс/обучение LLM
• Serving моделей
• Сжатие весов и KV-кэшей (затрагивая довольно свежие работты в том числе)
Рекомендую всем, желающим погрузиться в область или освежить знания.
В ней он рассказывает про:
• Современное железо и как оно влияет на инференс/обучение LLM
• Serving моделей
• Сжатие весов и KV-кэшей (затрагивая довольно свежие работты в том числе)
Рекомендую всем, желающим погрузиться в область или освежить знания.
🔥23
Как мне кажется, есть некоторая несправедливость в том, что на разные инкрементальные улучшения авторегрессии (yet another sparse attention, новые residual connections, gating в аттеншене) и их ablation находится ресурс на обучение в более-менее практически релевантной постановке (модели размером 10B-100B параметров на бюджетах порядка триллиона токенов), а куда концептуально более интересные работы по текстовой диффузии в основном обучаются в игрушечных сетапах а-ля ~100M модель на нескольких миллиардах токенов.
Впрочем, возможно, лучше синица в руке, чем журавль в небе...
Впрочем, возможно, лучше синица в руке, чем журавль в небе...
❤15👏2
Flow Map Language Models: One-step Language Modeling via Continuous Denoising
📄 [Статья]
💻 [Код]
Статья старше ELF и LDLM, тем не менее интересна с точки зрения самого подхода и теоретических результатов.
На текущий момент в текстовой диффузии преобладают дискретные подходы, итеративно расшумляющие токены в связный текст. Однако при таком подходе распределение токенов всё равно получается факторизованным, и нет возможности итеративно обновлять состояние уже предсказанных токенов.
В непрерывной диффузии этого можно добиться, но на практике она обычно уступает дискретной. И в этой работе предложили подход к генерации текста, основанный на непрерывных потоках, к которому ещё прикрутили flow map-дистилляцию, позволяющую получать адекватное качество на малом числе шагов сэмплирования.
📄 [Статья]
💻 [Код]
Статья старше ELF и LDLM, тем не менее интересна с точки зрения самого подхода и теоретических результатов.
На текущий момент в текстовой диффузии преобладают дискретные подходы, итеративно расшумляющие токены в связный текст. Однако при таком подходе распределение токенов всё равно получается факторизованным, и нет возможности итеративно обновлять состояние уже предсказанных токенов.
В непрерывной диффузии этого можно добиться, но на практике она обычно уступает дискретной. И в этой работе предложили подход к генерации текста, основанный на непрерывных потоках, к которому ещё прикрутили flow map-дистилляцию, позволяющую получать адекватное качество на малом числе шагов сэмплирования.
❤7👍2
🔬 Метод
За основу берётся фреймворк flow matching со стохастическим интерполянтом на непрерывных данных.
Однако вместо стандартного v-prediction предлагают перейти к x-prediction, мотивируя это аналогично работе JiT из картиночного мира: мол, оно лежит на многообразии, а скорость — нет.
Потом они получают лемму о том, что оптимальный денойзер есть потокенное апостериорное распределение, откуда следует, что оптимальный денойзер есть минимум кросс-энтропии (т.е. получают совпадение оптимизации диффузионного лосса и правдоподобия).
Далее в статье вводят формулировку Flow Map — отображения, которое переводит из заданной точки в любую другую. Целевое отображение параметризуют в виде two-time денойзера, обладающего следующими свойствами:
🔹 Выход денойзера лежит на вероятностном симплексе.
🔹 Если оба времени совпадают, получаем обычный денойзер для x0-prediction.
🔹 Полугрупповое свойство: попасть в точку t из s — то же самое, что из s в u посередине, а затем из u в t.
Авторы показывают, что подобная формулировка для дискретной диффузии нереализуема.
⚠️ Ещё из важных аспектов следует отметить следующее
🔸 Равномерные шаги сэмплирования работают плохо. Авторы замеряют decoding error rate (долю неправильно предсказанных токенов) в зависимости от времени и замечают, что она держится в районе 1 (всегда ошибаемся) большую часть траектории, а в конце резко падает в 0. Поэтому шаги подбираются так, чтобы равномерно улучшать данную метрику. То есть шаги сконцентрированы в районе переходной зоны.
🔸 В отличие от дискретной диффузии, на непрерывную легко переносятся известные техники гайденса. Автогайденс с плохой моделью или гайденс на некоторый реворд.
📊 Эксперименты
Обучают модель на 179M параметров на LM1B и OpenWebText. Сравнивают с RDLM, CANDI, MDLM, Duo.
На большом числе шагов сэмплирования FLM (без дистилляции) достигает более низкой перплексии, чем конкурентные подходы. Но при малом числе шагов уступает Duo. Энтропия примерно у всех подходов на одном уровне.
А если сравнивать дистиллированную версию FMLM, то на малом числе шагов (1–8) она оказывается заметно лучше конкурентов.
Затем сравнивают guidance. MDLM и Duo, начиная с какого-то момента (силы guidance), разваливаются, и перплексия уходит в стратосферу. У FLM перплексия только убывает с ростом гайденса, но энтропия тоже убывает.
🎯 Гайденс на реворд улучшает целевую метрику.
Затем проводят ablation метода:
🔹 x0-prediction гораздо лучше, чем v-prediction.
🔹 CE loss с softmax на логитах даёт лучший результат.
🔹 Диффузия в евклидовом пространстве лучше различных римановых и симплексных вариантов.
Для FMLM:
🔹 two-time параметризация оптимальна.
🔹 Лучше стартовать с предобученной диффузии, а не с нуля.
🔹 Полугрупповой дистилляционный objective лучше, чем эйлеров или лагранжев (что есть что прекрасно разобрано у Sander Dieleman).
📝 Выводы
Небезынтересный подход с неплохой теоретической подоплёкой. Но, как и везде, встаёт вопрос масштабирования и обобщаемости.
За основу берётся фреймворк flow matching со стохастическим интерполянтом на непрерывных данных.
Однако вместо стандартного v-prediction предлагают перейти к x-prediction, мотивируя это аналогично работе JiT из картиночного мира: мол, оно лежит на многообразии, а скорость — нет.
Потом они получают лемму о том, что оптимальный денойзер есть потокенное апостериорное распределение, откуда следует, что оптимальный денойзер есть минимум кросс-энтропии (т.е. получают совпадение оптимизации диффузионного лосса и правдоподобия).
Далее в статье вводят формулировку Flow Map — отображения, которое переводит из заданной точки в любую другую. Целевое отображение параметризуют в виде two-time денойзера, обладающего следующими свойствами:
🔹 Выход денойзера лежит на вероятностном симплексе.
🔹 Если оба времени совпадают, получаем обычный денойзер для x0-prediction.
🔹 Полугрупповое свойство: попасть в точку t из s — то же самое, что из s в u посередине, а затем из u в t.
Авторы показывают, что подобная формулировка для дискретной диффузии нереализуема.
⚠️ Ещё из важных аспектов следует отметить следующее
🔸 Равномерные шаги сэмплирования работают плохо. Авторы замеряют decoding error rate (долю неправильно предсказанных токенов) в зависимости от времени и замечают, что она держится в районе 1 (всегда ошибаемся) большую часть траектории, а в конце резко падает в 0. Поэтому шаги подбираются так, чтобы равномерно улучшать данную метрику. То есть шаги сконцентрированы в районе переходной зоны.
🔸 В отличие от дискретной диффузии, на непрерывную легко переносятся известные техники гайденса. Автогайденс с плохой моделью или гайденс на некоторый реворд.
📊 Эксперименты
Обучают модель на 179M параметров на LM1B и OpenWebText. Сравнивают с RDLM, CANDI, MDLM, Duo.
На большом числе шагов сэмплирования FLM (без дистилляции) достигает более низкой перплексии, чем конкурентные подходы. Но при малом числе шагов уступает Duo. Энтропия примерно у всех подходов на одном уровне.
А если сравнивать дистиллированную версию FMLM, то на малом числе шагов (1–8) она оказывается заметно лучше конкурентов.
Затем сравнивают guidance. MDLM и Duo, начиная с какого-то момента (силы guidance), разваливаются, и перплексия уходит в стратосферу. У FLM перплексия только убывает с ростом гайденса, но энтропия тоже убывает.
🎯 Гайденс на реворд улучшает целевую метрику.
Затем проводят ablation метода:
🔹 x0-prediction гораздо лучше, чем v-prediction.
🔹 CE loss с softmax на логитах даёт лучший результат.
🔹 Диффузия в евклидовом пространстве лучше различных римановых и симплексных вариантов.
Для FMLM:
🔹 two-time параметризация оптимальна.
🔹 Лучше стартовать с предобученной диффузии, а не с нуля.
🔹 Полугрупповой дистилляционный objective лучше, чем эйлеров или лагранжев (что есть что прекрасно разобрано у Sander Dieleman).
📝 Выводы
Небезынтересный подход с неплохой теоретической подоплёкой. Но, как и везде, встаёт вопрос масштабирования и обобщаемости.
👍6🔥3