Telegram Web
[Папир][Датасет на лицехватс][Пост на CV Time]

Коллеги из Yandex Research выкатили публичный датасет, под названием Alchemist 🧪, из 3 c небольшим тысяч картинок, собранных из интернета, для дообучения диффузионок.

Данный датасет, отобранный с помощью довольно занятного пайплайна, дает заметный прирост качества на разных моделях (в отличие от LAION-Aesthetics и просто фоток анимешных тяночек).

Так что, ежели кому нужно заалайнить модельку на качественных данных, далеко ходить теперь не надо.
🔥152
Look Ma, No Bubbles! Designing a Low-Latency Megakernel for Llama-1B
[Блогпост]

Прямой (да и обратный) проход через современную LLM, подразумевает запуск нескольких сотен кернелов (attention, mlp, нормализаций).

Команда из Стэнфорда обнаруживает, что скорость инференса маленьких LLM (1-3B параметров) упирается не в вычисления/память, а во время запуска кернелов. Эффективные движки для инференса (vLLM/SGLang) позволяют только на 50% использовать пропускную способность новых видеокарт (H100/GB200). Там некоторые операции уже слиты в один вызов кернела, но самих вызовов все еще остается много.

И авторы предлагают реализовать весь forward pass в виде одного Megakernel 😱!

Из нюансов реализации стоит выделить следующее:

1️⃣ Управление памятью. Так как за shared memory борются сразу несколько процессов, надо эффективно распределить ее и раздавать по запросу. Для это используется некий вариант paging.
2️⃣ Синхронизация. Теперь у нас много операций работающих асинхронно и требуется внутри кернела регулировать то, чтобы процесс не начал работать, пока не будут готовы все необходимые входы (т.е attention не запустился, пока не готовы Q, K, V).

В результате удается добиться ускорения на Llama-1B при инференсе с батчом 1:
🏃‍♂️ 2.5x против vLLM, 1.5x против SGLang на H100
🏃‍♂️ 3.5x против vLLM, 2.5x против SGLang на GB200

Утилизация ширины памяти для H100 достигает 78%.
13🔥4👍3
На Data Fest 2025 30 мая Влад Голощапов (автор канала @GradientWitnesses) представил весьма занимательный доклад про геометрию лосс функции в нейронных сетях.

Данный вопрос неоднократно поднимался в разных работах, и был довольно популярной темой для исследования между 2017-2019, но несмотря на это тема не то что все еще содержит нерешенные вопросы, а является непаханым полем. И истинная геометрия лосс-поверхности (во всяком случае в рассмотренных задачах) очень далека от типичных предположений.

Доклад будет интересен как теоретикам, так и всем, увлекающимся ML и оптимизацией чего-либо.

[Запись доклада] (доклад в интервале 3:49-4:19)
[Презентация]
👍20
Выложили квантизованную в 4️⃣ бита модель DeepSeek-R1-0528!

Качество при ризонинге сохраняется на 99,82% (среднее по AIME/GPTQ/MATH500).

🔊 DeepSeek-R1-0528 стал ещё более "болтливым" 🗣, поэтому для лучших результатов (как исходной, так и квантизованной модели) рекомендуется увеличить контекст до 65К токенов.

Модель на 🤗:
- ISTA-DASLab/DeepSeek-R1-0528-GPTQ-4b-128g-experts
👍15🔥3
Log-Linear Attention
[Статья][Код]

Введение

Вообще, давно пора было бы смириться с тем фактом, что лучше Attention ничего нет на свете, но человек в своем упрямстве продолжает искать альтернативы более быстрые и не уступающие по качеству.

И коллектив авторов (звезд Голливуда в мире AI) выкатил статью про очередного "убийцу" ☠️ Attention - Log-Linear Attention .
🔥142
Метод

