Выкатили на Хабр лонгрид про EvoPress 💪, представленный на ICML прошедшим летом.
Хабр
EvoPress: новый подход к оптимизации и сжатию LLM от исследователей Яндекса
Всем привет! Меня зовут Денис Кузнеделев, я работаю в команде Yandex Research. Моё основное направление деятельности на данный момент — задача сжатия и ускорения больших языковых и...
❤10
PLANNED DIFFUSION
[Статья] [Кода нет, во[MASK}но, [MASK]ируется]
Введение
На текущий момент авторегрессия и диффузия являются доминирующими парадигмами в мире генеративного ИИ. Первая преобладает в языковых и прочих задачах, предполагающих работу с последовательностями, вторая - при генерации изображений и видео. И еще были попытки и как-то комбинировать.
И данная работа предлагает интересное решение - единую авторегрессионо-диффузионную модель, которая сначала набрасывает план 📝 решения авторегрессией, а затем диффузия генерирует по плану.
[Статья] [Кода нет, во[MASK}но, [MASK]ируется]
Введение
На текущий момент авторегрессия и диффузия являются доминирующими парадигмами в мире генеративного ИИ. Первая преобладает в языковых и прочих задачах, предполагающих работу с последовательностями, вторая - при генерации изображений и видео. И еще были попытки и как-то комбинировать.
И данная работа предлагает интересное решение - единую авторегрессионо-диффузионную модель, которая сначала набрасывает план 📝 решения авторегрессией, а затем диффузия генерирует по плану.
👍5❤2
🔬 Метод
Авторегрессия в стандартной постановке предсказывается следующий токен на основе предыдущих, а маскированная диффузия - вероятность
Planned diffusion работает следующим образом:
1️⃣ Сначала авторегрессионно генерируется некий контекст и черновик для дальнейшей генерации. Предполагается, что есть несколько ветвей рассуждения, которые можно генерировать независимо, и для каждой из авторегрессия предсказывает сколько токенов надо расшумить.
2️⃣ Затем диффузия, имея контекст и заданное количество [MASK] токенов, генерирует какую-то ветвь.
3️⃣Затем происходит синхронизация и генерируется заключение.
Контекст размечается специальными
Рассматривают два случая - когда токены в параллельных ветвях не смотрят 🙈 друг на друга (
Обучение происходит следующим образом - в последовательности в нужном формате (с разметкой) зашумляют до некоторого уровня ветви рассуждения, и модель учится одновременно на авторегрессионный и диффузионный лосс (то есть предсказывать правильно план и рассуждения).
На инференсе при авторегрессионой генерации можно использовать сгенерированный ранее KV-кэш, но для текущего шага диффузии из-за full attention все токены в ветви рассуждения генерируются по новой.
При декодировании диффузией используют энтропийный порядок - декодируются первыми те токены, где модель более уверенна.
Авторегрессия в стандартной постановке предсказывается следующий токен на основе предыдущих, а маскированная диффузия - вероятность
[MASK] токена стать токеном из словаря при условии окружающих токенов. Авторегрессия предсказывает по токену за раз, диффузия может сразу несколько, но для лучшего качества требуется обыкновенно несколько прогонов через модель. Planned diffusion работает следующим образом:
1️⃣ Сначала авторегрессионно генерируется некий контекст и черновик для дальнейшей генерации. Предполагается, что есть несколько ветвей рассуждения, которые можно генерировать независимо, и для каждой из авторегрессия предсказывает сколько токенов надо расшумить.
2️⃣ Затем диффузия, имея контекст и заданное количество [MASK] токенов, генерирует какую-то ветвь.
3️⃣Затем происходит синхронизация и генерируется заключение.
Контекст размечается специальными
<topic> (</topic>) тегами. Асинхронные параллельные блоки <async> (</async>) тегами. Точка синхронизации - <sync> тегом.Рассматривают два случая - когда токены в параллельных ветвях не смотрят 🙈 друг на друга (
PD), и когда смотрят 👀 (PD-DA).Обучение происходит следующим образом - в последовательности в нужном формате (с разметкой) зашумляют до некоторого уровня ветви рассуждения, и модель учится одновременно на авторегрессионный и диффузионный лосс (то есть предсказывать правильно план и рассуждения).
На инференсе при авторегрессионой генерации можно использовать сгенерированный ранее KV-кэш, но для текущего шага диффузии из-за full attention все токены в ветви рассуждения генерируются по новой.
При декодировании диффузией используют энтропийный порядок - декодируются первыми те токены, где модель более уверенна.
👍4
🧪Эксперименты
Метод валидируют путем дообучения Dream-7B-Base, которую сначала учили на авторегрессию, а затем на диффузию.
Разметку для обучения собирают с помощью Gemini переформатируя примеры из Slim Orca в требуемый вид (план + ветви рассуждения). Неудачные примеры выбрасывают.
В качестве бейзлайнов берут просто авторегрессию, текстовую диффузию, и ускоренную диффузию Fast-dLLM.
Качество оценивают на AlpacaEval c LLM-as-a-judge, следуя некоему стандартному протоколу. Дабы получить лучший результат и честное сравнение для каждого из вариантов учат 2, 4, 8, или 16 эпох и выбирают лучшую модель. Для авторегрессии оптимальны 2 эпохи, для диффузионных постановок полезно учить подольше - 16 эпох.
Planned диффузия по качеству не сильно уступает авторегрессии, но при этом работает быстрее. В среднем удается добиться в 2.3 раза меньшего числа forward пассов по сравнению с AR, но конечное ускорение несколько меньше - 1.8x для независимых потоков, и 1.3x при dense-attention.
PD-DA несколько лучше по качеству, чем просто PD, но и медленнее (нельзя пропустить вычисления attention-а в некоторых блоках).
Далее ablaтят необходимость <topic> и <sync> тегов. При пропуске <topic> качество просаживается сильно, но от потери <sync> не сильно страдает и получается к тому же еще быстрее.
Кроме того, пробуют подавать на инференсе диффузии меньше или больше токенов, чем “спланировала” авторегрессия. Оптимальное качество достигается когда их столько же. Но если важна скорость - можно подавать более короткие цепочки [MASK] с умеренной просадкой.
💡 Выводы
На мой взгляд, довольно интересное исследование и постановка задачи. Как будто кажется естественным, что при работе над чем-то обьемным, мы сначала набрасываем план, черновик, а затем прорисовываем детали, шлифуем. Интересно, применима ли данная стратегия в других генеративных задачах и насколько масштабируется.
Метод валидируют путем дообучения Dream-7B-Base, которую сначала учили на авторегрессию, а затем на диффузию.
Разметку для обучения собирают с помощью Gemini переформатируя примеры из Slim Orca в требуемый вид (план + ветви рассуждения). Неудачные примеры выбрасывают.
В качестве бейзлайнов берут просто авторегрессию, текстовую диффузию, и ускоренную диффузию Fast-dLLM.
Качество оценивают на AlpacaEval c LLM-as-a-judge, следуя некоему стандартному протоколу. Дабы получить лучший результат и честное сравнение для каждого из вариантов учат 2, 4, 8, или 16 эпох и выбирают лучшую модель. Для авторегрессии оптимальны 2 эпохи, для диффузионных постановок полезно учить подольше - 16 эпох.
Planned диффузия по качеству не сильно уступает авторегрессии, но при этом работает быстрее. В среднем удается добиться в 2.3 раза меньшего числа forward пассов по сравнению с AR, но конечное ускорение несколько меньше - 1.8x для независимых потоков, и 1.3x при dense-attention.
PD-DA несколько лучше по качеству, чем просто PD, но и медленнее (нельзя пропустить вычисления attention-а в некоторых блоках).
Далее ablaтят необходимость <topic> и <sync> тегов. При пропуске <topic> качество просаживается сильно, но от потери <sync> не сильно страдает и получается к тому же еще быстрее.
Кроме того, пробуют подавать на инференсе диффузии меньше или больше токенов, чем “спланировала” авторегрессия. Оптимальное качество достигается когда их столько же. Но если важна скорость - можно подавать более короткие цепочки [MASK] с умеренной просадкой.
💡 Выводы
На мой взгляд, довольно интересное исследование и постановка задачи. Как будто кажется естественным, что при работе над чем-то обьемным, мы сначала набрасываем план, черновик, а затем прорисовываем детали, шлифуем. Интересно, применима ли данная стратегия в других генеративных задачах и насколько масштабируется.
🤔4❤1
Точность имеет значение
У наиболее распространенного на данный момент для обучения формата bfloat16 всего 7️⃣ бит на мантиссу. Обычно полагается, что такой формат lossless с точки зрения обучения и инференса (есть работы указывающие на сложность в воспроизводимости результатов в bf16).
Однако для некоторых слоев и тензоров, могут быть интересные последствия.
Некоторое время назад, обучая модельку, мы обнаружили, что веса при RMS нормах вообще не сдвинулись с места. При этом градиент тек по ним, и оптимизатор вполне себе их захватывал.
А дело в том, что в момент инициализации веса при RMS норме равны 1, и если обновление по величине не превышает
В bfloat16:
Собственно для таких ситуаций и нужна мастер копия в fp32.
У наиболее распространенного на данный момент для обучения формата bfloat16 всего 7️⃣ бит на мантиссу. Обычно полагается, что такой формат lossless с точки зрения обучения и инференса (есть работы указывающие на сложность в воспроизводимости результатов в bf16).
Однако для некоторых слоев и тензоров, могут быть интересные последствия.
Некоторое время назад, обучая модельку, мы обнаружили, что веса при RMS нормах вообще не сдвинулись с места. При этом градиент тек по ним, и оптимизатор вполне себе их захватывал.
А дело в том, что в момент инициализации веса при RMS норме равны 1, и если обновление по величине не превышает
1e-3, то вес никогда не изменится. В bfloat16:
1 + 1e-3 = 1Собственно для таких ситуаций и нужна мастер копия в fp32.
👍39
INT v.s. FP: A Comprehensive Study of Fine-Grained Low-bit Quantization Formats
[Статья] [Код]
Введение
С увеличением потребности в удешевлении обучения и инференса все более остро стоит вопрос об обучении в более низкой точности. Одна зеленая компания сначала внедрила аппаратную поддержку FP8, а затем и FP4.
Однако почему FP, а не INT 🤔? NVIDIA в статьях и блогпостах никак не обосновывала данный выбор, потому мотивация остается тайной, покрытой мраком 🌚.
И группа ребят-тиктокеров 🕺 решила сравнить INT и FP в сопоставимых условиях.
[Статья] [Код]
Введение
С увеличением потребности в удешевлении обучения и инференса все более остро стоит вопрос об обучении в более низкой точности. Одна зеленая компания сначала внедрила аппаратную поддержку FP8, а затем и FP4.
Однако почему FP, а не INT 🤔? NVIDIA в статьях и блогпостах никак не обосновывала данный выбор, потому мотивация остается тайной, покрытой мраком 🌚.
И группа ребят-тиктокеров 🕺 решила сравнить INT и FP в сопоставимых условиях.
🔬 Метод
Рассматривают 4 пары конфигураций квантизации:
📌 MXFP8/MXINT8
📌 MXFP6/MXINT6
📌 MXFP4/MXINT4
📌 NVFP4/NVINT4
MX-варианты квантизуются группами по 32 веса с E8M0 скейлами, а NV группами по 16 весов с E4M3 скейлами. И на FP / INT сетку значений, соответственно.
Исходя из предположения о гауссовости распределений, выводят формулы для ошибки квантизации (вернее SNR). Откуда следует, что при большом значении отношения максимального элемента к стандартному отклонению (при per-tensor квантизации или больших группах) предпочтительнее FP, а при малых группах - INT.
Реальные веса и активации не совсем гауссовы, но их можно сделать более гауссовыми Адамаровыми вращениями.
🧪Эксперименты
Эмпирически проверяют полученные законы на весах/активациях и градиентах Llama-3.1-8B. Оказывается, что без вращений FP форматы лучше, за исключением случая NVINT против NVFP. C вращениями MXINT8 лучше MXFP8, MXINT6 хуже MXFP6, MXINT4 хуже MXFP4, NVINT4 лучше NVFP4.
Затем смотрят на KL-дивергенцию c исходной моделью, утверждая что бенчи шумные и не репрезентативные. Без поворотов FP обычно лучше, с поворотами - наоборот,
Затем учат 1B и 3B модельки на 100B/200B токенах. MXFP8/MXINT8 по лоссу и бенчам +/- как исходная модель, лосс MXINT на тютельку ниже.
Потом говорят, что INT формат предпочтительнее, потому что жрет меньше энергии.
💡 Выводы
Данный результат в некоторой степени показывает, что зря NVIDIA (в угоду маркетингу? 💲) похерили поддержку INT в новых архитектурах. Особенно с учетом того, что при маленьких группах FP - не выигрышный вариант. Протокол сравнения немного вызывает вопросы - все-таки 0-шоты в post-training режиме тоже было бы не лишним привести. Ну и то, что Адамаровы вращения прямо сильно вредят float-у и помогают int-у тоже немного удивительно.
Рассматривают 4 пары конфигураций квантизации:
📌 MXFP8/MXINT8
📌 MXFP6/MXINT6
📌 MXFP4/MXINT4
📌 NVFP4/NVINT4
MX-варианты квантизуются группами по 32 веса с E8M0 скейлами, а NV группами по 16 весов с E4M3 скейлами. И на FP / INT сетку значений, соответственно.
Исходя из предположения о гауссовости распределений, выводят формулы для ошибки квантизации (вернее SNR). Откуда следует, что при большом значении отношения максимального элемента к стандартному отклонению (при per-tensor квантизации или больших группах) предпочтительнее FP, а при малых группах - INT.
Реальные веса и активации не совсем гауссовы, но их можно сделать более гауссовыми Адамаровыми вращениями.
🧪Эксперименты
Эмпирически проверяют полученные законы на весах/активациях и градиентах Llama-3.1-8B. Оказывается, что без вращений FP форматы лучше, за исключением случая NVINT против NVFP. C вращениями MXINT8 лучше MXFP8, MXINT6 хуже MXFP6, MXINT4 хуже MXFP4, NVINT4 лучше NVFP4.
Затем смотрят на KL-дивергенцию c исходной моделью, утверждая что бенчи шумные и не репрезентативные. Без поворотов FP обычно лучше, с поворотами - наоборот,
Затем учат 1B и 3B модельки на 100B/200B токенах. MXFP8/MXINT8 по лоссу и бенчам +/- как исходная модель, лосс MXINT на тютельку ниже.
Потом говорят, что INT формат предпочтительнее, потому что жрет меньше энергии.
💡 Выводы
Данный результат в некоторой степени показывает, что зря NVIDIA (в угоду маркетингу? 💲) похерили поддержку INT в новых архитектурах. Особенно с учетом того, что при маленьких группах FP - не выигрышный вариант. Протокол сравнения немного вызывает вопросы - все-таки 0-шоты в post-training режиме тоже было бы не лишним привести. Ну и то, что Адамаровы вращения прямо сильно вредят float-у и помогают int-у тоже немного удивительно.
🤔2
Классная визуализация принятых на NeurIPS25 статей от небезызвестного Джея Аламмара.
При приближении крупные домены разбиваются на подобласти.
При приближении крупные домены разбиваются на подобласти.
🔥18
Походу MoonShot-AI использовали нашу кодобазу MoE-Quant для квантизации модельки.
- Конфиг Kimi-K2-Thinking
- Скрипт конвертации в compressed-tensors
Мелочь, а приятно)
- Конфиг Kimi-K2-Thinking
- Скрипт конвертации в compressed-tensors
Мелочь, а приятно)
🔥31
CAGE: CURVATURE-AWARE GRADIENT ESTIMATION FOR ACCURATE QUANTIZATION-AWARE TRAINING
[Статья][Код пока недоступен]
Введение
С ростом масштабов и, соответственно, стоимости обучений больших языковых моделей все острее стоит вопрос эффективного обучения. В ряде прошлых работ (QuEST, Quartet, FP4 All the way, Training LLM with MXFP4) было показано, что можно успешно обучать с весами и активациями в низкой точности, применив некоторые специальные техники.
И данная работа продолжает работу в данном направлении, модифицируя алгоритм оптимизатора.
[Статья][Код пока недоступен]
Введение
С ростом масштабов и, соответственно, стоимости обучений больших языковых моделей все острее стоит вопрос эффективного обучения. В ряде прошлых работ (QuEST, Quartet, FP4 All the way, Training LLM with MXFP4) было показано, что можно успешно обучать с весами и активациями в низкой точности, применив некоторые специальные техники.
И данная работа продолжает работу в данном направлении, модифицируя алгоритм оптимизатора.
🔥4❤1
🔬 Метод
В основе Quantization Aware Training (QAT) обыкновенно лежит STE (или его модификация), когда градиент просто пробрасывается через не дифференцируемую операцию квантизации. Трюк рабочий, но не имеет под собой теоретических гарантий.
Авторы предлагают рассматривать QAT как задачу оптимизации с ограничениями, и переходят к задаче безусловной оптимизации с множителем Лагранжа:
величина λ определяет баланс между лоссом задачи и ограничением. Такая добавка математически эквивалента добавлению error feedback. И рассматривают два варианта - coupled/decoupled - где добавка подается в градиент или момент, но в итоге выбирают decoupled, как более удобный.
В качестве базового алгоритма оптимизации берут AdamW и CAGE отличается от него только наличием error feedback.
Для лучшей сходимости метода константа регуляризации λ разогревается от 0 до максимального значения.
🧪Эксперименты
Метод валидируют, обучая семейство моделей Llama от 30 до 800 M параметров. CAGE стабильно дает некоторое улучшение по лоссу по сравнению с базовым алгоритмом QuEST для разных битностей.
Так называемая эффективная емкость (просадка по лоссу в scaling laws нормализованная на битность) примерно на 0.5 лучше по сравнению с QuEST.
CAGE успешно работает и с MXFP4.
На модельной квадратичной задаче SGD/Adam с STE не могут попасть в оптимум при 4-битной квантизации, а CAGE могет.
💡 Выводы
Метод выглядит вполне себе рабочим и интересным. Было бы интересно посмотреть его в действии на больших обучениях моделей на Blackwell чипах для MXFP4/NVFP4 форматов.
В основе Quantization Aware Training (QAT) обыкновенно лежит STE (или его модификация), когда градиент просто пробрасывается через не дифференцируемую операцию квантизации. Трюк рабочий, но не имеет под собой теоретических гарантий.
Авторы предлагают рассматривать QAT как задачу оптимизации с ограничениями, и переходят к задаче безусловной оптимизации с множителем Лагранжа:
min L(w) = min L_orig (w) + λ (Q(x) - x)величина λ определяет баланс между лоссом задачи и ограничением. Такая добавка математически эквивалента добавлению error feedback. И рассматривают два варианта - coupled/decoupled - где добавка подается в градиент или момент, но в итоге выбирают decoupled, как более удобный.
В качестве базового алгоритма оптимизации берут AdamW и CAGE отличается от него только наличием error feedback.
Для лучшей сходимости метода константа регуляризации λ разогревается от 0 до максимального значения.
🧪Эксперименты
Метод валидируют, обучая семейство моделей Llama от 30 до 800 M параметров. CAGE стабильно дает некоторое улучшение по лоссу по сравнению с базовым алгоритмом QuEST для разных битностей.
Так называемая эффективная емкость (просадка по лоссу в scaling laws нормализованная на битность) примерно на 0.5 лучше по сравнению с QuEST.
CAGE успешно работает и с MXFP4.
На модельной квадратичной задаче SGD/Adam с STE не могут попасть в оптимум при 4-битной квантизации, а CAGE могет.
💡 Выводы
Метод выглядит вполне себе рабочим и интересным. Было бы интересно посмотреть его в действии на больших обучениях моделей на Blackwell чипах для MXFP4/NVFP4 форматов.
🔥6❤1
На этой неделе ребята из команды YandexGPT совместно c ШАДом (Школа анализа данных) провели интенсив по работе с LLM 🤖, где были затронуты вопросы обучения, инференса и коммуникаций.
Материал довольно подробный и интересный, но требует определенной базы для вхождения.
В общем, рекомендую к просмотру всем интересующимся и желающим освежить знания.
Лекция 1: https://youtube.com/live/JMUWSdSD1Uk
Лекция 2: https://youtube.com/live/IAeAKcdMtsw
Лекция 3: https://youtube.com/live/BYiFv5PoMBw
Лекция 3.1: https://youtube.com/live/-52RgKQENl0
Лекция 4: https://youtube.com/live/VXI41kyQTPs
Лекция 5: https://youtube.com/live/AHMJICS2JQ0
Лекция 5.1: https://www.youtube.com/live/3v43mnx31OQ
Материал довольно подробный и интересный, но требует определенной базы для вхождения.
В общем, рекомендую к просмотру всем интересующимся и желающим освежить знания.
Лекция 1: https://youtube.com/live/JMUWSdSD1Uk
Лекция 2: https://youtube.com/live/IAeAKcdMtsw
Лекция 3: https://youtube.com/live/BYiFv5PoMBw
Лекция 3.1: https://youtube.com/live/-52RgKQENl0
Лекция 4: https://youtube.com/live/VXI41kyQTPs
Лекция 5: https://youtube.com/live/AHMJICS2JQ0
Лекция 5.1: https://www.youtube.com/live/3v43mnx31OQ
YouTube
LLM Scaling Week 2025 | Лекция 1. Арифметика глубокого обучения
Спикер: Михаил Хрущев, руководитель группы претрейна YandexGPT.
На лекции поговорим про эффективное обучение больших DL-моделей. Мы ответим на вопросы:
- Что мешает загрузить GPU в кластере на 100%?
- Как устроена логистика данных внутри GPU, хоста и кластера?…
На лекции поговорим про эффективное обучение больших DL-моделей. Мы ответим на вопросы:
- Что мешает загрузить GPU в кластере на 100%?
- Как устроена логистика данных внутри GPU, хоста и кластера?…
🔥24❤5👍4
Демка оценивающая оптимальный шаг обучения и размер батча для модели заданного размера, количества токенов на обучении и ширины эмбеда на основе формул из статьи про первый DeepSeek 🐋.
Оно еще предлагает конфигурации распараллеливания для разного количества нод.
Формула, правда, ломается для очень маленьких моделей.
Оно еще предлагает конфигурации распараллеливания для разного количества нод.
Формула, правда, ломается для очень маленьких моделей.
👍12👀5
SMOL_секреты_создания_LLM_мирового_класса_Перевод_t_me_aivkube.pdf
14.6 MB
Русскоязычный перевод The Smol Training Playbook от @sergeydolgov с качественной версткой.
Оригинальный материал представляет собой очень полезное пособие по обучению LLM, да и DL в целом.
Оригинальный материал представляет собой очень полезное пособие по обучению LLM, да и DL в целом.
👍20💩4🔥3❤2❤🔥1
BEYOND OUTLIERS: A STUDY OF OPTIMIZERS UNDER QUANTIZATION
[Статья] [Кода нет]
Введение
Существует целый зоопарк оптимизаторов, использующих тот или иной механизм предобусловливания. И некоторые из них, в частности Muon, уже вполне себе составляют конкуренцию Adam-у.
Кроме того для более эффективного инференса модели можно квантизовать.
И отсюда возникает вопрос - есть ли взаимосвязь между сложностью квантизации и оптимизатором на обучении? Может ли быть так, что некоторые алгоритмы производят модели более податливые к сжатию, а другие нет 🤔?
И в рассматриваемой работе изучили данный вопрос систематически.
[Статья] [Кода нет]
Введение
Существует целый зоопарк оптимизаторов, использующих тот или иной механизм предобусловливания. И некоторые из них, в частности Muon, уже вполне себе составляют конкуренцию Adam-у.
Кроме того для более эффективного инференса модели можно квантизовать.
И отсюда возникает вопрос - есть ли взаимосвязь между сложностью квантизации и оптимизатором на обучении? Может ли быть так, что некоторые алгоритмы производят модели более податливые к сжатию, а другие нет 🤔?
И в рассматриваемой работе изучили данный вопрос систематически.
🔥10👍4❤1
🔬 Метод
Берут 6 оптимизаторов:
📌 AdamW
📌 PSGD
📌 Shampoo
📌 Muon
📌 Scion
📌 SOAP
и обучают семейство OLMo2-like трансформеров от 50M до 1.5B параметров Шиншилла-оптимальное количество токенов. Learning rate подобран на меньшей модели, а затем масштабируется на большие как 1 / размер.
Обучают fp16 бейзлайн и 4-х битные модели с квантизацией весов и активаций. Рассматривают PTQ (квантизацию fp16 модели) и QAT (Quantization-Aware Training).
В прошлых статьях в качестве прокси на сложность квантизации смотрели на отношение максимума по модулю к медиане (MMR) и kurtosis (4-ый момент распределения). Первая метрика показывает насколько выбросы отличаются от среднего, а вторая - “тяжесть” хвостов квантизации.
Оказывается 😱, что эти метрики не слишком коррелированны с реальной просадкой качества. Шампунь имеет большой MMR и kurtosis, но при этом обученные им модели легче всего квантизуются.
Из интересного, замечают что MMR растет с повышением learning rate, что, в целом, ожидаемо, так как у весов/активаций больше возможностей убежать от среднего. При этом MMR наименьший у Muon.
Взамен предлагают свою метрику - относительную послойную ошибку (квадрат нормы разности неквантизованной активации и квантизованную деленный на квадрат нормы первой) и показывают, что она гораздо лучше связана с результатами на бенчах.
Берут 6 оптимизаторов:
📌 AdamW
📌 PSGD
📌 Shampoo
📌 Muon
📌 Scion
📌 SOAP
и обучают семейство OLMo2-like трансформеров от 50M до 1.5B параметров Шиншилла-оптимальное количество токенов. Learning rate подобран на меньшей модели, а затем масштабируется на большие как 1 / размер.
Обучают fp16 бейзлайн и 4-х битные модели с квантизацией весов и активаций. Рассматривают PTQ (квантизацию fp16 модели) и QAT (Quantization-Aware Training).
В прошлых статьях в качестве прокси на сложность квантизации смотрели на отношение максимума по модулю к медиане (MMR) и kurtosis (4-ый момент распределения). Первая метрика показывает насколько выбросы отличаются от среднего, а вторая - “тяжесть” хвостов квантизации.
Оказывается 😱, что эти метрики не слишком коррелированны с реальной просадкой качества. Шампунь имеет большой MMR и kurtosis, но при этом обученные им модели легче всего квантизуются.
Из интересного, замечают что MMR растет с повышением learning rate, что, в целом, ожидаемо, так как у весов/активаций больше возможностей убежать от среднего. При этом MMR наименьший у Muon.
Взамен предлагают свою метрику - относительную послойную ошибку (квадрат нормы разности неквантизованной активации и квантизованную деленный на квадрат нормы первой) и показывают, что она гораздо лучше связана с результатами на бенчах.
🔥5
🧪Эксперименты
Модели обучают на корпусе ClimbMix. Для замеров берут стандартные бенчи из lm-eval-harness.
Для QAT используется рецепт из QuEST (Адамаровы вращения + стохастическое округление).
Без квантизации лучшие результаты на меньших моделях выдает SOAP 🧼, а остальных - Muon. Для PTQ в большинстве случаев Shampoo выходит победителем. В QAT режиме нет однозначного победителя, но на больших моделях будто бы “средство для мытья головы” снова предпочтителен.
Для разных моделей фитируют коэффициент эффективного размера ρ в законе;
В соответствии с результатами выше, он наибольший у Shampoo и наименьший у Muon. Adam следующий по хорошести.
💡 Выводы
Довольно интересный и практически полезный результат учитывая растущие потребности в получении качественных низкобитных результат. Интересно, обобщаются ли полученные выводы на другие битности (более высокие или низкие), и соотношения размера обучающих данных к размеру модели (много Шиншилл). Станет ли это мотивацией для более пристального внимания к Shampoo или оверхед на внедрение и настройку перебьет потенциальные бенефиты 🤔?
Модели обучают на корпусе ClimbMix. Для замеров берут стандартные бенчи из lm-eval-harness.
Для QAT используется рецепт из QuEST (Адамаровы вращения + стохастическое округление).
Без квантизации лучшие результаты на меньших моделях выдает SOAP 🧼, а остальных - Muon. Для PTQ в большинстве случаев Shampoo выходит победителем. В QAT режиме нет однозначного победителя, но на больших моделях будто бы “средство для мытья головы” снова предпочтителен.
Для разных моделей фитируют коэффициент эффективного размера ρ в законе;
L = A / (N · ρ)^α + BВ соответствии с результатами выше, он наибольший у Shampoo и наименьший у Muon. Adam следующий по хорошести.
💡 Выводы
Довольно интересный и практически полезный результат учитывая растущие потребности в получении качественных низкобитных результат. Интересно, обобщаются ли полученные выводы на другие битности (более высокие или низкие), и соотношения размера обучающих данных к размеру модели (много Шиншилл). Станет ли это мотивацией для более пристального внимания к Shampoo или оверхед на внедрение и настройку перебьет потенциальные бенефиты 🤔?
🔥4