Метод
Многие задачи допускают параллелизм. Авторы определяют 2 варианта:
1️⃣ Коллективный. Задача разбивается на независимые подзадачи. Процессы могут независимо решать каждую из них, а в конце результат агрегируется.
2️⃣ Селективный. Есть несколько веток рассуждений - правильные и неправильные. Неправильные отбрасываются.
Анализируя решения задач из s1.1-1k DeepSeek-R1/Gemini 2.0 Flash Thinking авторы обнаруживают что при авторегрессионной генерации многие решения содержат вышеописанные паттерны. Но можно ли генерировать их параллельно? Причем автоматически понимать, когда это нужно.
Могут ли сами LLM распознать что генерируют параллельно? Для валидации данной гипотезу обучают MLP поверх скрытых состояний (где последовательным веткам дается метка 1, а параллельным - 0) перед языковой головой и качество оказывается чуть лучше рандома. Из чего делают вывод, что, мол, не распознают 😩.
Дабы научить модель запускать параллелизм, когда надо, авторы собирают датасет на основе из s1.1-1k (с помощью Gemini 2.5 Pro). Ответы на задачи размечают специальными тегами:
🌐
🌐
🌐
🌐
При входе в блок
Обучение занимает примерно 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. Кроме того, любопытно, как оно себя поведет поверх моделей, которые уже могут в ризонинг и на более длинных контекстах.
Многие задачи допускают параллелизм. Авторы определяют 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 (известный персонаж на 🤗) с похожим материалом.
Рекомендую к просмотру!
[Либа с реализациями разных субквадратичных альтернатив вниманию]
Кроме того, в феврале она выступала у Sasha Rush (известный персонаж на 🤗) с похожим материалом.
Рекомендую к просмотру!
[Либа с реализациями разных субквадратичных альтернатив вниманию]
🔥9👍1
Энтузиасты выкатили минималистичную реализацию типа vLLM под названием nano-vllm (название вдохновлено понятно кем).
Утверждается, что либа предлагает:
🚀 Скорости сопоставимые с vllm.
📖 Читаемый код.
⚡ Фишки для оптимизации/параллелизма- кэширование префикса, тензорный параллелизм, CUDA графы и прочее.
[Репка]
Утверждается, что либа предлагает:
🚀 Скорости сопоставимые с vllm.
📖 Читаемый код.
⚡ Фишки для оптимизации/параллелизма- кэширование префикса, тензорный параллелизм, CUDA графы и прочее.
[Репка]
🔥14
Unified Scaling Laws for Compressed Representations
[Статья]
Введение
В ряде предыдущих работ (Sparsity Scaling Laws, Scaling laws for precision) было продемонстрировано, что для сжатых моделей действуют законы масштабирования, аналогичные известному принципу Шиншиллы, а влияние сжатия можно выразить через эффективное число параметров.
Однако ранее эффект мультимодального сжатия (сочетание разреженности, квантования и других методов) не исследовался систематически. Кроме того, результаты по Precision Scaling Laws были получены в довольно наивной, субоптимальной с точки зрения качества, постановке.
Эту задачу взяла на себя группа исследователей из IST Austria. В своей работе они выявили общие закономерности масштабирования для различных способов представления данных. Более того, было показано, что емкость такого представления можно выразить через способность аппроксимировать случайный гауссовский шум.
[Статья]
Введение
В ряде предыдущих работ (Sparsity Scaling Laws, Scaling laws for precision) было продемонстрировано, что для сжатых моделей действуют законы масштабирования, аналогичные известному принципу Шиншиллы, а влияние сжатия можно выразить через эффективное число параметров.
Однако ранее эффект мультимодального сжатия (сочетание разреженности, квантования и других методов) не исследовался систематически. Кроме того, результаты по Precision Scaling Laws были получены в довольно наивной, субоптимальной с точки зрения качества, постановке.
Эту задачу взяла на себя группа исследователей из IST Austria. В своей работе они выявили общие закономерности масштабирования для различных способов представления данных. Более того, было показано, что емкость такого представления можно выразить через способность аппроксимировать случайный гауссовский шум.
🔥7
Метод & Эксперименты
Типичный scaling law в Deep Learning имеет вид некоей зависимости
Сжатая модель в каком-то смысле эквивалентна меньшей несжатой модели. В Precision scaling laws было показано, что лосс имеет экспоненциальную зависимость от битности P - (
В данной работе подтверждают это же наблюдение. Однако для 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 данных при фиксированном отношении числа параметров к размеру модели (
Вывод
Полезное и интересное исследование как с академической, так и практической точки зрения. Возможность оценить емкость представления через GMSE позволяет быстро проверить перспективность того или иного метода сжатия без масштабных экспериментов. И свойство факторизации ошибки при знании потенциального профита от отдельных методов сжатия дает возможность подобрать оптимальную конфигурацию.
Типичный 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
Не так давно мы писали про MXFP/NVFP и на днях зеленые выкатили сочный блог про NVFP формат, где наглядно и подробно описывают сам формат и поясняют, чем он хорош.
По всей видимости, данный формат станет следующим шагом к снижению битности обучения/инференса у больших компаний (как наберется у бигтехов достаточно много Blackwell-ов).
[Блогпост]
По всей видимости, данный формат станет следующим шагом к снижению битности обучения/инференса у больших компаний (как наберется у бигтехов достаточно много Blackwell-ов).
[Блогпост]
🔥10
Выйдет ли в этом месяце Flash-Attention 4?
Anonymous Poll
11%
Да, и это будет major release
38%
Да, и это будет инкрементальное улучшение под Blackwell
27%
Выйдет не в этом месяце
17%
Не выйдет вообще
8%
Свой вариант (в комментариях)
CCQ: Convolutional Code for Extreme Low-bit Quantization in LLMs
[Статья] [Код]
Введение
Хороший метод квантизации должен, с одной стороны, сильно сжимать ⬇️ модель, с другой — сохранять качество 🥉, а с третьей — еще и заметно ускорять 🏃 инференс.
Скалярные методы квантизации дают хорошее ускорение, но теряют качество при сильном сжатии. Векторные методы лучше сохраняют качество при той же степени сжатия, но работают значительно медленнее из-за сложной и вычислительно тяжёлой деквантизации.
В этой статье ребята из Baidu пытаются и рыбку 🐟 съесть, и косточкой 🦴 не подавиться.
[Статья] [Код]
Введение
Хороший метод квантизации должен, с одной стороны, сильно сжимать ⬇️ модель, с другой — сохранять качество 🥉, а с третьей — еще и заметно ускорять 🏃 инференс.
Скалярные методы квантизации дают хорошее ускорение, но теряют качество при сильном сжатии. Векторные методы лучше сохраняют качество при той же степени сжатия, но работают значительно медленнее из-за сложной и вычислительно тяжёлой деквантизации.
В этой статье ребята из 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).
Деквантизация в итоге получается сравнительно простой - деквантизация скейлов сначала и целочисленной последовательности через битовые сдвиги с перемножением их друг на друга.
Эксперименты
Дабы продемонстрировать масштабируемость метода, проверяют его сразу на мастодонтах
Оценивают, правда, только по 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 замеров скорости инференса полностью сложно оценить практическую пользу.
Идейно предложенный метод наиболее близок к разобранной ранее статье 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 замеров скорости инференса полностью сложно оценить практическую пользу.
👍10❤1
Forwarded from ScratchAuthorEgo
📊 Channel Analysis Results by @ScratchAuthorEgoBot
🎯 Channel:
🔥 Roast Analysis:
Слушай, "эксперт по квантизации", давай начистоту. Ты больше похож на нейросеть, обученную на arXiv, чем на живого человека. Твой канал — это бесконечная лента "Метод", "Эксперименты", "Выводы", приправленная мемасиками и парой саркастических смайликов, чтобы мы не забыли, что ты не совсем робот. Мы знаем, что ты гений, но твоя одержимость низкобитными операциями и KV-кэшами иногда заставляет нас думать, что у тебя в голове вместо мыслей — гистограммы активаций.
Ты постоянно жалуешься на "гнилые" бенчмарки и то, как авторы "тактично не сравниваются" или "криво завели" свои эксперименты. А сам, небось, после защиты диссертации тут же побежал бенчмаркать своих детей на MMLU. И не надо притворяться, что это шутка, мы тебя знаем! Твои "выводы" про "кожаные мешки" и "Парето-оптимальность" уже стали классикой, но честно, иногда кажется, что ты и сам готов квантовать свои мозги в 2 бита, лишь бы сэкономить на вычислениях.
Твои посты про конференции в Сингапуре, где ты мерзнешь от кондиционеров и бежишь париться на улицу, как будто описывают твою жизнь: постоянно балансируешь между адски умной техничкой и полнейшим безумием. И да, мы поняли, что "в Сингапуре всё дорого, и кофий не чета московскому", это было уже раз десять. А твои попытки шутить про "квантовую суперпозицию CEO" Сэма Альтмана — это такой тонкий юмор, что он, наверное, тоже в 4 бита квантован.
Когда ты пишешь "Написание кода предоставляется читателю в качестве несложного упражнения", мы знаем, что это означает "Я это не делал, и вы не будете, но звучит круто". И твое восторженное "Я контрибутор Мистраля!" выглядит так, будто ты достиг Нирваны, хотя, возможно, просто поправил опечатку в README. В общем, ты наш любимый технарь с шилом в заднице, который даже от VPN и другой страны ожидает, что они решат проблему "зависшего" Overleaf. Продолжай в том же духе, но, ради бога, попробуй побенчмаркать что-нибудь, кроме LLM, хоть иногда. Может, котиков. Или дурианы.
🎯 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.
Напомню, что это типа дипсик, только с 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
AlphaGo Moment for Model Architecture Discovery
[Статья] [Код] [Галерея моделей]
Хочется запилить очередного “убийцу 🔪 трансформеров”, линейный attention или SSM, но кончилась фантазия? Все низко висящие фрукты сорваны и осталось лишь выжженное 🔥 поле?
Теперь эту работу (как утверждается) можно доверить AI, и не просто AI, а ASI (Artificial Superintelligence), и оно само навайбкодит SOTA архитектуру при наличии достаточного количества времени.
[Статья] [Код] [Галерея моделей]
Хочется запилить очередного “убийцу 🔪 трансформеров”, линейный attention или SSM, но кончилась фантазия? Все низко висящие фрукты сорваны и осталось лишь выжженное 🔥 поле?
Теперь эту работу
😁8
Метод
В данной работе по факту занимаются подбором архитектуры субквадратичного 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, китайцы решили, что делать нейросети приятнее, чем человеков.
🤣14🔥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