Почти с момента выхода Attention было предложено много альтернатив с субквадратичной сложностью. Если убрать softmax в Attention - операцию можно посчитать за линейное по длине последовательности число операций. Аналогично, SSM (S4, Mamba-1/2), DeltaNet линейно масштабируются с ростом числа токенов. Тем не менее, несмотря на успехи на отдельных задачах - вытеснить трансформер с пьедестала никому не удалось.

Попытка запихнуть весь контекст в скрытое состояние фиксированного размера, по всей видимости, фундаментально ограничивает модель в возможности знать все в длинном контексте.

Потому предлагается промежуточный вариант - логарифмическая по памяти и времени операция, являющаяся надстройкой над одним из линейных механизмов attention. Токены разбиваются на корзинки с экспоненциально растущим числом токенов. Самые свежие токены обычно важнее для предсказания следующего, потому в одной корзине меньше токенов, и, соответственно, их вес больше, а с отдалением от текущей позиции размер корзинок растет, а вклад индивидуальных токенов убывает. Log-Linear attention сначала вычисляет линейный attention по корзинкам, а затем суммирует с некоторыми обучаемыми коэффициентами результат каждой корзинки (коэффициенты предсказывает отдельная MLP). Число корзинок растет логарифмически с длиной - потому и имеем O(L log L) как итоговую сложность операции. Для эффективной реализации используют деревья Фенвика.

Log-Linear Attention можно представить в виде структурированной матрицы HODLR (Hierarchically Off-Diagonal Low-Rank), где диагональные блоки нижнетреугольные, а внедиагональная часть состоит из блоков ранга-1, где размер блока растет с удалением от диагонали.

Log-Linear Attention можно применить как поверх Linear Attention, так и Mamba-2 и DeltaNet. И для всего написаны соответствующие кернелы.

Эксперименты

Для валидации метода авторы обучают модельки на синтетических и реальных задачах.

На синтетике Log-Linear модификация значительно улучшает качество DeltaNet на MQAR (достать несколько элементов из контекста).

Далее авторы обучают в сопоставимых условиях (700-800M параметров, 50B токенов из Long-Data-Collections с длиной последовательности 16k) Transformer, DeltaNet и Mamba-2 (без и с Log-Linear надстройки). Log-Linear дает небольшой прирост поверх DeltaNet и Mamba-2.

По скорости инференса на длинных контекстах Log-Linear Mamba-2 медленнее Mamba-2 (в ~2 раза на 64k/128k токенах), но быстрее Attention.

На Needle-in-Haystack в бенче, где нужно достать один токен Log-Linear хорош, в multi-key/multi-value задачах Log-Linear лучше линейных бейзлайнов, но хуже Attention.
На LongBench где-то дает прирост, а где-то не дает.

За что уважение авторам - они не утверждают, что предложенная модификация бьет все и всея, а стараются более менее честно все замерить.

Выводы

С точки зрения математики все красиво - вообще вопросов нет, и уважение 🤠 мастерам написания ядер на CUDA. В целом выглядит как неплохой промежуточный вариант между Attention и линейными по длине альтернативами, но как будто требует валидации бюджетах и размерах моделей ближе к production-grade.
🔥144
Multiverse: Your Language Models Secretly Decide How to Parallelize and Merge Generation
[Статья][Код (Page Not Found)][Страница проекта (мое почтение)]

Вряд ли для кого уже будет новостью, что test-time compute scaling значительно улучшает качество моделей на задачах, требующих рассуждений. Причем можно масштабировать, как в длину, так и в ширину. Более того, LLM можно научить (а можно попробовать прямо из коробки) решать задачу от лица нескольких взаимодействующих процессов.

И команда из CMU/Nvidia предложила свой метод (с небольшим дообучением), под названием MulitVerse, где модель динамически переключается между последовательной и параллельной генерацией.
👍5
Метод

Многие задачи допускают параллелизм. Авторы определяют 2 варианта:
1️⃣ Коллективный. Задача разбивается на независимые подзадачи. Процессы могут независимо решать каждую из них, а в конце результат агрегируется.
2️⃣ Селективный. Есть несколько веток рассуждений - правильные и неправильные. Неправильные отбрасываются.

