11 декабря в Москве пройдет встреча ML Global Recap'25, посвященная основным международным AI конференциям и главным трендам
в рекомендательных технологиях, компьютерном зрении, технологиях распознавания речи и NLP.
Список выступающих и доклады:
🔸 Алексей Гусаков, CTO Поисковых сервисов и ИИ. Откроет ивент кратким обзором NeurlPS
🔸 Борис Шелудько, руководитель команды качества звука. Расскажет про последние тренды по звуку и рассмотрит статьи с Interspeech
🔸 Николай Савушкин, руководитель команды рекомендательных технологий. Выступит с докладом про CIKM и RecSys и тренды в рекомендательных решениях
🔸 Роман Исаченко, руководитель команды анализа и изображений. Расскажет про тренды в компьютерном зрении и детально рассмотрит ICLR
🔸 Александр Юшкевич, руководитель команды развития моделей базового качества. Расскажет про тренды в NLP и поделится новостями с ICLR и ACL
📅 Когда: 11 декабря в 18:00
🏙️ Где: в Москве и онлайн
Приглашаются все желающие.
в рекомендательных технологиях, компьютерном зрении, технологиях распознавания речи и NLP.
Список выступающих и доклады:
🔸 Алексей Гусаков, CTO Поисковых сервисов и ИИ. Откроет ивент кратким обзором NeurlPS
🔸 Борис Шелудько, руководитель команды качества звука. Расскажет про последние тренды по звуку и рассмотрит статьи с Interspeech
🔸 Николай Савушкин, руководитель команды рекомендательных технологий. Выступит с докладом про CIKM и RecSys и тренды в рекомендательных решениях
🔸 Роман Исаченко, руководитель команды анализа и изображений. Расскажет про тренды в компьютерном зрении и детально рассмотрит ICLR
🔸 Александр Юшкевич, руководитель команды развития моделей базового качества. Расскажет про тренды в NLP и поделится новостями с ICLR и ACL
📅 Когда: 11 декабря в 18:00
🏙️ Где: в Москве и онлайн
Приглашаются все желающие.
❤4
Back to Basics: Let Denoising Generative Models Denoise
[Статья][Код]
Введение
На данный момент в области генерации изображений и видео доминирует латетная диффузия, использующая вспомогательную сеть - автоэнкодер - для отображения в пространство с меньшей пространственно-временной размерностью. В таком пространстве и диффузионный процесс дешевле и качество хорошее.
Но что если очень хочется 🤔гонять диффузию в пиксельном пространстве, на больших пиксельных патчах?
И авторы сегодняшней статьи (один из них не абы кто, а создатель Резнета 👑) предлагают рабочий рецепт пиксельной диффузии в сравнительно большой размерности.
[Статья][Код]
Введение
На данный момент в области генерации изображений и видео доминирует латетная диффузия, использующая вспомогательную сеть - автоэнкодер - для отображения в пространство с меньшей пространственно-временной размерностью. В таком пространстве и диффузионный процесс дешевле и качество хорошее.
Но что если очень хочется 🤔гонять диффузию в пиксельном пространстве, на больших пиксельных патчах?
И авторы сегодняшней статьи (один из них не абы кто, а создатель Резнета 👑) предлагают рабочий рецепт пиксельной диффузии в сравнительно большой размерности.
🔥8
🔬🧪 Метод и эксперименты
Известно, что естественные изображения заметают не все возможные комбинации пикселей, а лежат на некотором подпространстве.
При обучении диффузионных моделей используются обыкновенно 3 типа предсказания:
📌Предсказание расшумленного сэмпла - x0
📌Предсказание шума epsilon
📌Предсказание скорости - v (взвешенная комбинация x0 и eps)
Математически вроде бы все формулировки эквивалентны (с точностью до изменения коэффициентов перед лоссом). Однако на подпространстве лежит лишь x0, в то время как шум и, соответственно, скорость заметают все пространство.
Отсюда авторы делают предположение, что учиться на x0 должно быть проще, чем на \epsilon или скорости.
Для валидации гипотезы сэмплируют данные в виде 2-мерной спирали, вложенной в пространство большой размерности. И оказывается, что начиная с какого-то момента v-prediction и eps-prediction работает плохо, а x0 - хорошо.
Затем гипотезу проверяют уже на большем масштабе. Берут Vision Transformer, который называют просто Just Image Transformer (JiT, не путать с JiT-компиляцией), нарезают картинку на большие патчи (16x16, 32x32), и гоняют в таком пространстве диффузию на ImageNet-256/512.
Все варианты, кроме x0-prediction работают из ряда вон плохо, и тюнинг уровня шума не помогает. x0-prediction же работает сносно. Оказывается, что добавление дополнительного боттлнека после патчевалки даже немного улучшает качество.
Далее в модель накидывают ряд архитектурных модификаций, отходя от классического DiT - SwiGLU, RMSNorm-ы, RoPE и 32 in-context класс токена, что немного улучшает метрики.
Итоговый результат не SOTA 🏆, но вполне пристойный.
💡 Выводы
Интерпретация через manifold learning выглядит интересно. Однако вход в модель-то все равно (зашумленный сэмпл) остается чем-то лежащим в пространстве высокой размерности. Интересно, перенесутся ли полученные результаты на class-conditional случай.
Известно, что естественные изображения заметают не все возможные комбинации пикселей, а лежат на некотором подпространстве.
При обучении диффузионных моделей используются обыкновенно 3 типа предсказания:
📌Предсказание расшумленного сэмпла - x0
📌Предсказание шума epsilon
📌Предсказание скорости - v (взвешенная комбинация x0 и eps)
Математически вроде бы все формулировки эквивалентны (с точностью до изменения коэффициентов перед лоссом). Однако на подпространстве лежит лишь x0, в то время как шум и, соответственно, скорость заметают все пространство.
Отсюда авторы делают предположение, что учиться на x0 должно быть проще, чем на \epsilon или скорости.
Для валидации гипотезы сэмплируют данные в виде 2-мерной спирали, вложенной в пространство большой размерности. И оказывается, что начиная с какого-то момента v-prediction и eps-prediction работает плохо, а x0 - хорошо.
Затем гипотезу проверяют уже на большем масштабе. Берут Vision Transformer, который называют просто Just Image Transformer (JiT, не путать с JiT-компиляцией), нарезают картинку на большие патчи (16x16, 32x32), и гоняют в таком пространстве диффузию на ImageNet-256/512.
Все варианты, кроме x0-prediction работают из ряда вон плохо, и тюнинг уровня шума не помогает. x0-prediction же работает сносно. Оказывается, что добавление дополнительного боттлнека после патчевалки даже немного улучшает качество.
Далее в модель накидывают ряд архитектурных модификаций, отходя от классического DiT - SwiGLU, RMSNorm-ы, RoPE и 32 in-context класс токена, что немного улучшает метрики.
Итоговый результат не SOTA 🏆, но вполне пристойный.
💡 Выводы
Интерпретация через manifold learning выглядит интересно. Однако вход в модель-то все равно (зашумленный сэмпл) остается чем-то лежащим в пространстве высокой размерности. Интересно, перенесутся ли полученные результаты на class-conditional случай.
❤5👏5👍2
Маленький коммит для человека, огромный скачок для человечества.
Можно теперь в резюме на LinkedIn хвастаться.
Можно теперь в резюме на LinkedIn хвастаться.
🤪27🔥5🤡3❤1
THE UNSEEN FRONTIER: PUSHING THE LIMITS OF LLM SPARSITY WITH SURROGATE-FREE ADMM
[Статья][Нет кода]
Введение
В отличие от квантизации методы прунинга для LLM не получили такого широкого распространения, с одной стороны, из-за аппаратной поддержки, а с другой, из-за больших просадок качества даже при сравнительно слабом прореживании - 50-60%.
В рассматриваемой работе авторы. вероятно, похожие на группу BTS, вместо с Дэном Алистаром предложили метод, основанный на ADMM, позволяющий доходить до высоких степеней прореживания (до 90%), сохраняя при этом когерентную генерацию.
[Статья][Нет кода]
Введение
В отличие от квантизации методы прунинга для LLM не получили такого широкого распространения, с одной стороны, из-за аппаратной поддержки, а с другой, из-за больших просадок качества даже при сравнительно слабом прореживании - 50-60%.
В рассматриваемой работе авторы. вероятно, похожие на группу BTS, вместо с Дэном Алистаром предложили метод, основанный на ADMM, позволяющий доходить до высоких степеней прореживания (до 90%), сохраняя при этом когерентную генерацию.
⚡5👍1
🔬 Метод
Задача нахождения оптимальной прореженной сети суть задача оптимизации с ограничениями. Как известно, задачу с условиями можно перевести в безусловную, введя множители Лагранжа. И итерационный процесс, задаваемый ADMM, позволяет ее эффективно решать.
Но как определить задачу? MSE между весами сжатой и не сжатой модели - не лучший критерий из-за разной чувствительности модели к изменению разных весов. И в качестве метрики предлагают матрицу Гессе (вторых производных функции потерь). Но так как ее точно посчитать нереалистично на практике, ее просто заменяют диагональным Фишером - квадратом градиентов.
Для больших моделей градиенты можно квантизовать в более низкую битность (как в Adam-8bit).
🧪 Эксперименты
Метод валидируют на моделях из разных эпох. От допотопного OPT до не таких старых Llama-3.2 и Gemma 3.
При высоких уровнях прореживания (70%-90%) ELSA выдает 2-значную перплексию, в то время как остальные методы (SparseGPT, Wanda, L-ADMM) улетают в космос 🚀.
При умеренном прореживании ELSA не всегда лучшая (ALPS и SAFE выглядят несколько получше), но, в целом, вполне себе рабочая 🛠.
ELSA лучше скейлится по данным по сравнению с L-ADMM (где минимизируется ошибка на выходе слоя, вместо Фишеровской метрики)
💡 Выводы
Любопытно, что довольно грубое Фишероское диагональное приближение в связке с ADMM выстрелило так неплохо для высокой sparsity. С точки зрения практиков просадки все равно слишком серьезные, чтобы разреженность конкурировала с квантизацией или вариантом взять модель поменьше, тем не менее, это все же серьезный прогресс.
Задача нахождения оптимальной прореженной сети суть задача оптимизации с ограничениями. Как известно, задачу с условиями можно перевести в безусловную, введя множители Лагранжа. И итерационный процесс, задаваемый ADMM, позволяет ее эффективно решать.
Но как определить задачу? MSE между весами сжатой и не сжатой модели - не лучший критерий из-за разной чувствительности модели к изменению разных весов. И в качестве метрики предлагают матрицу Гессе (вторых производных функции потерь). Но так как ее точно посчитать нереалистично на практике, ее просто заменяют диагональным Фишером - квадратом градиентов.
Для больших моделей градиенты можно квантизовать в более низкую битность (как в Adam-8bit).
🧪 Эксперименты
Метод валидируют на моделях из разных эпох. От допотопного OPT до не таких старых Llama-3.2 и Gemma 3.
При высоких уровнях прореживания (70%-90%) ELSA выдает 2-значную перплексию, в то время как остальные методы (SparseGPT, Wanda, L-ADMM) улетают в космос 🚀.
При умеренном прореживании ELSA не всегда лучшая (ALPS и SAFE выглядят несколько получше), но, в целом, вполне себе рабочая 🛠.
ELSA лучше скейлится по данным по сравнению с L-ADMM (где минимизируется ошибка на выходе слоя, вместо Фишеровской метрики)
💡 Выводы
Любопытно, что довольно грубое Фишероское диагональное приближение в связке с ADMM выстрелило так неплохо для высокой sparsity. С точки зрения практиков просадки все равно слишком серьезные, чтобы разреженность конкурировала с квантизацией или вариантом взять модель поменьше, тем не менее, это все же серьезный прогресс.
🔥6❤1
PixelDiT: Pixel Diffusion Transformers for Image Generation
[Статья] [Кода нет]
Введение
В последнее время в диффузионных моделях пошла мода на отказ от латентной диффузии с использованием VAE, переход к генерации напрямую в пиксельном пространстве.
И в разбираемой статье коллектив авторов предложил решение, якобы выдающее лучшее качество в сравнении с прошлыми подходами и могущее в криспи 🍒 генерации.
[Статья] [Кода нет]
Введение
В последнее время в диффузионных моделях пошла мода на отказ от латентной диффузии с использованием VAE, переход к генерации напрямую в пиксельном пространстве.
И в разбираемой статье коллектив авторов предложил решение, якобы выдающее лучшее качество в сравнении с прошлыми подходами и могущее в криспи 🍒 генерации.
❤3
🔬 Метод
Чтобы моделировать на уровне пикселей, предлагают двухуровневый каскад из patch-level сети, обрабатывающей патчи, и pixel-level сети, работающей на пикселях.
Patch-level сеть - это просто трансформер обрабатывающие патчи (в основном 16x16), как токены. Она принимает на вход либо метку класса, либо текст.
Более примечательна pixel-level сеть. Она использует pixel-level модуляцию (домножение на скаляр и сдвиг) на основе выхода patch-level сети. Чтобы параметры модуляции были специфичны для каждого пикселя через линейный слой карту признаков патчей разворачивают в p x p (p - размер патча).
Полный аттеншен между всеми пикселями будет слишком дорогим, поэтому перед вниманием токены группируются снова в патчи (p x p), и затем снова разворачиваются в исходную последовательность.
Обычно берут pixel-level сетку неглубокой и неширокой (2-4 слоя) со скрытой размерностью 16, поэтому гонять ее даже на высокоразмерных изображениях недорого.
🧪 Эксперименты
Обучают как class-condition, так и text-2-image модель. Чтобы улучшить метрики и сходимость используют REPA с признаками DINOv2.
Модель выбивает неплохие FID-ы, опережая все прошлые подходы на пиксельной диффузии, но недотягивая несколько до SOTA FID-арасов.
В ablation показывают, что просто учить DiT на патчах плохо, аттеншен без сжатия токенов ООМается, пиксельная модуляция помогает.
Уменьшение патчей не сильно улучшает качество, особенно для больших моделей, при этом кратно делая процедуру дороже, поэтому патчи 16x16 выбирают как более-менее оптимальные.
Затем обучают T2I MMDiT-модель с Gemma-2 энкодером размером 1.3B параметров и она выдает довольно неплохие метрики. Обучают на 26М пар, не очень долго, поэтому ожидать SOTA не приходится, но для таких ресурсов вполне достойное качество.
💡 Выводы
В целом выглядит неплохо, но кажется, что хорошие VAE - FLUX, Wan, Qwen-Image обладают очень хорошим качеством реконструкции и так. Возможно, разница будет бросаться только на крошечных деталях или на мелком шрифте.
Чтобы моделировать на уровне пикселей, предлагают двухуровневый каскад из patch-level сети, обрабатывающей патчи, и pixel-level сети, работающей на пикселях.
Patch-level сеть - это просто трансформер обрабатывающие патчи (в основном 16x16), как токены. Она принимает на вход либо метку класса, либо текст.
Более примечательна pixel-level сеть. Она использует pixel-level модуляцию (домножение на скаляр и сдвиг) на основе выхода patch-level сети. Чтобы параметры модуляции были специфичны для каждого пикселя через линейный слой карту признаков патчей разворачивают в p x p (p - размер патча).
Полный аттеншен между всеми пикселями будет слишком дорогим, поэтому перед вниманием токены группируются снова в патчи (p x p), и затем снова разворачиваются в исходную последовательность.
Обычно берут pixel-level сетку неглубокой и неширокой (2-4 слоя) со скрытой размерностью 16, поэтому гонять ее даже на высокоразмерных изображениях недорого.
🧪 Эксперименты
Обучают как class-condition, так и text-2-image модель. Чтобы улучшить метрики и сходимость используют REPA с признаками DINOv2.
Модель выбивает неплохие FID-ы, опережая все прошлые подходы на пиксельной диффузии, но недотягивая несколько до SOTA FID-арасов.
В ablation показывают, что просто учить DiT на патчах плохо, аттеншен без сжатия токенов ООМается, пиксельная модуляция помогает.
Уменьшение патчей не сильно улучшает качество, особенно для больших моделей, при этом кратно делая процедуру дороже, поэтому патчи 16x16 выбирают как более-менее оптимальные.
Затем обучают T2I MMDiT-модель с Gemma-2 энкодером размером 1.3B параметров и она выдает довольно неплохие метрики. Обучают на 26М пар, не очень долго, поэтому ожидать SOTA не приходится, но для таких ресурсов вполне достойное качество.
💡 Выводы
В целом выглядит неплохо, но кажется, что хорошие VAE - FLUX, Wan, Qwen-Image обладают очень хорошим качеством реконструкции и так. Возможно, разница будет бросаться только на крошечных деталях или на мелком шрифте.
👍4
WUSH: Near-Optimal Adaptive Transforms for LLM Quantization
[Статья] [Кода нет]
Вращения, в частности, пресловутые Адамаровы, активно используются для “размазывания” распределений и упрощения задачи квантизации. Адамаровы и прочие фиксированные вращения (дискретное синусное/косинусное преобразования) неплохи, но можно ли найти на основе данных более оптимальное преобразование?
И авторы рассматриваемой статьи нашли некую форму, которая оказывается стабильно лучше Адамаровых матриц, в особенности, для miscroscaling форматов.
[Статья] [Кода нет]
Вращения, в частности, пресловутые Адамаровы, активно используются для “размазывания” распределений и упрощения задачи квантизации. Адамаровы и прочие фиксированные вращения (дискретное синусное/косинусное преобразования) неплохи, но можно ли найти на основе данных более оптимальное преобразование?
И авторы рассматриваемой статьи нашли некую форму, которая оказывается стабильно лучше Адамаровых матриц, в особенности, для miscroscaling форматов.
🔬 Метод
Предложенное преобразование строится следующим образом:
📌 Первой идет Адамарова матрица
📌 Затем диагональная S^{-½} и ортогональная U матрицы из SVD разложения
📌 И затем сам Холески фактор W’^T.
Полученная конструкция выглядит следующим образом:
Или WUSH, если прочитать наоборот.
Здесь важно заметить, что преобразование на самом деле имеет блочно-диагональную форму, т.е на выходе имеем d_in / g матриц размера gxg (g - размер группы квантизации).
Далее в статье приводятся теоретические аргументы в пользу оптимальности такого вращения для INT и FP форматов в предположении об использовании round-to-nearest квантизации.
🧪 Эксперименты
Метод валидируют на квантизации Llama-3 и Qwen-3 семейств моделей. Рассматриваются на бенчи из OpenLLM Leaderboard v1, так и Platinum Bench из почищенных задач из разных бенчмарков.
WUSH накидывает 1-3% в сравнении с identity и Адамаровыми вращениями. Разница для MXFP чуть больше.
💡 Выводы
Выглядит как интересная альтернатива приевшимся Адамаровым матрицам. Важный нюанс, правда, в том, что оверхед от таких преобразований неизбежно больше, чем у фиксированных вращений, ибо блочно-диагональная матрица целиком не влезет в кэши и иную эффективную память у GPU.
Предложенное преобразование строится следующим образом:
📌 Первой идет Адамарова матрица
📌 Затем диагональная S^{-½} и ортогональная U матрицы из SVD разложения
W’ X = U S V^T (W’ - из разложения Холески W’ W’^T = W W^T).📌 И затем сам Холески фактор W’^T.
Полученная конструкция выглядит следующим образом:
T = H S^{-½} U^T W’^T Или WUSH, если прочитать наоборот.
Здесь важно заметить, что преобразование на самом деле имеет блочно-диагональную форму, т.е на выходе имеем d_in / g матриц размера gxg (g - размер группы квантизации).
Далее в статье приводятся теоретические аргументы в пользу оптимальности такого вращения для INT и FP форматов в предположении об использовании round-to-nearest квантизации.
🧪 Эксперименты
Метод валидируют на квантизации Llama-3 и Qwen-3 семейств моделей. Рассматриваются на бенчи из OpenLLM Leaderboard v1, так и Platinum Bench из почищенных задач из разных бенчмарков.
WUSH накидывает 1-3% в сравнении с identity и Адамаровыми вращениями. Разница для MXFP чуть больше.
💡 Выводы
Выглядит как интересная альтернатива приевшимся Адамаровым матрицам. Важный нюанс, правда, в том, что оверхед от таких преобразований неизбежно больше, чем у фиксированных вращений, ибо блочно-диагональная матрица целиком не влезет в кэши и иную эффективную память у GPU.
❤4✍2👏2
Flash Attention-2 под Turing и Винду
[Репозиторий проекта][Cопроводительный блогпост]
Оригинальный Flash Attention поддерживает только архитектуры NVIDIA начиная с Ampere и новее (см. issue).
Но некий Кулибин нашелся и написал тритоновские ядра, которые работают начиная с Turing, с сопроводительным блогпостом. Сам пост довольно содержательный и полезный для тех, кто хотел бы вспомнить, что такое Флэш, и с чего его едят.
Не хватает сильно, правда, сравнения скорости с наивной реализацией, чтобы понять, насколько оно действительно полезно.
[Репозиторий проекта][Cопроводительный блогпост]
Оригинальный Flash Attention поддерживает только архитектуры NVIDIA начиная с Ampere и новее (см. issue).
Но некий Кулибин нашелся и написал тритоновские ядра, которые работают начиная с Turing, с сопроводительным блогпостом. Сам пост довольно содержательный и полезный для тех, кто хотел бы вспомнить, что такое Флэш, и с чего его едят.
Не хватает сильно, правда, сравнения скорости с наивной реализацией, чтобы понять, насколько оно действительно полезно.
🔥10❤6👍3
Character.ai 🧍♂ (стартап небезывестного Ноама Шазира) выпустили небольшой блогпост про оптимизацию обучения LLM.
В блоге рассказывается про следующие трюки:
1️⃣ Сжатие градиентов в 6 бит при помощи техники Squinch. (квантизуют элементы группами по 8 элементов в 5 бит, 4 бита на значения, 1 знаковый, и 8-битный скейл)
2⃣️️ Z-регуляризация на логиты, применямая к логитам внимания и роутера, предтовращающая их рост.
3️⃣ Динамическая обрезка значений в ffn в QAT, предтовращающая схлопывание акитваций в ноль.
4️⃣ Эффективный аттеншен в случае древесных зависимостей. Не считаем внимание там, где его нет.
5️⃣ Для knowledge дистилляции предпосчитывают и сохраняют логиты, но не все, а только topk, которые сэмплируют через Gumbel-Softmax.
В блоге рассказывается про следующие трюки:
1️⃣ Сжатие градиентов в 6 бит при помощи техники Squinch. (квантизуют элементы группами по 8 элементов в 5 бит, 4 бита на значения, 1 знаковый, и 8-битный скейл)
2⃣️️ Z-регуляризация на логиты, применямая к логитам внимания и роутера, предтовращающая их рост.
3️⃣ Динамическая обрезка значений в ffn в QAT, предтовращающая схлопывание акитваций в ноль.
4️⃣ Эффективный аттеншен в случае древесных зависимостей. Не считаем внимание там, где его нет.
5️⃣ Для knowledge дистилляции предпосчитывают и сохраняют логиты, но не все, а только topk, которые сэмплируют через Gumbel-Softmax.
👍8❤3
NVIDIA Nemotron 3: Efficient and Open Intelligence
[Статья][Код RL] [Код RL-Gym]
Введение
Под конец уходящего года зеленая компания выкатила семейство гибридных MoE моделей, которые, как утверждается, не уступают SoTA аналогам по качеству, при этом работая значительно быстрее, особенно на длинных контекстах.
[Статья][Код RL] [Код RL-Gym]
Введение
Под конец уходящего года зеленая компания выкатила семейство гибридных MoE моделей, которые, как утверждается, не уступают SoTA аналогам по качеству, при этом работая значительно быстрее, особенно на длинных контекстах.
🔬🧪 Метод и Эксперименты
Семейство Nemotron 3 содержит в себе 3 модели - Nano, Super, Ultra. Из них на текущий момент выложены только веса Nano. В Nano 3B активных параметров из 30B, размеры остальных моделей неизвестны (известно только, что они больше).
Из архитектурных особенностей следует отметить следующее:
📌 В модели для смешивания контекста преобладают Mamba-2 слои, линейные по времени и со скрытым состоянием фиксированного размера. Чтобы не терять в выразительности, в небольшой части блоков оставляют GQA attention с 2 kv-головами.
📌 В Super / Ultra применяют LatentMoE - скрытое состояние проецируется в пространство более низкой размерности перед подачей в экспертов, при этом пропорционально увеличивают количество экспертов (как общее количество, так и активных на токен). Показывают, что на бенчах это дает прирост.
Super / Ultra обучаются на Multi Token Prediction, что позволяет за раз предсказывать не один, а несколько токен на инференсе, и, как утверждается, еще и улучшает качество.
Для повышения эффективности обучения и инференса учат модели в NVFP4 формате (см. блогпост). Ради большей стабильности и качества немногочисленные слои внимания держат в bf16 и выходные проекции в Mamba-2 слоях в MXFP8.
Кроме того, не квантизуют последние 15% слоев. Также используют Адамаровы вращения и стохастическое округление на обратном проходе.
Модели поддерживают контекст до 1М токенов. Утверждается, что слои Mamba-2 неявно задают позиционную информацию и для слоев внимания не требуют позиционные эмбеддинги. RoPE ограничивает обобщаемость модели на контексты длиннее тех, на которых обучалась модель, потому от них решили отказаться. Обучали на последовательностях до 512к токенов, но неплохо обобщаются на 1M, судя по замерам на RULER.
На RL стадии подают задачи не поодиночке, а все разом. Это помогает избежать reward hacking и дает более-менее равномерный рост качества с течением обучения. Для RL используется модифицированный GRPO.
Из приятного, код обучения и данные выложены в публичный доступ.
💡 Выводы
Выглядит как серьезная инженерная работа с использованием SOTA известных рабочих архитектурных и квантизационных приемов. Вполне вероятно, MoE-шные гибриды, обученные в низкой точности станут стандартом в ближайшее время.
Семейство Nemotron 3 содержит в себе 3 модели - Nano, Super, Ultra. Из них на текущий момент выложены только веса Nano. В Nano 3B активных параметров из 30B, размеры остальных моделей неизвестны (известно только, что они больше).
Из архитектурных особенностей следует отметить следующее:
📌 В модели для смешивания контекста преобладают Mamba-2 слои, линейные по времени и со скрытым состоянием фиксированного размера. Чтобы не терять в выразительности, в небольшой части блоков оставляют GQA attention с 2 kv-головами.
📌 В Super / Ultra применяют LatentMoE - скрытое состояние проецируется в пространство более низкой размерности перед подачей в экспертов, при этом пропорционально увеличивают количество экспертов (как общее количество, так и активных на токен). Показывают, что на бенчах это дает прирост.
Super / Ultra обучаются на Multi Token Prediction, что позволяет за раз предсказывать не один, а несколько токен на инференсе, и, как утверждается, еще и улучшает качество.
Для повышения эффективности обучения и инференса учат модели в NVFP4 формате (см. блогпост). Ради большей стабильности и качества немногочисленные слои внимания держат в bf16 и выходные проекции в Mamba-2 слоях в MXFP8.
Кроме того, не квантизуют последние 15% слоев. Также используют Адамаровы вращения и стохастическое округление на обратном проходе.
Модели поддерживают контекст до 1М токенов. Утверждается, что слои Mamba-2 неявно задают позиционную информацию и для слоев внимания не требуют позиционные эмбеддинги. RoPE ограничивает обобщаемость модели на контексты длиннее тех, на которых обучалась модель, потому от них решили отказаться. Обучали на последовательностях до 512к токенов, но неплохо обобщаются на 1M, судя по замерам на RULER.
На RL стадии подают задачи не поодиночке, а все разом. Это помогает избежать reward hacking и дает более-менее равномерный рост качества с течением обучения. Для RL используется модифицированный GRPO.
Из приятного, код обучения и данные выложены в публичный доступ.
💡 Выводы
Выглядит как серьезная инженерная работа с использованием SOTA известных рабочих архитектурных и квантизационных приемов. Вполне вероятно, MoE-шные гибриды, обученные в низкой точности станут стандартом в ближайшее время.
🤔5🔥4
🔬 Метод
Результат перемножения действительной матрицы R на X, можно представить эквивалентно как комплексное матричное умножение с некоторыми матрицами U и W вида:
Далее в качестве квантизационной сетки берут корни 4-й степени из единицы {±1, ±𝑖}, и представляют веса в виде произведения скейла (float-а) и корня. Итого имеем 2 бита на подряд идущих числа - то есть 1 бит на параметр.
Для улучшения качества за счет битности делают residual квантизацию - квантизуют остаток и прибавляют к квантизованной части.
🧪 Эксперименты
Метод валидируют на Llama-2-7b. Обучают на подмножестве RedPajama размером в 30B токенов.
Выдают довольно неплохие метрики, несколько лучше, чем бинарная квантизация и на уровне QuIP# без дообучения. 2-битная residual квантизация дает метрики лучше, чем AQLM и QuIP#. Однако нет сравнения с PV-Tuning, который является естественным бейзлайном (причем требующим даже меньшего числа токенов).
В Ablation показывают, что WSD (Warmup-Stable-Decay) расписание помогает.
💡 Выводы
Результат неплохой, но на самом деле комплексная формулировка здесь избыточна, и то, что сделано по существу есть векторная квантизация в 2-мерное пространство с 2-битным кодбуком. Теоретически оно может работать быстро, но кернелов и замеров скорости нет. Да и бюджет в 30B достаточно солидный и на порядок дороже PTQ процедур.
Результат перемножения действительной матрицы R на X, можно представить эквивалентно как комплексное матричное умножение с некоторыми матрицами U и W вида:
y = U x + W x* (x* - комплексно сопряженное число)Далее в качестве квантизационной сетки берут корни 4-й степени из единицы {±1, ±𝑖}, и представляют веса в виде произведения скейла (float-а) и корня. Итого имеем 2 бита на подряд идущих числа - то есть 1 бит на параметр.
Для улучшения качества за счет битности делают residual квантизацию - квантизуют остаток и прибавляют к квантизованной части.
🧪 Эксперименты
Метод валидируют на Llama-2-7b. Обучают на подмножестве RedPajama размером в 30B токенов.
Выдают довольно неплохие метрики, несколько лучше, чем бинарная квантизация и на уровне QuIP# без дообучения. 2-битная residual квантизация дает метрики лучше, чем AQLM и QuIP#. Однако нет сравнения с PV-Tuning, который является естественным бейзлайном (причем требующим даже меньшего числа токенов).
В Ablation показывают, что WSD (Warmup-Stable-Decay) расписание помогает.
💡 Выводы
Результат неплохой, но на самом деле комплексная формулировка здесь избыточна, и то, что сделано по существу есть векторная квантизация в 2-мерное пространство с 2-битным кодбуком. Теоретически оно может работать быстро, но кернелов и замеров скорости нет. Да и бюджет в 30B достаточно солидный и на порядок дороже PTQ процедур.
❤5👍1