🔬 Метод
Напомним, что RAE кодирует одновременно высокочастотную информацию, необходимую для реконструкции и сематническую. RAE инициализуется неким семантическим энкодером (SigLIP/WebSSL) и дообучается на реконструкцию + дополнительные лоссы.
В данной работе рассматривают в качестве базовых тушек SigLIP2/WebSSL и обучают RAE на реконструкцию + LPIPS + Грам лосс + адверсариальный лосс. Удается добиться качества реконструкции между SDXL VAE и FLUX VAE. Для реконструкции текстов (внезапно) важно долить текстовых данных.
Используют MetaQuery в архитектуре - последовательность обучаемых токенов той же длины, что и выход RAE (256 токенов для изображений 224x224).
Для оригинального RAE для лучших результатов было важно зашумлять латенты и делать широкую DDТ голову. Для T2I оказывается, что данные изменения не дают особого прироста если учить достаточно долго достаточно большие модели.
А вот сдвиг расписания (flow shift) остается довольно важным.
🧪 Эксперименты
Обучение состоит из двух стадий - претрейна на большом количестве данных и файнтьюне на более качественных данных.
Данные собирают частично из открытых датасетов, частично генерят синтетику. Лучше работает смесь таких и таких данных, чем большее количество примеров из одного распределения.
Основная масса экспериментов проводится на 1.5B Квене в качестве текстового энкодера и 2.4B диффузионной модели.
RAE сходится значительно быстрее к тем же метрикам (в 4 раза по GenEval, в 4.6 раз по DPG Bench) и выходят на лучшее качество при заданном бюджете.
Дальнейший скейлинг модели по размеру не приводит к значительному улучшению качества (вероятно, потому что упираются в данные).
Интересной фичой подхода с RAE является способность оценивать свои генерации, тем самым делая возможным test-time scaling по типу Best-of-N.
💡 Выводы
Годная валидация подхода, но дабы окончательно убедиться в
эффективности, наверное, потребуются модели околосотового качества.
Напомним, что RAE кодирует одновременно высокочастотную информацию, необходимую для реконструкции и сематническую. RAE инициализуется неким семантическим энкодером (SigLIP/WebSSL) и дообучается на реконструкцию + дополнительные лоссы.
В данной работе рассматривают в качестве базовых тушек SigLIP2/WebSSL и обучают RAE на реконструкцию + LPIPS + Грам лосс + адверсариальный лосс. Удается добиться качества реконструкции между SDXL VAE и FLUX VAE. Для реконструкции текстов (внезапно) важно долить текстовых данных.
Используют MetaQuery в архитектуре - последовательность обучаемых токенов той же длины, что и выход RAE (256 токенов для изображений 224x224).
Для оригинального RAE для лучших результатов было важно зашумлять латенты и делать широкую DDТ голову. Для T2I оказывается, что данные изменения не дают особого прироста если учить достаточно долго достаточно большие модели.
А вот сдвиг расписания (flow shift) остается довольно важным.
🧪 Эксперименты
Обучение состоит из двух стадий - претрейна на большом количестве данных и файнтьюне на более качественных данных.
Данные собирают частично из открытых датасетов, частично генерят синтетику. Лучше работает смесь таких и таких данных, чем большее количество примеров из одного распределения.
Основная масса экспериментов проводится на 1.5B Квене в качестве текстового энкодера и 2.4B диффузионной модели.
RAE сходится значительно быстрее к тем же метрикам (в 4 раза по GenEval, в 4.6 раз по DPG Bench) и выходят на лучшее качество при заданном бюджете.
Дальнейший скейлинг модели по размеру не приводит к значительному улучшению качества (вероятно, потому что упираются в данные).
Интересной фичой подхода с RAE является способность оценивать свои генерации, тем самым делая возможным test-time scaling по типу Best-of-N.
💡 Выводы
Годная валидация подхода, но дабы окончательно убедиться в
эффективности, наверное, потребуются модели околосотового качества.
👍4✍2🔥2
Качественный и иллюстративный получасовой видеообзор субквадратичных аналогов внимания.
В частности, разобраны:
• Linear Attention
• Gated Linear Attention
• Gated Delta Net
• Titan
В частности, разобраны:
• Linear Attention
• Gated Linear Attention
• Gated Delta Net
• Titan
🔥20👍6
Kimi K2.5: Visual Agentic Intelligence
[Блог]
Китайцы релизнули очередную занятную модельку - обновление Kimi-K2 под названием Kimi-K2.5.
Из основных отличий по отношению к прошлой версии следует отметить следующее:
🧞♂️ Мультимодальность. Предшественница была text-only модель, а 2.5 умеет обрабатывать и выдавать визуальную информацию. В частности, оно могет в генерацию няшных интерфейсов и фронтенда.
🧞♂️ Мультиагентность. Утверждается, что оно может дирижировать аж до сотни агентов (Agent Swarm). Реворд специально сделан так, чтобы обучать оркестратор призывать агентов по мере необходимости. Показывается, что вызов множества агентов позволяет уменьшить время решения задачи по сравнению с single-agent.
🧞♂️ Так же она умеет в разные офисные задачи, работу с таблицами, графиками.
По бенчам (всяким HLE, GPQA, IMO, если им доверять) +/- на уровне клозед-сурс SOTA. Ну и представили график, что они якобы куда более cost-effective, чем гопота.
[Блог]
Китайцы релизнули очередную занятную модельку - обновление Kimi-K2 под названием Kimi-K2.5.
Из основных отличий по отношению к прошлой версии следует отметить следующее:
🧞♂️ Мультимодальность. Предшественница была text-only модель, а 2.5 умеет обрабатывать и выдавать визуальную информацию. В частности, оно могет в генерацию няшных интерфейсов и фронтенда.
🧞♂️ Мультиагентность. Утверждается, что оно может дирижировать аж до сотни агентов (Agent Swarm). Реворд специально сделан так, чтобы обучать оркестратор призывать агентов по мере необходимости. Показывается, что вызов множества агентов позволяет уменьшить время решения задачи по сравнению с single-agent.
🧞♂️ Так же она умеет в разные офисные задачи, работу с таблицами, графиками.
По бенчам (всяким HLE, GPQA, IMO, если им доверять) +/- на уровне клозед-сурс SOTA. Ну и представили график, что они якобы куда более cost-effective, чем гопота.
👍7❤3
Quantization-Aware Distillation for NVFP4 Inference Accuracy Recovery
[Статья]
Ребята из Нвидии выкатили техрепорт про дистилляцию моделей, с квантизованными в NVFP4 весами и активациями. В репорте гоняют квантизацию + дистилляцию на семействе собственных моделей и тюнов.
С точки зрения научной новизны так-то ничего интересного, но можно отметить следующее:
📌 Дистилляция на логитах менее подвержена оверфиту (да ладно?)
📌 Данные важны (удивительно, не правда ли?)
📌 KL-дивергенция лучше MSE для логитов (вот это да!)
📌Надо аккуратно тюнить learning rate (да ну?)
А так, в целом, удается почти не потерять в качестве.
[Статья]
Ребята из Нвидии выкатили техрепорт про дистилляцию моделей, с квантизованными в NVFP4 весами и активациями. В репорте гоняют квантизацию + дистилляцию на семействе собственных моделей и тюнов.
С точки зрения научной новизны так-то ничего интересного, но можно отметить следующее:
📌 Дистилляция на логитах менее подвержена оверфиту (да ладно?)
📌 Данные важны (удивительно, не правда ли?)
📌 KL-дивергенция лучше MSE для логитов (вот это да!)
📌Надо аккуратно тюнить learning rate (да ну?)
А так, в целом, удается почти не потерять в качестве.
😁15
Дело бы вечером, делать было нечего, и я попробовал завайбкодить интепретатор Python на Rust.
Самым банальным промптом
Сначала попробовал GPT-5.2-Codex.
На первой итерации он сделал рабочую минималистичную версию на 300 строк с присваиванием и арифметическими операциями, но без циклов, сравнений и функций. Затем по запросу он стал добавлять эту функциональность и за 5 попыток файл
Взял тогда Claude-4.5-Sonnet с начальной точки и тем же промптом.
С первой попытки он начал реализовать всю функциональность (функции, лямбды, и т.п) и еще ридмихи с примерами использования.
Затем еще интереса ради тыкнул в Gemini-3-Pro. Получилось нечто среднее по качеству между кодексом и соннетом. С 4-х промптов реализовало нужный функционал, но без подробных ридмишек. Зато без ошибок компиляции сходу.
Какова мораль?
Морали нет, но сам получившийся репозиторий ниже:
🐈⬛ Репозиторий
Самым банальным промптом
You are a professional Rust programmer. Write python interpreter in Rust Language.
Сначала попробовал GPT-5.2-Codex.
На первой итерации он сделал рабочую минималистичную версию на 300 строк с присваиванием и арифметическими операциями, но без циклов, сравнений и функций. Затем по запросу он стал добавлять эту функциональность и за 5 попыток файл
main.rs вырос до 3к с небольшим строк. Однако, cargo run выдал простыню ошибок. Я этой простыней закинул в него. Он такой сорян, мой господин, ща поправлю. На следующий раз ошибок стало еще больше. После 3х итераций я сдался.Взял тогда Claude-4.5-Sonnet с начальной точки и тем же промптом.
С первой попытки он начал реализовать всю функциональность (функции, лямбды, и т.п) и еще ридмихи с примерами использования.
cargo run тоже упал но все с 4 ошибками вида error[E0614]: type `i64 cannot be dereferenced`. Кинул в него трейсбеком и со второй попытки завелось. Все хозяйство примерно заняло чуть менее 80к токенов генерации. Затем еще интереса ради тыкнул в Gemini-3-Pro. Получилось нечто среднее по качеству между кодексом и соннетом. С 4-х промптов реализовало нужный функционал, но без подробных ридмишек. Зато без ошибок компиляции сходу.
Какова мораль?
Морали нет, но сам получившийся репозиторий ниже:
🐈⬛ Репозиторий
GitHub
GitHub - Godofnothing/VibePython: Python interpreter written in Rust
Python interpreter written in Rust. Contribute to Godofnothing/VibePython development by creating an account on GitHub.
🔥18🆒3❤1🥴1
Quartet II: Accurate LLM Pre-Training in NVFP4 by Improved Unbiased Gradient Estimation
[Статья][Код]
Команда из IST Austria с Черным Саморезом в составе выпустила продолжение истории про Quartet для обучения LLM в низкой точности (а, именно современных MiscoScaling форматов).
[Статья][Код]
Команда из IST Austria с Черным Саморезом в составе выпустила продолжение истории про Quartet для обучения LLM в низкой точности (а, именно современных MiscoScaling форматов).
🔥6
🔬 Метод
В основе эффективных техник (Training LLMs with MXFP4, Quartet, FP4 All the Way)
обучения неизбежно фигурирует стохастическое округление (SR) градиентов на обратном проходе. При стохастическом округлении тензор квантизуется не к ближайшему значению, а с вероятностью, зависящей от расстояния до ближайших точек на решетке вверх или вниз. Стохастическое округление обладает свойством несмещенности - матожидание сходится к истинному среднему. И это свойство критично для градиентов. Без него в низкой битности обучения нормально не сходятся.
Однако, оно менее точно, чем округление к ближайшему (RtN) и заметно повышает среднеквадратичную ошибку. Можно ли добиться среднеквадратичной ошибки почти как у RtN, при этом сохранив несмещенность?
И авторы статьи предложили способ этого добиться.
Несмещенности добиваются за счет двух приемов
1️⃣ Адаптируют метод EDEN из распределенной отпимизации, где применяется случайное Адамарово вращение и домножение на фактор, равный отношению скалярного произведения исходного вектора на скалярное произведение квантизованного повернутого и неквантизованного повернутого.
2️⃣ Скейлы квантизации стохастически квантизуются в FP8. Ошибка квантизации в FP8 куда меньше, чем у FP4.
Дополнительно на прямом проходе используют свежий трюк из статьи, где в зависимости от того, меньше ли ошибка квантизации на полной FP4 сетке (от -6, 6) или урезанной от -(4,4) выбирают первую или вторую.
MS-EDEN в итоге достигает вдвое меньшей ошибки по сравнению с SR.
Так же сравнивают блочную квантизацию 16x16 и линейные группы 1x16. Используют вторые, так как они дают меньшую ошибку.
🧪 Эксперименты
Метод валидируют сначала в постановке из Quartet I, обучая семейство моделей Llama-2 архитектуры. В качестве бейзлайнов берут рецепт от Nvidia , TetraJet-v2, и 4/6. Quartet II достигает наименьшего (до 20% по сравнению с лучшим бейзлайном) разрыва по лоссу в сравнении с bf16 обучением.
Затем обучают Nanochat с использованием всовременных наработок по обучению LLM - мюон оптимизатор, WSD расписание learning rate, ReLU2 активаций. Учат на FinewebEdu в режиме Шиншилла-оптимального скейлинга. Для наночата справедливы те же выводы о превосходстве Quartet II измеряемом в bits-per-byte.
И что приятно, все это приходит в связке с солидным ускорением. Матричные умножения ускоряются более чем в 4 раза в сравнении с bf16, а end-2-end throughput на обучении до 2.7x.
💡 Выводы
Данный результат дает дополнительную мотивацию к переходу на низкобитное обучение больших языковых моделей. Полагаю, что данный рецепт будет перенят Нвидией и иными крупными игроками.
В основе эффективных техник (Training LLMs with MXFP4, Quartet, FP4 All the Way)
обучения неизбежно фигурирует стохастическое округление (SR) градиентов на обратном проходе. При стохастическом округлении тензор квантизуется не к ближайшему значению, а с вероятностью, зависящей от расстояния до ближайших точек на решетке вверх или вниз. Стохастическое округление обладает свойством несмещенности - матожидание сходится к истинному среднему. И это свойство критично для градиентов. Без него в низкой битности обучения нормально не сходятся.
Однако, оно менее точно, чем округление к ближайшему (RtN) и заметно повышает среднеквадратичную ошибку. Можно ли добиться среднеквадратичной ошибки почти как у RtN, при этом сохранив несмещенность?
И авторы статьи предложили способ этого добиться.
Несмещенности добиваются за счет двух приемов
1️⃣ Адаптируют метод EDEN из распределенной отпимизации, где применяется случайное Адамарово вращение и домножение на фактор, равный отношению скалярного произведения исходного вектора на скалярное произведение квантизованного повернутого и неквантизованного повернутого.
2️⃣ Скейлы квантизации стохастически квантизуются в FP8. Ошибка квантизации в FP8 куда меньше, чем у FP4.
Дополнительно на прямом проходе используют свежий трюк из статьи, где в зависимости от того, меньше ли ошибка квантизации на полной FP4 сетке (от -6, 6) или урезанной от -(4,4) выбирают первую или вторую.
MS-EDEN в итоге достигает вдвое меньшей ошибки по сравнению с SR.
Так же сравнивают блочную квантизацию 16x16 и линейные группы 1x16. Используют вторые, так как они дают меньшую ошибку.
🧪 Эксперименты
Метод валидируют сначала в постановке из Quartet I, обучая семейство моделей Llama-2 архитектуры. В качестве бейзлайнов берут рецепт от Nvidia , TetraJet-v2, и 4/6. Quartet II достигает наименьшего (до 20% по сравнению с лучшим бейзлайном) разрыва по лоссу в сравнении с bf16 обучением.
Затем обучают Nanochat с использованием всовременных наработок по обучению LLM - мюон оптимизатор, WSD расписание learning rate, ReLU2 активаций. Учат на FinewebEdu в режиме Шиншилла-оптимального скейлинга. Для наночата справедливы те же выводы о превосходстве Quartet II измеряемом в bits-per-byte.
И что приятно, все это приходит в связке с солидным ускорением. Матричные умножения ускоряются более чем в 4 раза в сравнении с bf16, а end-2-end throughput на обучении до 2.7x.
💡 Выводы
Данный результат дает дополнительную мотивацию к переходу на низкобитное обучение больших языковых моделей. Полагаю, что данный рецепт будет перенят Нвидией и иными крупными игроками.
Generative Modeling via Drifting
[Статья] [Ноутбук]
Картинки (да и все что угодно) хочется генерить быстро и качественно. На текущий момент успешная малошаговая генерация обычно достигается через дистилляцию (обычно с адверсариальным лоссом), или специализированное обучение (MeanFlow).
Тем не менее одношаговые модели все еще заметно отстают от многошаговых.
И в рассматриваемой работе авторы из MIT и Гарварда, среди которых зателся небезызвестный Кайминь Ге, предложили новую генеративную парадигму под названием Drifting (дрейф), достигающую state-of-the-art качества при одношаговой генерации.
[Статья] [Ноутбук]
Картинки (да и все что угодно) хочется генерить быстро и качественно. На текущий момент успешная малошаговая генерация обычно достигается через дистилляцию (обычно с адверсариальным лоссом), или специализированное обучение (MeanFlow).
Тем не менее одношаговые модели все еще заметно отстают от многошаговых.
И в рассматриваемой работе авторы из MIT и Гарварда, среди которых зателся небезызвестный Кайминь Ге, предложили новую генеративную парадигму под названием Drifting (дрейф), достигающую state-of-the-art качества при одношаговой генерации.
👍6
🔬 Метод
Процесс генерации представляет собой преобразование из некоего исходного распределения (например, Гауссианы) в целевое распределение данных. На языке умных это называется pushforward (толкайвперед). И задача генеративного моделирования найти хороший толкайвперед.
Обновление параметров нейронной сети соответствует дрейфу сэмплов. И задача найти такое дрейфовое поле V, такое что когда моделируемое распределение равно целевому, дрейфа нет.
И одним из возможных решений является антисимметричное дрейфовое поле.
Итеративный процесс имеет вид:
И лосс функция
Т.е зануление поля.
В качестве поля выбирают некое выражение, содержащее ядро, и представляющее собой разность двух членов:
➕ Положительного поля - сэмплов из целевого распределения
➖ Отрицательного поля - синтетических сэмплов
В идеале, когда оба поля совпадают - V = 0, и синтетическое распределение равно целевому.
Важным оказывается считать ядро не в исходном пространстве (латентном или пиксельном), а в пространстве признаков некой модели - SimCLR, MoCo, MAE.
Кроме того, метод из коробки поддерживает гайденс с отталкиванием от unconditional распределения.
🧪 Эксперименты
Метод валидируют сначала на игрушечных датасетах, а затем на Имадженете 256x256.
Показывают, что лосс хорошо коррелирует с визуальным качеством.
На имадженете ставят новый рекорд по FID (1.54) при одношаговой генерации (обходя iMeanFlow-XL). При этом их модель меньше - 475М параметров против 610M у iMeanFlow-XL.
В ablation демонстируют, что:
▶️ Важно брать достаточно много сэмплов для оценки распределения в ядре. Причем брать положительных примеров столько же сколько и отрицательных.
▶️ Важно считать поле в пространстве эмбеддингов какой-то модели иначе не работает. Лучше всего себя показывает диффузия в пространстве MAE, работающем в латентном пространстве и дообученном на классификацию.
▶️ Антисимметрия важна, иначе заметно хуже.
Работает хорошо как в пиксельном, так и латентном пространстве.
Кроме того, еще тестируют свой подход в приложениях к роботехнике 🤖.
💡 Выводы
Выглядит довольно интересно и инновационно. Интересно, воспроизведется ли хорошее качество одношаговой генерации на t2i задачах, эдитинге изображений и других более сложных задачах.
Процесс генерации представляет собой преобразование из некоего исходного распределения (например, Гауссианы) в целевое распределение данных. На языке умных это называется pushforward (толкайвперед). И задача генеративного моделирования найти хороший толкайвперед.
Обновление параметров нейронной сети соответствует дрейфу сэмплов. И задача найти такое дрейфовое поле V, такое что когда моделируемое распределение равно целевому, дрейфа нет.
И одним из возможных решений является антисимметричное дрейфовое поле.
Итеративный процесс имеет вид:
f_{t+1} = f_{t} + V(f)
И лосс функция
L = || f_{t} - stopgrad(f_{t} - V(f)) ||
Т.е зануление поля.
В качестве поля выбирают некое выражение, содержащее ядро, и представляющее собой разность двух членов:
➕ Положительного поля - сэмплов из целевого распределения
➖ Отрицательного поля - синтетических сэмплов
В идеале, когда оба поля совпадают - V = 0, и синтетическое распределение равно целевому.
Важным оказывается считать ядро не в исходном пространстве (латентном или пиксельном), а в пространстве признаков некой модели - SimCLR, MoCo, MAE.
Кроме того, метод из коробки поддерживает гайденс с отталкиванием от unconditional распределения.
🧪 Эксперименты
Метод валидируют сначала на игрушечных датасетах, а затем на Имадженете 256x256.
Показывают, что лосс хорошо коррелирует с визуальным качеством.
На имадженете ставят новый рекорд по FID (1.54) при одношаговой генерации (обходя iMeanFlow-XL). При этом их модель меньше - 475М параметров против 610M у iMeanFlow-XL.
В ablation демонстируют, что:
▶️ Важно брать достаточно много сэмплов для оценки распределения в ядре. Причем брать положительных примеров столько же сколько и отрицательных.
▶️ Важно считать поле в пространстве эмбеддингов какой-то модели иначе не работает. Лучше всего себя показывает диффузия в пространстве MAE, работающем в латентном пространстве и дообученном на классификацию.
▶️ Антисимметрия важна, иначе заметно хуже.
Работает хорошо как в пиксельном, так и латентном пространстве.
Кроме того, еще тестируют свой подход в приложениях к роботехнике 🤖.
💡 Выводы
Выглядит довольно интересно и инновационно. Интересно, воспроизведется ли хорошее качество одношаговой генерации на t2i задачах, эдитинге изображений и других более сложных задачах.
🤔4❤3👍3
DASH: Faster Shampoo via Batched Block Preconditioning and Efficient Inverse-Root Solvers
[Статья] [Код]
Оптимизатор с названием Шампунь (Shampoo, а есть еще и мыло 🧼) неплохо показал себя в ряде приложений - выдал лучшую сходимость по wall-clock time на AlgoPerf бенчмарке. Кроме того, обученные им модели устойчивы к квантизации.
Однако, шаг оптимизатора остается достаточно дорогостоящим из-за необходимости считать корни от матриц. В качестве обходного пути обновляют матрицы предобуславливания с какой-то периодичностью (раз в 100 шагов, скажем), но это сказывается негативно на сходимости.
В данной статье предлагают ускоренную и распределенную реализацию Шампуня - DASH (Distributed Accelerated SHampoo).
[Статья] [Код]
Оптимизатор с названием Шампунь (Shampoo, а есть еще и мыло 🧼) неплохо показал себя в ряде приложений - выдал лучшую сходимость по wall-clock time на AlgoPerf бенчмарке. Кроме того, обученные им модели устойчивы к квантизации.
Однако, шаг оптимизатора остается достаточно дорогостоящим из-за необходимости считать корни от матриц. В качестве обходного пути обновляют матрицы предобуславливания с какой-то периодичностью (раз в 100 шагов, скажем), но это сказывается негативно на сходимости.
В данной статье предлагают ускоренную и распределенную реализацию Шампуня - DASH (Distributed Accelerated SHampoo).
❤3👍3
🔬 Метод
Тот или иной механизм предобуславливания заложен во всех современных оптимизаторах. Адам использует диагональный предобуславливатель, не учитывающий взаимные корреляции между параметрами. Шампунь же опирается на внедиагональное приближение, имея при этом посильную сложность
В Shampoo поддерживаются две матрицы L и R из произведений градиентов. От них считается степень -¼.
В оригинальной реализации считают разложение матриц на собственные числа. Данная процедура представляет собой итеративный процесс плохо параллелизующийся на несколько GPU.
Взамен этого авторы предлагают два варианта итеративных алгоритмов для подсчета матричных корней:
1️⃣ CN - Coupled Newton Iteration
2️⃣ NDB: The Newton-Denman-Beavers 🦫 Iteration
Оба варианта требуют только операций матричного умножения, поэтому куда более hardware friendly. Кроме того, они более численно устойчивы, и позволяют проводить операции в fp16 вместо fp32.
Далее авторы анализируют сходимость. В оригинальном распределенном Shampoo для того, чтобы спектр матрицы вписывалась в единичный круг делили на норму Фробениуса, которая может быть заметно больше спектральной, что замедляет сходимость. Здесь же используют оценку на спектральную норму из частного Рэлея.
Чтобы понизить асимптотическую сложность, предобуславливатель заменяют на блочно-диагональный с размером блока ~1k. Для батчевой обработки предобуславливатели для L и R стакаются в один тезнор и считаются одновременно.
🧪 Эксперименты
Для валидации метода обучают семейство моделей архитектуры Llama-2 в Шиншилла-оптимальном сетапе.
При использовании разложения на собственные значения DASH дает ускорение порядка 20%. Для CN и NDB итераций ускорение от DASH в сравнении с распределенным Shampoo доходит до 3-4 раз. При этом валидационная перплексия на уровне бейзлайна в пределах шума.
💡 Выводы
Выглядит как серьезное ускорение Shampoo. Интересно 🤔, насколько оно окажется конкурентно способно Мюону в более боевой постановке - на большой модели и большом количестве данных.
Тот или иной механизм предобуславливания заложен во всех современных оптимизаторах. Адам использует диагональный предобуславливатель, не учитывающий взаимные корреляции между параметрами. Шампунь же опирается на внедиагональное приближение, имея при этом посильную сложность
O(m^2 + n^2) для матрицы весов размера (m, n).В Shampoo поддерживаются две матрицы L и R из произведений градиентов. От них считается степень -¼.
В оригинальной реализации считают разложение матриц на собственные числа. Данная процедура представляет собой итеративный процесс плохо параллелизующийся на несколько GPU.
Взамен этого авторы предлагают два варианта итеративных алгоритмов для подсчета матричных корней:
1️⃣ CN - Coupled Newton Iteration
2️⃣ NDB: The Newton-Denman-Beavers 🦫 Iteration
Оба варианта требуют только операций матричного умножения, поэтому куда более hardware friendly. Кроме того, они более численно устойчивы, и позволяют проводить операции в fp16 вместо fp32.
Далее авторы анализируют сходимость. В оригинальном распределенном Shampoo для того, чтобы спектр матрицы вписывалась в единичный круг делили на норму Фробениуса, которая может быть заметно больше спектральной, что замедляет сходимость. Здесь же используют оценку на спектральную норму из частного Рэлея.
Чтобы понизить асимптотическую сложность, предобуславливатель заменяют на блочно-диагональный с размером блока ~1k. Для батчевой обработки предобуславливатели для L и R стакаются в один тезнор и считаются одновременно.
🧪 Эксперименты
Для валидации метода обучают семейство моделей архитектуры Llama-2 в Шиншилла-оптимальном сетапе.
При использовании разложения на собственные значения DASH дает ускорение порядка 20%. Для CN и NDB итераций ускорение от DASH в сравнении с распределенным Shampoo доходит до 3-4 раз. При этом валидационная перплексия на уровне бейзлайна в пределах шума.
💡 Выводы
Выглядит как серьезное ускорение Shampoo. Интересно 🤔, насколько оно окажется конкурентно способно Мюону в более боевой постановке - на большой модели и большом количестве данных.
👍2❤1
[Отчет] [Документация] [Код]
Ребята из одной китайской компании с почти нецензурным в переводе на русский язык названием выкатили технический отчет про фреймворк оптимизации инференса БЯМов через квантизацию, спекулятивный декодинг, прунинг токенов и дистилляцию.
Ребята из одной китайской компании с почти нецензурным в переводе на русский язык названием выкатили технический отчет про фреймворк оптимизации инференса БЯМов через квантизацию, спекулятивный декодинг, прунинг токенов и дистилляцию.
👍5
🔬🧪 Метод и эксперименты
Рассказ начинается с рецепта успешной квантизации в 2 бита модельки HY-1.8B-Instruct. Первым делом они меняют сетку квантизации с (-2, -1, 0, 1) на симметричную (-1.5, -0.5, 0.5, 1.5). Затем все это дело они тюнят примерно на 10% бюджета BitNet, предварительно настраивая параметры на меньшей подвыборке данных. Кроме того, отмечают важность отбора хороших данных. В итоге удается добиться довольно умеренной просадки по сравнению с базовой моделью и качества на уровне 4-битной PTQ. Полученная крохотулька выдает до 800 токенов в секунду на М4 и до 300 на Mediateковском проце.
Затем идет описание тернарной квантизации через Tequilla/Sherry.
В Tequilla предлагается решение неинформативных градиентов для весов, обращенных в 0, а именно на каждый зануленный вес добавляется bias, позволяющий пробрасывать градиент к весам.
В Sherry предлается 3:4 (3 ненулевых веса из 4) разреженный паттерн для хранения весов, и 4 подряд идущих веса пакуются в 5 бит, давая 1.25 бит на параметр в среднем. И им удается сделать такое отображение hardware-friendly.
Затем команда дообучает Llama-3.2 1B и 3B в этих форматах и получает качество лучше, чем при использовании BitNet рецепта.
Для PTQ предлагают LeptoQuant, оптимизирующий масштаб квантизации с учетом выбросов, что дает некоторое улучшение для FP8 квантизации.
Спекулятивный декодинг суть EAGLE-3.
Еще у них реализован SpecExit - выход из ризонинга через интеграцию промпта завершения рассуждения в процесс генерации, помогающий бороться с проблемой избыточно длинных словесных потоков от рассуждающих моделек.
Для прунинга токенов предлагают разные методы под разные модальности. Для изображений предлагается IDPruner, для аудио - Samp. Оно как-то отбирает токены стремясь максимизировать разнообразие и убирает наиболее похожие токены.
💡 Выводы
Выглядит сама по себе либа довольно интересно. Вполне годится для приготовления небольших моделек под edge inference.
Рассказ начинается с рецепта успешной квантизации в 2 бита модельки HY-1.8B-Instruct. Первым делом они меняют сетку квантизации с (-2, -1, 0, 1) на симметричную (-1.5, -0.5, 0.5, 1.5). Затем все это дело они тюнят примерно на 10% бюджета BitNet, предварительно настраивая параметры на меньшей подвыборке данных. Кроме того, отмечают важность отбора хороших данных. В итоге удается добиться довольно умеренной просадки по сравнению с базовой моделью и качества на уровне 4-битной PTQ. Полученная крохотулька выдает до 800 токенов в секунду на М4 и до 300 на Mediateковском проце.
Затем идет описание тернарной квантизации через Tequilla/Sherry.
В Tequilla предлагается решение неинформативных градиентов для весов, обращенных в 0, а именно на каждый зануленный вес добавляется bias, позволяющий пробрасывать градиент к весам.
В Sherry предлается 3:4 (3 ненулевых веса из 4) разреженный паттерн для хранения весов, и 4 подряд идущих веса пакуются в 5 бит, давая 1.25 бит на параметр в среднем. И им удается сделать такое отображение hardware-friendly.
Затем команда дообучает Llama-3.2 1B и 3B в этих форматах и получает качество лучше, чем при использовании BitNet рецепта.
Для PTQ предлагают LeptoQuant, оптимизирующий масштаб квантизации с учетом выбросов, что дает некоторое улучшение для FP8 квантизации.
Спекулятивный декодинг суть EAGLE-3.
Еще у них реализован SpecExit - выход из ризонинга через интеграцию промпта завершения рассуждения в процесс генерации, помогающий бороться с проблемой избыточно длинных словесных потоков от рассуждающих моделек.
Для прунинга токенов предлагают разные методы под разные модальности. Для изображений предлагается IDPruner, для аудио - Samp. Оно как-то отбирает токены стремясь максимизировать разнообразие и убирает наиболее похожие токены.
💡 Выводы
Выглядит сама по себе либа довольно интересно. Вполне годится для приготовления небольших моделек под edge inference.
❤3
Forwarded from Осцилляции WaveCut (WaveCut)
Это было неизбежно: рано или поздно должны были появиться специализированные решения для инференса.
И вот, Taalas (бывшая команда из Tenstorrent) выкатили то, чего я так ждал — настоящий Direct-to-Silicon.
Ребята не стали мелочиться и буквально «запекли» модель в кремний. Никакой внешней памяти, никакого HBM, никакой сложной упаковки. Веса модели и архитектура — это и есть сам чип.
Цифры выглядят дико: 17,000 токенов в секунду на Llama 3.1 8B.
Это на порядок быстрее текущей SOTA GPU, при этом чип стоит в 20 раз дешевле в производстве и потребляет в 10 раз меньше энергии.
Самое крутое, что это не просто красивые слайды для инвесторов. Железо уже существует, и его можно «потрогать» (ссылка на демо внизу).
Конечно, это ASIC, и тут есть нюанс: чип заточен под одну конкретную модель. Но Taalas продумали этот момент — они оставили поддержку LoRA-адаптеров и изменяемого контекстного окна. То есть это не совсем уж «кирпич», гибкость для файн-тюнинга остается.
Сейчас у них готов чип с Llama 8B (HC1). Весной обещают выкатить что-то среднеразмерное с ризонингом, а к зиме грозятся показать фронтир-модель на втором поколении кремния.
У меня голова идет кругом от мыслей к чему это может привести.
Ссылки:
• Анонс
• Демо (скорость реально впечатляет)
И вот, Taalas (бывшая команда из Tenstorrent) выкатили то, чего я так ждал — настоящий Direct-to-Silicon.
Ребята не стали мелочиться и буквально «запекли» модель в кремний. Никакой внешней памяти, никакого HBM, никакой сложной упаковки. Веса модели и архитектура — это и есть сам чип.
Цифры выглядят дико: 17,000 токенов в секунду на Llama 3.1 8B.
Это на порядок быстрее текущей SOTA GPU, при этом чип стоит в 20 раз дешевле в производстве и потребляет в 10 раз меньше энергии.
Самое крутое, что это не просто красивые слайды для инвесторов. Железо уже существует, и его можно «потрогать» (ссылка на демо внизу).
Конечно, это ASIC, и тут есть нюанс: чип заточен под одну конкретную модель. Но Taalas продумали этот момент — они оставили поддержку LoRA-адаптеров и изменяемого контекстного окна. То есть это не совсем уж «кирпич», гибкость для файн-тюнинга остается.
Сейчас у них готов чип с Llama 8B (HC1). Весной обещают выкатить что-то среднеразмерное с ризонингом, а к зиме грозятся показать фронтир-модель на втором поколении кремния.
У меня голова идет кругом от мыслей к чему это может привести.
Ссылки:
• Анонс
• Демо (скорость реально впечатляет)
🔥23❤9👍3