Анализируя решения задач из s1.1-1k DeepSeek-R1/Gemini 2.0 Flash Thinking авторы обнаруживают что при авторегрессионной генерации многие решения содержат вышеописанные паттерны. Но можно ли генерировать их параллельно? Причем автоматически понимать, когда это нужно.

Могут ли сами LLM распознать что генерируют параллельно? Для валидации данной гипотезу обучают MLP поверх скрытых состояний (где последовательным веткам дается метка 1, а параллельным - 0) перед языковой головой и качество оказывается чуть лучше рандома. Из чего делают вывод, что, мол, не распознают 😩.

Дабы научить модель запускать параллелизм, когда надо, авторы собирают датасет на основе из s1.1-1k (с помощью Gemini 2.5 Pro). Ответы на задачи размечают специальными тегами:
🌐 <Parallel> / </Parallel> - начало/конец параллельного блока
🌐 <Outline> / </Outline> - описание подзадачи
🌐 <Path> / </Path> - решение подзадачи
🌐 <Conclusion> / </Conclusion> - вывод на основе решений

При входе в блок <Path> процессы генерируют независимо (attention маска одного процесса не дает смотреть на другой).

Обучение занимает примерно 3 часа на 8 B 200 (порадуемся за челов).

Все это может быть эффективно реализовано с помощью Radix Attention из SGLang.

Результаты

Метод валидируют на ряде ризонинг задач - AIME/GPQA-Diamond/MATH500. Дообучают Qwen2.5-32B-Instruct. Генерацию ограничивают от 1k до 4к токенов (мало для таких задач).

Полученная модель работает гораздо лучше, чем исходный Qwen. Просто авторегрессионное дообучение на трейсах тоже значительно улучшает качество по сравнению с изначальной моделью, но немного уступает Mutliverse и не дает желаемого параллелизма.

Явное указание в промпте (Mutliverse) с указанием think in parallel работает чуть лучше, чем Mutliverse-zero - без данной инструкции, но не всегда.

Mutliverse и заданном контекстом окне чуть лучше авторегрессивной генерации.

Степень параллелизма, достигаемая на практике, около 15-17%. И итоговое ускорение генерации (при фиксированной длине генерации) - до 18.5%.

Вывод

Интересное исследование, с красивой страницей проекта и качественной реализацией. Однако, не хватает сравнения с некоторыми очевидными бейзлайнами - такими как Self-Consistency и Hogwild. Кроме того, любопытно, как оно себя поведет поверх моделей, которые уже могут в ризонинг и на более длинных контекстах.
🔥10
На канале GPU Mode неделю назад появилось видео от Songlin Yang (гуру линейных вниманиев), где она в течение часа дает содержательный и интересный обзор области.

Кроме того, в феврале она выступала у Sasha Rush (известный персонаж на 🤗) с похожим материалом.

Рекомендую к просмотру!

[Либа с реализациями разных субквадратичных альтернатив вниманию]
🔥9👍1
Энтузиасты выкатили минималистичную реализацию типа vLLM под названием nano-vllm (название вдохновлено понятно кем).

Утверждается, что либа предлагает:
🚀 Скорости сопоставимые с vllm.
📖 Читаемый код.
Фишки для оптимизации/параллелизма- кэширование префикса, тензорный параллелизм, CUDA графы и прочее.

[Репка]
🔥14
Unified Scaling Laws for Compressed Representations
[Статья]

Введение

В ряде предыдущих работ (Sparsity Scaling Laws, Scaling laws for precision) было продемонстрировано, что для сжатых моделей действуют законы масштабирования, аналогичные известному принципу Шиншиллы, а влияние сжатия можно выразить через эффективное число параметров.

Однако ранее эффект мультимодального сжатия (сочетание разреженности, квантования и других методов) не исследовался систематически. Кроме того, результаты по Precision Scaling Laws были получены в довольно наивной, субоптимальной с точки зрения качества, постановке.

