AlphaGo Moment for Model Architecture Discovery
[Статья] [Код] [Галерея моделей]
Хочется запилить очередного “убийцу 🔪 трансформеров”, линейный attention или SSM, но кончилась фантазия? Все низко висящие фрукты сорваны и осталось лишь выжженное 🔥 поле?
Теперь эту работу (как утверждается) можно доверить AI, и не просто AI, а ASI (Artificial Superintelligence), и оно само навайбкодит SOTA архитектуру при наличии достаточного количества времени.
[Статья] [Код] [Галерея моделей]
Хочется запилить очередного “убийцу 🔪 трансформеров”, линейный attention или SSM, но кончилась фантазия? Все низко висящие фрукты сорваны и осталось лишь выжженное 🔥 поле?
Теперь эту работу
😁7
Метод
В данной работе по факту занимаются подбором архитектуры субквадратичного attention, хотя сам предложенный фреймворк довольно общий.
Система состоит из 4️⃣-х модулей:
🧑🔬 Исследователь. Предлагает и реализует архитектур.
🛠 Инженер. Тестирует и оценивает (по новизне / сложности).
🅰️ Аналитик. Получает на вход результаты инженера и на основе текущих и прошлых исторических данных дает заключение.
📚 База данных. Подборка ключевых работ в области NAS (примерно 100 статей), на основе которой можно предлагать архитектуры, либо сравнивать и оценивать текущий результат.
Процедура оптимизации архитектуры основана на эволюционном поиске, для которого важно задать fitness функцию - оценивающую качество сэмпла. С одной стороны, хочется высокой точности, а с другой эффективности и удобства реализации.
Предложенная мера является средним от трех слагаемых:
1⃣️️ Сигмоидой от разницы лоссов (с бейзлайном)
2️⃣ Сигмоидой от разницы метрик (с бейзлайном)
3️⃣ LLM_judge 🤖 (LLM с неким промптом оценивает годность архитектуры)
База доступных модулей содержит всякие свертки, гейты, фильтры, блоки памяти и прочие структуры.
Проверяльщик сравнивает предложенную архитектуру (на основе эмбеддинга кода?) с 5-ую самыми похожими, оценивая разумность идеи. Кроме того, есть проверка на асимптотическую сложность, чтобы она не была O(n^2) по длине последовательности и больше. Если случилась бага в реализации, то трейс ошибки подается исследователю, чтобы он поправил.
Эксперименты
В качестве бейзлайна берут DeltaNet и Mamba2. При оценке архитектур смотрят только на то, что выдает лосс в пределах 10% от него. Типа если слишком идет хорошо по лоссу - че-т протекло. Порог будто взят от балды, не знаю как его характеризовать.
Процедура поиска состоит из холодного старта без обновления базы, поощряющей исследование новых вариантов, а потом происходит побатчовое обновление кандидатов - т.е переход к exploitation.
Дабы все можно было прогнать за разумное время, сначала гоняют кандидатов размера 20M на 1B токенах, и когда появляются более перспективные кандидаты, их масштабируют до 400M. А затем самых лучших обучают уже на 15B токенах.
На первой стадии обучают 1773 архитектур, на второй 400 лучших, и 5 самых удачных на третьей. На все про все уходит 20 000 GPU часов.
5 лучших архитектур - это нечто про gating, иерархическую агрерацию и какое-то хитрое смешивание признаков.
Лучшие кандидаты достигают лосса заметно меньше, чем бейзлайн и до 2-3% лушчего качества не бенчах. В качестве бенчей берут выборку простых задач из lm-eval-harness, где на рассматриваемых бюджетах все модели по факту чуть лучше рандома.
Из наиболее удачных паттернов авторы отмечают:
1️⃣ Свертки
2️⃣ Гейты
3️⃣ Некий механизм routing
Всякие вдохновленные физикой и биологией штукенции, напротив, работают не очень.
Анализируя природу успеха той или иной архитектуры, авторы приходят к выводу, что наибольший вес имеет cognition (учет существующего знания) и экспериментальная оценка, а оригинальность влияет в меньшей степени.
Вывод
Самая идея доверить поиск архитектуры AI выглядит довольно привлекательно, и сам по себе предложенный фрейворк интересен. Над сайтиком постарались на славу. Однако, на текущий момент, практическая польза не очевидна, ибо даже конечная валидация на масштабе далеком от тех, на чем обучают более менее современные LLM, и в реальном бою, как это обычно бывает, разница может размыться с увеличением модели и обучающей выборки. Кроме того, с практической точки зрения интересна еще и скорость инференса, и некоторые варианты могут быть не очень хороши с точки зрения реализации эффективных кернелов. Так что “AlphaGo момент” - скорее overclaim, но реакции на x.com / reddit не пахнут.
В данной работе по факту занимаются подбором архитектуры субквадратичного attention, хотя сам предложенный фреймворк довольно общий.
Система состоит из 4️⃣-х модулей:
🧑🔬 Исследователь. Предлагает и реализует архитектур.
🛠 Инженер. Тестирует и оценивает (по новизне / сложности).
🅰️ Аналитик. Получает на вход результаты инженера и на основе текущих и прошлых исторических данных дает заключение.
📚 База данных. Подборка ключевых работ в области NAS (примерно 100 статей), на основе которой можно предлагать архитектуры, либо сравнивать и оценивать текущий результат.
Процедура оптимизации архитектуры основана на эволюционном поиске, для которого важно задать fitness функцию - оценивающую качество сэмпла. С одной стороны, хочется высокой точности, а с другой эффективности и удобства реализации.
Предложенная мера является средним от трех слагаемых:
1⃣️️ Сигмоидой от разницы лоссов (с бейзлайном)
2️⃣ Сигмоидой от разницы метрик (с бейзлайном)
3️⃣ LLM_judge 🤖 (LLM с неким промптом оценивает годность архитектуры)
База доступных модулей содержит всякие свертки, гейты, фильтры, блоки памяти и прочие структуры.
Проверяльщик сравнивает предложенную архитектуру (на основе эмбеддинга кода?) с 5-ую самыми похожими, оценивая разумность идеи. Кроме того, есть проверка на асимптотическую сложность, чтобы она не была O(n^2) по длине последовательности и больше. Если случилась бага в реализации, то трейс ошибки подается исследователю, чтобы он поправил.
Эксперименты
В качестве бейзлайна берут DeltaNet и Mamba2. При оценке архитектур смотрят только на то, что выдает лосс в пределах 10% от него. Типа если слишком идет хорошо по лоссу - че-т протекло. Порог будто взят от балды, не знаю как его характеризовать.
Процедура поиска состоит из холодного старта без обновления базы, поощряющей исследование новых вариантов, а потом происходит побатчовое обновление кандидатов - т.е переход к exploitation.
Дабы все можно было прогнать за разумное время, сначала гоняют кандидатов размера 20M на 1B токенах, и когда появляются более перспективные кандидаты, их масштабируют до 400M. А затем самых лучших обучают уже на 15B токенах.
На первой стадии обучают 1773 архитектур, на второй 400 лучших, и 5 самых удачных на третьей. На все про все уходит 20 000 GPU часов.
5 лучших архитектур - это нечто про gating, иерархическую агрерацию и какое-то хитрое смешивание признаков.
Лучшие кандидаты достигают лосса заметно меньше, чем бейзлайн и до 2-3% лушчего качества не бенчах. В качестве бенчей берут выборку простых задач из lm-eval-harness, где на рассматриваемых бюджетах все модели по факту чуть лучше рандома.
Из наиболее удачных паттернов авторы отмечают:
1️⃣ Свертки
2️⃣ Гейты
3️⃣ Некий механизм routing
Всякие вдохновленные физикой и биологией штукенции, напротив, работают не очень.
Анализируя природу успеха той или иной архитектуры, авторы приходят к выводу, что наибольший вес имеет cognition (учет существующего знания) и экспериментальная оценка, а оригинальность влияет в меньшей степени.
Вывод
Самая идея доверить поиск архитектуры AI выглядит довольно привлекательно, и сам по себе предложенный фрейворк интересен. Над сайтиком постарались на славу. Однако, на текущий момент, практическая польза не очевидна, ибо даже конечная валидация на масштабе далеком от тех, на чем обучают более менее современные LLM, и в реальном бою, как это обычно бывает, разница может размыться с увеличением модели и обучающей выборки. Кроме того, с практической точки зрения интересна еще и скорость инференса, и некоторые варианты могут быть не очень хороши с точки зрения реализации эффективных кернелов. Так что “AlphaGo момент” - скорее overclaim, но реакции на x.com / reddit не пахнут.
👍7🔥2❤1
Судя по активности ребят из Alibaba Cloud, китайцы решили, что делать нейросети приятнее, чем человеков.
🤣13🔥8😁2
Прилетает, значится, письмецо на почту, что, мол, появился новый движок для инференса LLMов на яблочном силиконе, написанный на ржавчине (почему-то не назвали просто
В целом из README и документации не многое понятно. На Apple M2 для некоторых моделей (Qwen2.5-1.5B-Instruct, Gemma-3-1B-Instruct) tokens/s быстрее на 10% (непонятно с каким батчом, и на каких длинах последовательности). На квенах 3 ускорение якобы в 10 раз, но очень уж странный безлайн у llama.cpp (
И самое забавное из всего - ишшуя, в которой народ жалуется, что авторы соскрапили аккаунты с гитхаба (поставившими звездочку над llama.cpp и подобными проектами) и отравили всем письмецо.
Дерзкий и беспринципный заход на рыночек, ничего не скажешь) В будущем обещают добавить инференс на Андроидных устройствах, VLM, TTS. Правда, с такими фортелями скорее получат бан от модераторов гитхаба.
llama.rs
). Движок этот называется uzu (что по 🇯🇵-ски называется вихрь). С названием явно не оригинальничали и беспринципно слизали. В письмеце утверждается, что якобы движок на 30-40% процентов быстрее, чем знаменитая llama.cpp.В целом из README и документации не многое понятно. На Apple M2 для некоторых моделей (Qwen2.5-1.5B-Instruct, Gemma-3-1B-Instruct) tokens/s быстрее на 10% (непонятно с каким батчом, и на каких длинах последовательности). На квенах 3 ускорение якобы в 10 раз, но очень уж странный безлайн у llama.cpp (
Qwen3-0.6B
в 5 раз медленее Qwen2.5-1.5B-Instruct
). И самое забавное из всего - ишшуя, в которой народ жалуется, что авторы соскрапили аккаунты с гитхаба (поставившими звездочку над llama.cpp и подобными проектами) и отравили всем письмецо.
Дерзкий и беспринципный заход на рыночек, ничего не скажешь) В будущем обещают добавить инференс на Андроидных устройствах, VLM, TTS. Правда, с такими фортелями скорее получат бан от модераторов гитхаба.
😁15🤨2❤1👍1
Из "вероятной" утечки опенсорса от опен эй эген вырисовается пока следующее:
1️⃣ Одна модель - 120B MoE, другая - 20B dense.
2️⃣ Веса в FP4 с нативной поддержкой в Blackwell (MXFP4 или NVFP4).
3️⃣ SwiGLU clip (-7,7) - т.е активации режутся по абсолютной величине. Полагаю, было важно для 4-х битного обучения.
4️⃣ 4K нативного контекста с YaRN экстраполяцией до 128к (не жирно).
5️⃣ Скользящее окно аттеншена размера 128 + attention sinks (тоже для квантизации, наверное).
6️⃣ Llama/Mixtral архитектура.
Источник
1️⃣ Одна модель - 120B MoE, другая - 20B dense.
2️⃣ Веса в FP4 с нативной поддержкой в Blackwell (MXFP4 или NVFP4).
3️⃣ SwiGLU clip (-7,7) - т.е активации режутся по абсолютной величине. Полагаю, было важно для 4-х битного обучения.
4️⃣ 4K нативного контекста с YaRN экстраполяцией до 128к (не жирно).
5️⃣ Скользящее окно аттеншена размера 128 + attention sinks (тоже для квантизации, наверное).
6️⃣ Llama/Mixtral архитектура.
Источник
🤮7👍4❤2
Qwen-Image: Crafting with Native Text Rendering
[Техрепорт][Блогпост][Пост на эйай ньюз]
📘 Введение
Все хорошее когда-то кончается, но аттракцион неслыханной щедрости от команды Квена продолжается. Выпустив за последние дни целые ряд сильных языковых моделей, ребята из Китая выпустили крайне интересный опенсорс уже в области генерации и редактирования изображений.
Как заявляется, полученная моделька хорошо умеет просто в генережку картинок, рендеринг текста (в особенности китайского, если кому актуально) и в сложный эдитинг.
[Техрепорт][Блогпост][Пост на эйай ньюз]
📘 Введение
Все хорошее когда-то кончается, но аттракцион неслыханной щедрости от команды Квена продолжается. Выпустив за последние дни целые ряд сильных языковых моделей, ребята из Китая выпустили крайне интересный опенсорс уже в области генерации и редактирования изображений.
Как заявляется, полученная моделька хорошо умеет просто в генережку картинок, рендеринг текста (в особенности китайского, если кому актуально) и в сложный эдитинг.
🔥5❤2
🔬 Метод
🏢 Архитектура
С архитектурной точки зрения ничего фундаментально нового:
📌 Qwen-2.5VL (7B) в качестве энкодера. Данный выбор позволяет из коробки подавать одновременно текст и изображения, что необходимо для задач редактирования и персонализации. Энкодер заморожен.
📌 В качестве VAE за основу берут энкодер+декодер от коллег из Wan. Однако ее качество не полностью удовлетворяет авторов, поэтому они дообучают декодер при замороженном энкодере. Причем используют только взвешенную сумму MSE и perceptual loss. Адверсариальный лосс якобы скорее мешает. В данные для обучения заливают специально побольше текстов.
📌 Диффузионный трансформер - это просто MMDiT 🤖 а-ля SD3/FLUX.
Из примечательного - интересное решение по учету позиций картиночных и текстовых эмбедов под названием Multimodal Scalable RoPE (MSRoPE). В наивном подходе, каждому токену задавался бы просто позиционный индекс (сверху вниз, слева направо для патчей картинок и токену согласно позиции в тексте). Однако при таком подходе одинаковым образом бы кодировалась большая картинка, и меньшая картинка + текст. Ребята из Квена же предлагают все сэмплы выстраивать в диагональ. И текстовые токены это 1x1 элемент на диагонали.
📊 Данные
Отдельного внимания заслуживает процедура отбора данных. Она представляет собой многостадийных пайплайн, где сначала отфильтровывается совсем всякий шлак, голые тяночки и непотребства, а затем постепенно включаются постепенно все более строгие фильтры на качество и релевантность.
Следуя довольно стандартной практике, сначала обучают на низком разрешении (256px), а затем постепенно повышают до 640px-1328px.
Уже довольно на ранних стадиях отфильтровывают данные с чрезмерно низкой и высокой насыщенностью или контрастностью.
Для captioning используют Qwen-2.5VL (72B?), который выдает не только описание, но и другие метаданные - стиль, тип, водные знаки в виде некой json-ины.
Чтобы улучшить качество генерации текста в датасет заливают большое количество текстов 📝, в том числе и синтетически сгенерированных (некий шаблон вставляется на фон отпимальным образом, и если не шакален - принимается). Кроме того, на основе презентаций пробуют учить на разные сложные layout.
🧠 Процедура обучения
Диффузионный процесс - уже общепринятый flow-matching без танцев с бубнами.
Анализируя эффективность обучения, авторы заметили, что чекпоинтинг активаций сильно замедляет обучение, поэтому отключили его, и использовали только распределенные оптимизаторы. Вместо FSDP используют tensor-параллелизм поверх transformer engine.
Дабы улучшить общее качество и алайнмент, модельку прогоняют через DPO на ручной человеческой разметке и GRPO. Flow-matching ODE - детерминированный процесс, и дабы иметь разнообразие, на этапе GRPO используется стохастическое сэмплирование.
🏢 Архитектура
С архитектурной точки зрения ничего фундаментально нового:
📌 Qwen-2.5VL (7B) в качестве энкодера. Данный выбор позволяет из коробки подавать одновременно текст и изображения, что необходимо для задач редактирования и персонализации. Энкодер заморожен.
📌 В качестве VAE за основу берут энкодер+декодер от коллег из Wan. Однако ее качество не полностью удовлетворяет авторов, поэтому они дообучают декодер при замороженном энкодере. Причем используют только взвешенную сумму MSE и perceptual loss. Адверсариальный лосс якобы скорее мешает. В данные для обучения заливают специально побольше текстов.
📌 Диффузионный трансформер - это просто MMDiT 🤖 а-ля SD3/FLUX.
Из примечательного - интересное решение по учету позиций картиночных и текстовых эмбедов под названием Multimodal Scalable RoPE (MSRoPE). В наивном подходе, каждому токену задавался бы просто позиционный индекс (сверху вниз, слева направо для патчей картинок и токену согласно позиции в тексте). Однако при таком подходе одинаковым образом бы кодировалась большая картинка, и меньшая картинка + текст. Ребята из Квена же предлагают все сэмплы выстраивать в диагональ. И текстовые токены это 1x1 элемент на диагонали.
📊 Данные
Отдельного внимания заслуживает процедура отбора данных. Она представляет собой многостадийных пайплайн, где сначала отфильтровывается совсем всякий шлак, голые тяночки и непотребства, а затем постепенно включаются постепенно все более строгие фильтры на качество и релевантность.
Следуя довольно стандартной практике, сначала обучают на низком разрешении (256px), а затем постепенно повышают до 640px-1328px.
Уже довольно на ранних стадиях отфильтровывают данные с чрезмерно низкой и высокой насыщенностью или контрастностью.
Для captioning используют Qwen-2.5VL (72B?), который выдает не только описание, но и другие метаданные - стиль, тип, водные знаки в виде некой json-ины.
Чтобы улучшить качество генерации текста в датасет заливают большое количество текстов 📝, в том числе и синтетически сгенерированных (некий шаблон вставляется на фон отпимальным образом, и если не шакален - принимается). Кроме того, на основе презентаций пробуют учить на разные сложные layout.
🧠 Процедура обучения
Диффузионный процесс - уже общепринятый flow-matching без танцев с бубнами.
Анализируя эффективность обучения, авторы заметили, что чекпоинтинг активаций сильно замедляет обучение, поэтому отключили его, и использовали только распределенные оптимизаторы. Вместо FSDP используют tensor-параллелизм поверх transformer engine.
Дабы улучшить общее качество и алайнмент, модельку прогоняют через DPO на ручной человеческой разметке и GRPO. Flow-matching ODE - детерминированный процесс, и дабы иметь разнообразие, на этапе GRPO используется стохастическое сэмплирование.
🔥4❤2
🧪Эксперименты
Модельку валидируют на наборе text-2-image и editing бенчмарков. Qwen-Image выдает сильные результаты на GenEval, DPG, в целом опережая опенсорс и даже GPT-Image. На задачах рендеринга текста околосотовый результат на английском и разрывной на китайском (+100500 social credits).
На instruction датасетах вроде бы все тоже очень здорово. Везде не уступает (якобы) GPT-Image опять же с большим разрывом на китайском.
Дообученный VAE демонстрирует лучший PSNR/SSIM (чтобы это ни значило) по сравнению с конкурентными автокодировщиками. Причем разница особенно заметна на текстах.
Еще оно может в детекцию, novel view synthesis и прочие задачи.
💡 Выводы
Очередной качественный опенсорс от китайцев 🇨🇳 💪. Прямо чего-то фундаментального нового, прорывного нет, но видна кропотливая аккуратная работа с использованием всех лучших практик из научной литературы.
Модельку валидируют на наборе text-2-image и editing бенчмарков. Qwen-Image выдает сильные результаты на GenEval, DPG, в целом опережая опенсорс и даже GPT-Image. На задачах рендеринга текста околосотовый результат на английском и разрывной на китайском (+100500 social credits).
На instruction датасетах вроде бы все тоже очень здорово. Везде не уступает (якобы) GPT-Image опять же с большим разрывом на китайском.
Дообученный VAE демонстрирует лучший PSNR/SSIM (чтобы это ни значило) по сравнению с конкурентными автокодировщиками. Причем разница особенно заметна на текстах.
Еще оно может в детекцию, novel view synthesis и прочие задачи.
💡 Выводы
Очередной качественный опенсорс от китайцев 🇨🇳 💪. Прямо чего-то фундаментального нового, прорывного нет, но видна кропотливая аккуратная работа с использованием всех лучших практик из научной литературы.
🔥6👏2
[Релиз]
OpenSource LLMку от опенэйай добавили официально в релиз 4.55 трансформеров от 🤗.
Большинство догадок подтвердились:
📌 2️⃣ модели - большая (120B) и меньшая (20B). Однако обе из них MoE (а не меньшая dense).
📌 FP4 квантизация экспертов. Но, оказалось, что MXFP, а не NVFP.
На хабе где-то лежит оптимизированный кернел под attention_sinks, но ссылка битая.
UPD (веса появились)
- gpt-oss-120b
- gpt-oss-20b
OpenSource LLMку от опенэйай добавили официально в релиз 4.55 трансформеров от 🤗.
Большинство догадок подтвердились:
📌 2️⃣ модели - большая (120B) и меньшая (20B). Однако обе из них MoE (а не меньшая dense).
📌 FP4 квантизация экспертов. Но, оказалось, что MXFP, а не NVFP.
На хабе где-то лежит оптимизированный кернел под attention_sinks, но ссылка битая.
UPD (веса появились)
- gpt-oss-120b
- gpt-oss-20b
👍4🔥1🥱1
Your Efficient RL Framework Secretly Brings You Off-Policy RL Training
[Блогпост]
Для ускорения обучения RL-методов с роллаутами, некоторые фреймворки (VeRL) генерируют траектории с помощью оптимизированных движков инференса, например, vLLM.
Однако, расхождение между разными фреймворками инференса (transformers 🤗 / vLLM) может быть довольно значительным (из-за деталей реализации кернелов). Причем настолько, что при тех же самых весах модели, предсказания могут существенно разняться (другой выбор следующего токена).
Авторы блогпоста замечают, что данная проблема делает on-policy RL по сути off-policy, что негативно сказывается на сходимости.
В качестве решения проблемы предлагается делать своего рода importance sampling с отношением вероятностей модели в фреймворке обучения и инференса. И это хорошо помогает PPO, причем можно даже генерировать роллауты int8 квантизованной моделью без нарушения сходимости. DAPO поверх DeepSeek-R1-Distill-Qwen-1.5B, где отношение вероятностей невелико, работает хорошо и без importance sampling.
Выводы
Мораль басни такова, что численные неточности в DL не всегда совсем безобидны, и временами их стоит иметь в виду. На замерах бенчей результат тоже может существенно разниться между hf и vLLM.
[Блогпост]
Для ускорения обучения RL-методов с роллаутами, некоторые фреймворки (VeRL) генерируют траектории с помощью оптимизированных движков инференса, например, vLLM.
Однако, расхождение между разными фреймворками инференса (transformers 🤗 / vLLM) может быть довольно значительным (из-за деталей реализации кернелов). Причем настолько, что при тех же самых весах модели, предсказания могут существенно разняться (другой выбор следующего токена).
Авторы блогпоста замечают, что данная проблема делает on-policy RL по сути off-policy, что негативно сказывается на сходимости.
В качестве решения проблемы предлагается делать своего рода importance sampling с отношением вероятностей модели в фреймворке обучения и инференса. И это хорошо помогает PPO, причем можно даже генерировать роллауты int8 квантизованной моделью без нарушения сходимости. DAPO поверх DeepSeek-R1-Distill-Qwen-1.5B, где отношение вероятностей невелико, работает хорошо и без importance sampling.
Выводы
Мораль басни такова, что численные неточности в DL не всегда совсем безобидны, и временами их стоит иметь в виду. На замерах бенчей результат тоже может существенно разниться между hf и vLLM.
fengyao on Notion
Your Efficient RL Framework Secretly Brings You Off-Policy RL Training | Notion
Feng Yao* Liyuan Liu* Dinghuai Zhang Chengyu Dong Jingbo Shang Jianfeng Gao
👍13
Для интереса попробовал в Gemini через Deep Research собрать инфу про NVFP формат, и выдало оно довольно неплохую методичку со всеми нужными вводными и обзором актуальной литературы.
Не безупречно, но, на мой скромный взгляд, не хуже многих обзоров, выходящих на архиве. Полагаю, что автоматизированные survey будут все более и более актуальны в дальнейшем. В то же время, креативные аналитические статьи и разборы, с изюминкой автора, все еще останутся востребованными.
[Ссылка на Google Docs]
Не безупречно, но, на мой скромный взгляд, не хуже многих обзоров, выходящих на архиве. Полагаю, что автоматизированные survey будут все более и более актуальны в дальнейшем. В то же время, креативные аналитические статьи и разборы, с изюминкой автора, все еще останутся востребованными.
[Ссылка на Google Docs]
🔥10👍3😢2
Минутка удивительных 🤩 (или не очень) фактов.
Интуитивно кажется, что fp16/bf16 должны быть если не строго математически, то практически близки к некоему непрерывному описанию множества действительных чисел. Во всяком случае, в окрестности нуля. Поэтому вероятность принять конкретное значение должна быть малой. Что-то порядка 1 / мощность множества.
Однако, если сгенерировать x ~N(0, 1) оказывается, что для bfloat16 вероятность, что число окажется в точности нулем не так уж мала - примерно 0.6%. Для float16 и float32, к сравнению, она 0.07%.
И какова мораль 🤔, спрашивается?
Если в коде с bfloat16 (не говоря уже о типах более низкой точности), есть деление на нечто случайное, или граничный случай, стоит внимательнее обрабатывать их. Ибо они не такая уж редкость.
[Ноутбук на колабе]
Интуитивно кажется, что fp16/bf16 должны быть если не строго математически, то практически близки к некоему непрерывному описанию множества действительных чисел. Во всяком случае, в окрестности нуля. Поэтому вероятность принять конкретное значение должна быть малой. Что-то порядка 1 / мощность множества.
Однако, если сгенерировать x ~N(0, 1) оказывается, что для bfloat16 вероятность, что число окажется в точности нулем не так уж мала - примерно 0.6%. Для float16 и float32, к сравнению, она 0.07%.
И какова мораль 🤔, спрашивается?
Если в коде с bfloat16 (не говоря уже о типах более низкой точности), есть деление на нечто случайное, или граничный случай, стоит внимательнее обрабатывать их. Ибо они не такая уж редкость.
[Ноутбук на колабе]
❤19🤔15👍5😁1🤯1
FP4 All the Way: Fully Quantized Training of LLMs
[Статья][Анонимный не анонимный репозитрий]
📘 Введение
Висело оно у меня давно в бэклоге, но в кулуарах напомнили.
С увеличением затрат на обучение больших языковых моделей, когда оно стало переваливать за миллионы GPU часов, все более остро стоит вопрос о том как это делать эффективно.
Как известно, для параметров и активаций моделей не требуется представление вещественных чисел высокой точности, чтобы работать приемлемо. Обучение в половинной точности уже давно стало стандартом, да и в FP8 народ вполне себе успешно обучает. Следующая очевидная цель - обучение в FP4, тем более, что последнее поколение от “зеленых” c блмным названием (Blackwell) имеет его поддержку на уровне архитектуры.
И в ряде работ, вышедших в этом году (Training LLMs with MXFP4, Quartet), включая разбираемую, были предложены техники по стабилизации обучения в FP4.
[Статья][Анонимный не анонимный репозитрий]
📘 Введение
Висело оно у меня давно в бэклоге, но в кулуарах напомнили.
С увеличением затрат на обучение больших языковых моделей, когда оно стало переваливать за миллионы GPU часов, все более остро стоит вопрос о том как это делать эффективно.
Как известно, для параметров и активаций моделей не требуется представление вещественных чисел высокой точности, чтобы работать приемлемо. Обучение в половинной точности уже давно стало стандартом, да и в FP8 народ вполне себе успешно обучает. Следующая очевидная цель - обучение в FP4, тем более, что последнее поколение от “зеленых” c блмным названием (Blackwell) имеет его поддержку на уровне архитектуры.
И в ряде работ, вышедших в этом году (Training LLMs with MXFP4, Quartet), включая разбираемую, были предложены техники по стабилизации обучения в FP4.
🔬 Метод
Форматы FP4
Первым делом исследуют конфигурации форматов FP4. Напомню, что MXFP4 квантизует веса группами по 32 и квантизует скейлы в E8M0, а NVFP4 группами по 16 и скейлы в E4M3. Авторы фиксируют размер группы 16 и перебирают варианты квантизации скейлов от E1M6 до E8M0. Обучают Llama-like LLM на 350M параметров и замечают, что при E4M3/E3M4 скейлах достигается минимальный лосс (при фиксированном числе итераций). Из всех конфигураций расходится только E1M6 (c cамым узким диапазоном). В дальнейшем везде используют E4M3. Блоки размера 16 выбирают так как при больших лосс сходится хуже, а меньшие уже не дают профита.
Стохастическая квантизация
Квантизовать можно к ближайшему значению, а можно стохастически - вверх или вниз, с вероятностью, зависящей от расстояния до соседа.
Ребята из интела перебирают разные варианты детерминистического и стохастического квантования для весов/градиентов и активаций и получают, что лучше всего сходится вариант с детерминированной квантизацией весов и активаций на прямом проходе, и стохастической для градиентов и активаций на обратном проходе, Роль стохастики в квантизации - уменьшить bias, возникающий из-за округления тензоров.
В ходе оптимизации сигнал от градиента постепенно убывает и с какого-то момента перекрывается шумом оптимизации. Не мудрствуя лукаво, авторы предлагают обучать небольшое время с градиентами в более высокой (bf16) точности (на прямом проходе все еще FP4). И это позволяет сойтись до уровня half-precision обучения за то же суммарное число итераций.
🧪Эксперименты
Обучают семейство моделей архитектуры Llama-2 на датасете Красная Пижама. В главном эксперименте учат модель размера 7B на 1Т токенах причем не абы на чем, а на ускорителях Intel Gaudi2 (сыр 🧀 тут ни при чем, это в честь архитектора)
Обучение идет без спайков, лосс отстает несколько от bf16 бейзлайна, но нагоняет после короткой фазы с более точными градиентами (QAF).
0-шоты без QAF чуть хуже безйлайна, с QAF - такие же примерно. Впрочем, все равно оно лишь чуть лучше рандома)
💡 Выводы
Выглядит как очередной аргумент перейти на обучение LLM в FP4. Сам по себе метод выглядит не шибко изощренно, хотя необходимость QAF для лучших результатов несколько противоречит названию статьи (надо было назвать FP4 Most the way). Quartet в этом отношении по изящнее. Интересно, кто из крупных игроков выложит первый техрепорт про полное обучение серьезной модели в FP4? Ставлю либо на Нвидию, либо на Moonshot.
Форматы FP4
Первым делом исследуют конфигурации форматов FP4. Напомню, что MXFP4 квантизует веса группами по 32 и квантизует скейлы в E8M0, а NVFP4 группами по 16 и скейлы в E4M3. Авторы фиксируют размер группы 16 и перебирают варианты квантизации скейлов от E1M6 до E8M0. Обучают Llama-like LLM на 350M параметров и замечают, что при E4M3/E3M4 скейлах достигается минимальный лосс (при фиксированном числе итераций). Из всех конфигураций расходится только E1M6 (c cамым узким диапазоном). В дальнейшем везде используют E4M3. Блоки размера 16 выбирают так как при больших лосс сходится хуже, а меньшие уже не дают профита.
Стохастическая квантизация
Квантизовать можно к ближайшему значению, а можно стохастически - вверх или вниз, с вероятностью, зависящей от расстояния до соседа.
Ребята из интела перебирают разные варианты детерминистического и стохастического квантования для весов/градиентов и активаций и получают, что лучше всего сходится вариант с детерминированной квантизацией весов и активаций на прямом проходе, и стохастической для градиентов и активаций на обратном проходе, Роль стохастики в квантизации - уменьшить bias, возникающий из-за округления тензоров.
В ходе оптимизации сигнал от градиента постепенно убывает и с какого-то момента перекрывается шумом оптимизации. Не мудрствуя лукаво, авторы предлагают обучать небольшое время с градиентами в более высокой (bf16) точности (на прямом проходе все еще FP4). И это позволяет сойтись до уровня half-precision обучения за то же суммарное число итераций.
🧪Эксперименты
Обучают семейство моделей архитектуры Llama-2 на датасете Красная Пижама. В главном эксперименте учат модель размера 7B на 1Т токенах причем не абы на чем, а на ускорителях Intel Gaudi2 (сыр 🧀 тут ни при чем, это в честь архитектора)
Обучение идет без спайков, лосс отстает несколько от bf16 бейзлайна, но нагоняет после короткой фазы с более точными градиентами (QAF).
0-шоты без QAF чуть хуже безйлайна, с QAF - такие же примерно. Впрочем, все равно оно лишь чуть лучше рандома)
💡 Выводы
Выглядит как очередной аргумент перейти на обучение LLM в FP4. Сам по себе метод выглядит не шибко изощренно, хотя необходимость QAF для лучших результатов несколько противоречит названию статьи (надо было назвать FP4 Most the way). Quartet в этом отношении по изящнее. Интересно, кто из крупных игроков выложит первый техрепорт про полное обучение серьезной модели в FP4? Ставлю либо на Нвидию, либо на Moonshot.
❤4🔥1
А еще двое дорогих коллег (один из которых небезызвестный черный саморез) пару часов назад выступили на GPU MODE с рассказом про Квартет.
https://www.youtube.com/watch?v=Uj-QRMDNHC4
https://www.youtube.com/watch?v=Uj-QRMDNHC4
YouTube
Live Quartet 4 bit training
Speakers: Roberto Castro and Andrei Panferov
🔥10