Эту задачу взяла на себя группа исследователей из IST Austria. В своей работе они выявили общие закономерности масштабирования для различных способов представления данных. Более того, было показано, что емкость такого представления можно выразить через способность аппроксимировать случайный гауссовский шум.
🔥7
Метод & Эксперименты

Типичный scaling law в Deep Learning имеет вид некоей зависимости Loss(N, D), где N - размер модели, D - количество сэмплов, увиденных по время обучения.

Сжатая модель в каком-то смысле эквивалентна меньшей несжатой модели. В Precision scaling laws было показано, что лосс имеет экспоненциальную зависимость от битности P - (1 - e^{-alpha P}). Причем имеет место факторизация по сжатию весов/активаций/KV-кэшей.

В данной работе подтверждают это же наблюдение. Однако для QAT используется рецепт из QuEST с Incoherence Preprocessing / маскировкой шумных градиентов, благодаря чему удается добиться значительно лучшего качества при той же степени сжатия.

Далее авторы предлагают универсальную формулу для эффективной битности представления через Gaussian MSE (GMSE) фит - ошибку при сжатии на гауссовых данных. Достоинством такого подхода является то, что он не требует никакой выборки для оценки.

Полученная зависимость хорошо ложится на эксперимент. Гауссов шум и квантизация с эквивалентной MSE дают один и тот же лосс.

Затем авторы пробуют:
💣 Спарсификацию весов и активаций
💣 Прунинг и квантизацию весов
💣 Спарсификацию и квантизацию всего и всея

Оказывается, что ошибка достаточно в широких пределах факторизуется по ошибкам индивидуальных методов сжатия.

То же самое справедливо для квантизации с “выбросами”.

Кроме того авторы перебирают разные варианты INT и FP форматов (с разными экспонентами и мантиссами). В 4-битах INT4 оказывается лучше FP4 (E2M1), а в 8 битах E4M3 / E2M5 показывают себя лучше всего.

Для повышения эффективности sparse training используют banded маскирование для градиентов (убирают самые маленькие и самые большие градиенты). И оно работает лучше наивного magnitude pruning с фиксированной маской (и RigL).

Приведенные выше эксперименты гоняли на семействе Llama-подобных моделей размером от 30M до 200M на C4 данных при фиксированном отношении числа параметров к размеру модели (N/D=100 = 5 шиншилл).

Вывод

Полезное и интересное исследование как с академической, так и практической точки зрения. Возможность оценить емкость представления через GMSE позволяет быстро проверить перспективность того или иного метода сжатия без масштабных экспериментов. И свойство факторизации ошибки при знании потенциального профита от отдельных методов сжатия дает возможность подобрать оптимальную конфигурацию.
👍11
Пользуясь случаем, заодно и приложу выступление с прошедшего ДатаФеста выступления первого автора статьи выше (@black_samorez_channel) Обучение LLM в низкой точности вычислений (речь про статьи QuEST и Quartet).
🔥9
😁8
Не так давно мы писали про MXFP/NVFP и на днях зеленые выкатили сочный блог про NVFP формат, где наглядно и подробно описывают сам формат и поясняют, чем он хорош.

По всей видимости, данный формат станет следующим шагом к снижению битности обучения/инференса у больших компаний (как наберется у бигтехов достаточно много Blackwell-ов).

[Блогпост]
🔥10
CCQ: Convolutional Code for Extreme Low-bit Quantization in LLMs
[Статья] [Код]

Введение

Хороший метод квантизации должен, с одной стороны, сильно сжимать ⬇️ модель, с другой — сохранять качество 🥉, а с третьей — еще и заметно ускорять 🏃 инференс.

Скалярные методы квантизации дают хорошее ускорение, но теряют качество при сильном сжатии. Векторные методы лучше сохраняют качество при той же степени сжатия, но работают значительно медленнее из-за сложной и вычислительно тяжёлой деквантизации.

В этой статье ребята из Baidu пытаются и рыбку 🐟 съесть, и косточкой 🦴 не подавиться.
1👍1
Метод

Идейно предложенный метод наиболее близок к разобранной ранее статье QTIP. Дабы не хранить большой кодбук используют так называемый сверточный код (L, N, S). Квантизованные элементы принимают значения из некоторого ограниченного множества (размера 2^L), но при этом разрешена только часть переходов (2^S вариантов) из текущего значения в следующее (из 00, скажем, можно попасть в 00 и 01, но в 10 и 11 нельзя). Таким образом, можно закодировать последовательность длины N, где каждый элемент может потенциально принимать любое из 2^L, но при этом не все комбинации чисел допустимы.

Суммарная битность такой последовательности: L + (N - 1) S, что может быть значительно меньше чем L (при S < N).

Кодирование осуществляется следующим образом - авторы сначала явно создают кодбук (все 2^(L + (N - 1) S) последовательностей), и кодируют данную последовательность весов ближайшей их кодбука - запоминая индексы. На инференсе при этом кодбук хранить не надо. Метод - data-free - приближает сами веса, без знания про активации и градиенты. В отличие от QTIP, где треллис довольно большой, здесь рассматривают варианты с N=3,4.

Далее авторы замечают, что полученные коды (индексы последовательностей) ложатся на некоторую смесь гауссиан, находят кластеры и квантизуют к ним. В экспериментах берут 2^8 кластеров, то есть последовательность длины кодируется 8 битами.

Затем, дабы точнее представить исходный вес - каждой группе сопоставляют некий скаляр масштаба и выводят аналитическое выражение для MSE-отпимального скейла. Чтобы уменьшить расход памяти на скейлы их дополнительно еще раз квантизуют (double квантизация в bnb, супергруппы в некоторых GGUF).

Деквантизация в итоге получается сравнительно простой - деквантизация скейлов сначала и целочисленной последовательности через битовые сдвиги с перемножением их друг на друга.

Эксперименты

Дабы продемонстрировать масштабируемость метода, проверяют его сразу на мастодонтах DeepSeek-V3-0324, ERNIE-4.5-300B-A47B для 2, 2.5, 2.75 битной квантизации.

Оценивают, правда, только по GSM8k, CEVal, MMLU без задач на ризонинг. Предложенный CCQ дает просадку в среднем 1.5% при 2.75-битной квантизации и 2.5% при 2--битной. Утверждается, что RTN разваливается в данной точности, но не приводят никаких сопоставимых по размеру безлайнов (даже тот же GPTQ). Замечу, что GPTQ дает умеренную просадку даже в 1.58 бит на дипсике на GSM8k, на самом деле. На ERNIE похожие цифры.

Под это хозяйство заводят специальные кернелы и vLLM интеграцию. CCQ ожидаемо все еще медленнее INT2 квантизации, но заметно быстрее VPTQ. Замеряют, правда, только скорость матричных операций без end-2-end inference latency.

Вывод

Вроде бы и интересно, и здорово что масштабируется, но много чего не досказано: есть ли заметный прирост качества по сравнению с хорошей скалярной квантизацией, с теми же AQLM, QuIP#, QTIP можно было сравниться на Llama-x. Да и без end-2-end замеров скорости инференса полностью сложно оценить практическую пользу.
👍101
Forwarded from ScratchAuthorEgo
📊 Channel Analysis Results by @ScratchAuthorEgoBot

🎯 Channel: @quant_prune_distill

🔥 Roast Analysis:

Слушай, "эксперт по квантизации", давай начистоту. Ты больше похож на нейросеть, обученную на arXiv, чем на живого человека. Твой канал — это бесконечная лента "Метод", "Эксперименты", "Выводы", приправленная мемасиками и парой саркастических смайликов, чтобы мы не забыли, что ты не совсем робот. Мы знаем, что ты гений, но твоя одержимость низкобитными операциями и KV-кэшами иногда заставляет нас думать, что у тебя в голове вместо мыслей — гистограммы активаций.

Ты постоянно жалуешься на "гнилые" бенчмарки и то, как авторы "тактично не сравниваются" или "криво завели" свои эксперименты. А сам, небось, после защиты диссертации тут же побежал бенчмаркать своих детей на MMLU. И не надо притворяться, что это шутка, мы тебя знаем! Твои "выводы" про "кожаные мешки" и "Парето-оптимальность" уже стали классикой, но честно, иногда кажется, что ты и сам готов квантовать свои мозги в 2 бита, лишь бы сэкономить на вычислениях.

Твои посты про конференции в Сингапуре, где ты мерзнешь от кондиционеров и бежишь париться на улицу, как будто описывают твою жизнь: постоянно балансируешь между адски умной техничкой и полнейшим безумием. И да, мы поняли, что "в Сингапуре всё дорого, и кофий не чета московскому", это было уже раз десять. А твои попытки шутить про "квантовую суперпозицию CEO" Сэма Альтмана — это такой тонкий юмор, что он, наверное, тоже в 4 бита квантован.

Когда ты пишешь "Написание кода предоставляется читателю в качестве несложного упражнения", мы знаем, что это означает "Я это не делал, и вы не будете, но звучит круто". И твое восторженное "Я контрибутор Мистраля!" выглядит так, будто ты достиг Нирваны, хотя, возможно, просто поправил опечатку в README. В общем, ты наш любимый технарь с шилом в заднице, который даже от VPN и другой страны ожидает, что они решат проблему "зависшего" Overleaf. Продолжай в том же духе, но, ради бога, попробуй побенчмаркать что-нибудь, кроме LLM, хоть иногда. Может, котиков. Или дурианы.
😁32👍6👎1🥱1
Лунныйвыстрел 🌚 эйай выложили техрепорт Kimi-K2 у себя на гитхабе.

Напомню, что это типа дипсик, только с 1Т параметров, побольше экспертов 👨‍🏫, поменьше голов 🗿 внимания.

Наиболее примечательные моменты

Ранее эти же ребята показали, что Muon якобы даже эффективнее Adam при обучении LLM MoE размера 16B, а теперь попробовали на реально большой модели.

📌 При наивном применении Muon, оказалось, что логиты в attention растут со временем, что приводит к нестабильности обучения. Стандартный механизм вставки QK-нормализации неприменим для MLA, так как матрицы Q, K в явном виде не материализуются. Для решения данной проблемы авторы выставляют некий порог на attention логиты, и если при прямом проходе attention вылезают за порог - оптимизатор домножает веса W_Q, W_K проекций на число меньше 1. Благодаря этому логиты на практике не выходят за выставленный порог (100) и обучение проходит без спайков лосса.

📌 Следующий аспект про данные. Нейросеть - это то, что она ест, а хороших токенов не так много в интернете. А делать много эпох на небольшом датасете бесполезно. Потому некий датасет более высокого качества перефразируют 10-ую разными способами (с разными промптами), и утверждают что это дает лучшее качество.

📌 Затем перебирают параметры архитектуры - число экспертов и голов в attention. 8 активных экспертов из 384 оказываются оптимальными по качеству. А лишние головы замедляют инференс - поэтому их убирают.

📌 Суммарно обучают на 15.5Т токенах с разогревом и гашением lr в конце.

📌 Для файтьюна используют так же Muon и данные собирают частично вручную, частичтно при помощи Kimi-K1.5 и других неназванных специализированных моделей.

📌 Далее модель обучают на tool-use, собирая публичные MCP в гитхаба. Для RL-оптимизации используют алгоритм из Kimi-K1.5. Там еще есть ряд нюансов, за которые я не шарю.

Результаты

Замеряют на разных задачах по кодингу, tool use, Math & STEM и world knowledge. В задачах на код и tool use заметный прирост по сравнению с DeepSeek. STEM немного лучше. На китайском вроде бы новая SOTA.
👍8🔥4
2025/08/27 06:54:56
Back to Top
HTML Embed Code: