
КПД
Квантование & Прунинг & Дистилляция
Блог про сжатие сетей и не только.
От древнейших времен по настоящее время.
Блог про сжатие сетей и не только.
От древнейших времен по настоящее время.
Рэйтынг TGlist
0
0
ТыпПублічны
Вертыфікацыя
Не вертыфікаваныНадзейнасць
Не надзейныРазмяшчэннеРосія
МоваІншая
Дата стварэння каналаЧерв 03, 2023
Дадана ў TGlist
Лют 11, 2025Прыкрепленая група
Апошнія публікацыі ў групе "КПД"
16.04.202518:07
Старческий склероз - это не болезнь, а фундаментальное ограничение кожаных мешков на размер контекстного окна.
12.04.202509:15
ExLlamaV3
[Репозиторий][Чекпоинты]
На этой неделе turboderp выпустил 3-ую версию своего фреймворка для инференса LLM.
На данный момент либа находится на стадии разработки:
📌 Есть куда расти в плане оптимизации (неоптимальная утилизация на Ampere GPU)
📌 AMD GPU (если у кого есть такие) не поддерживаются
📌 Планируют накатить интеграцию с FlashInfer
📌 На данный момент поддерживаются только Llama, Qwen, Gemma2, Mistral архитектуры.
Прошлая версия ExLlama в качестве метода квантизации брала GPTQ, но в этот раз за основу взяли тяжелую артиллерию среди низкобитных методов квантизации - адаптацию QTIP, тем самым гарантируя качество значительно лучше GGUF, особенно при экстремальном сжатии (в 2 и менее бит).
По перплексии качество выглядит и правда хорошо, интересно было бы оценить на других задачах.
[Репозиторий][Чекпоинты]
На этой неделе turboderp выпустил 3-ую версию своего фреймворка для инференса LLM.
На данный момент либа находится на стадии разработки:
📌 Есть куда расти в плане оптимизации (неоптимальная утилизация на Ampere GPU)
📌 AMD GPU (если у кого есть такие) не поддерживаются
📌 Планируют накатить интеграцию с FlashInfer
📌 На данный момент поддерживаются только Llama, Qwen, Gemma2, Mistral архитектуры.
Прошлая версия ExLlama в качестве метода квантизации брала GPTQ, но в этот раз за основу взяли тяжелую артиллерию среди низкобитных методов квантизации - адаптацию QTIP, тем самым гарантируя качество значительно лучше GGUF, особенно при экстремальном сжатии (в 2 и менее бит).
По перплексии качество выглядит и правда хорошо, интересно было бы оценить на других задачах.


10.04.202510:44
Метод
Современные LLM видали всякое в процессе своего обучения, но прямых указаний на то, что в конкретном месте можно распараллелиться и разбить задачу на части, которые можно решать независимо скорее всего особо не встречали 🤔.
Тем не менее, рассчитывая на то, что современные модели достаточно умны, подав подходящую инструкцию и организовав нужным образом KV-кэш, можно рассчитывать на продуктивную коллаборацию потоков.
Благодаря RoPE позиционным эмбеддингам можно задавать произвольные позиции токенам в последовательностях, не меняя расположение токенов в KV-кэше в физической памяти.
Организовать кэш можно следующим образом:
📌 Interleaved layout. Процессы по очереди пишут общую память и видят чередующиеся шаги друг друга в прошлом.
📌 Contiguous layout. Процессы видят кэш другого процесса непрерывным блоком в прошлом.
📌 Combined layout. Промежуточный вариант. Процессы видят перемежающиеся шаги друг друга и текущий логический шаг рассуждения сплошным куском.
Промптинг состоит из 3 компонент:
1️⃣ Системного промпта, поясняющего LLMке, что надо работать в несколько потоков.
2️⃣ Few-shot примеры коллаборации потоков.
3️⃣ Вставка s1-like промптов, периодически спрашивающих процесс, занимается ли он полезной работой
Потенциальная польза от использования методов, что за меньшее количество прямых проходов по сети (инференс LLM memory-bound), можно прийти раньше к правильному решению, а в идеале, за счет самопроверки процессов - и поднять качество.
Эксперименты
Эксперименты прогоняли на Qwen/QwQ-32B, как на модели достаточно хорошей и влезающей легко на 1 GPU.
Подход проверяли на модифицированной версии GSM8k и наборе примеров из LIMO.
Для GSM8k сравнивается работа в 1/2/4 потока. В большинстве случаев многопроцессовый режим работает лучше стандартной генерации при фиксированном бюджете.
На LIMO разные опции Hogwild! кэша с наивным бейзлайном с выдачей ответа одним процессом в заданном формате, с early stopping промптингом и независимыми процессами (Self-consistency). Hogwild! работает стабильно лучше. Разные стратегии обработки KV-кэша близки по качеству (за исключением совсем малых бюджетов), комбинированный выглядит немного предпочтительнее альтернатив. При бюджете в 8к прямых проходов в 2 потока достигается то же качество, что и генерация одним потоком 16к токенов.
Вывод
Научно-технический процесс достиг того уровня, что LLM способны заменять даже не одного, а нескольких кожаных мешков 🧍♂. Те не менее, удачная коллаборация происходит на практике далеко не всегда - иногда процессы вроде бы договорившись, начинают все равно дублировать друг друга или просто теряются. В дальнейшем планируется развитие подхода, в частности, специальное дообучение, для улучшения взаимодействия процессов друг с другом.
Современные LLM видали всякое в процессе своего обучения, но прямых указаний на то, что в конкретном месте можно распараллелиться и разбить задачу на части, которые можно решать независимо скорее всего особо не встречали 🤔.
Тем не менее, рассчитывая на то, что современные модели достаточно умны, подав подходящую инструкцию и организовав нужным образом KV-кэш, можно рассчитывать на продуктивную коллаборацию потоков.
Благодаря RoPE позиционным эмбеддингам можно задавать произвольные позиции токенам в последовательностях, не меняя расположение токенов в KV-кэше в физической памяти.
Организовать кэш можно следующим образом:
📌 Interleaved layout. Процессы по очереди пишут общую память и видят чередующиеся шаги друг друга в прошлом.
📌 Contiguous layout. Процессы видят кэш другого процесса непрерывным блоком в прошлом.
📌 Combined layout. Промежуточный вариант. Процессы видят перемежающиеся шаги друг друга и текущий логический шаг рассуждения сплошным куском.
Промптинг состоит из 3 компонент:
1️⃣ Системного промпта, поясняющего LLMке, что надо работать в несколько потоков.
2️⃣ Few-shot примеры коллаборации потоков.
3️⃣ Вставка s1-like промптов, периодически спрашивающих процесс, занимается ли он полезной работой
Потенциальная польза от использования методов, что за меньшее количество прямых проходов по сети (инференс LLM memory-bound), можно прийти раньше к правильному решению, а в идеале, за счет самопроверки процессов - и поднять качество.
Эксперименты
Эксперименты прогоняли на Qwen/QwQ-32B, как на модели достаточно хорошей и влезающей легко на 1 GPU.
Подход проверяли на модифицированной версии GSM8k и наборе примеров из LIMO.
Для GSM8k сравнивается работа в 1/2/4 потока. В большинстве случаев многопроцессовый режим работает лучше стандартной генерации при фиксированном бюджете.
На LIMO разные опции Hogwild! кэша с наивным бейзлайном с выдачей ответа одним процессом в заданном формате, с early stopping промптингом и независимыми процессами (Self-consistency). Hogwild! работает стабильно лучше. Разные стратегии обработки KV-кэша близки по качеству (за исключением совсем малых бюджетов), комбинированный выглядит немного предпочтительнее альтернатив. При бюджете в 8к прямых проходов в 2 потока достигается то же качество, что и генерация одним потоком 16к токенов.
Вывод
Научно-технический процесс достиг того уровня, что LLM способны заменять даже не одного, а нескольких кожаных мешков 🧍♂. Те не менее, удачная коллаборация происходит на практике далеко не всегда - иногда процессы вроде бы договорившись, начинают все равно дублировать друг друга или просто теряются. В дальнейшем планируется развитие подхода, в частности, специальное дообучение, для улучшения взаимодействия процессов друг с другом.
08.04.202507:56
Релиз несколько затянулся ("Мыши плакали, кололись, но продолжали грызть кактус"), но в итоге допинали, как появилась полноценная поддержка в vLLM
Речь пока не идет о том, что можно запустить у себя на калькуляторе, и даже на consumer-grade GPU, но в одну ноду (
Модели на 🤗
-🎯 DeepSeek-R1-GPTQ-4b-128g (квантизуются все слои в трансформерных блоках)
-🎯 DeepSeek-R1-GPTQ-4b-128g-experts (квантизуются только non-shared experts)
Код 👨💻 квантизации
- MoE-Quant
compressed_tensors
, релиз квантизованных GPTQ в 4 бита моделей DeepSeek-R1 и самого кода квантизации моделей.Речь пока не идет о том, что можно запустить у себя на калькуляторе, и даже на consumer-grade GPU, но в одну ноду (
8x A100/H100
) влезает уже без приседаний и с контекстом, достаточным для reasoning задач а-ля AIME, GPQA, MATH500.Модели на 🤗
-🎯 DeepSeek-R1-GPTQ-4b-128g (квантизуются все слои в трансформерных блоках)
-🎯 DeepSeek-R1-GPTQ-4b-128g-experts (квантизуются только non-shared experts)
Код 👨💻 квантизации
- MoE-Quant
07.04.202520:14
Презентация с моей сегодняшней лекции про методы сжатия БЯМ на курсе Школы Анализа Данных Яндекса "Эффективные Модели".
В ней даю краткий обзор по существующим подходам, актуальным работам в области и некоторые общие рекомендации.
В ней даю краткий обзор по существующим подходам, актуальным работам в области и некоторые общие рекомендации.
07.04.202518:27
За наводку спасибо @snk4tr


05.04.202520:49
Сук
Даже VPN не помог(
И указание другой страны
Даже VPN не помог(
И указание другой страны
05.04.202520:46
Кстати, с квантизацией Llama 4 в оригинальной репе какой-то наеб.
Скрипт квантизации
Правда, учитывая, что это RTN квантизация, которая раскоает модель в негодность в 4-х битах, да и вроде обещают QAT модельки, может и пох.
Скрипт квантизации
quantize.py
ссылается на несуществующий quantize_impls.Правда, учитывая, что это RTN квантизация, которая раскоает модель в негодность в 4-х битах, да и вроде обещают QAT модельки, может и пох.
05.04.202520:42
В ожидании аппрува на веса Llama 4


03.04.202521:17
Qwerky-72B and 32B : Training large attention free models, with only 8 GPU's
[Блог Пост]
‼️ Attention is NOT all you need ‼️
Убийца трансформеров, новая ступень эволюции архитектур 🤩!
Если вам зачем-то приспичило отказаться от Attention, то данный рецепт предлагает решение, которое позволит вам превратить трансформер, превратить трансформер в элегантную RWKV модель.
Процедура следующая:
🤩 Берете трансформер
🤩 Заменяете Attention на RWKV
1️⃣ Сначала пытаетесь добиться того, чтобы блок RWKV воспроизвел выход исходного трансформерного
2️⃣ Потом дистиллируете логиты исходной модели (обучая только RWKV)
3️⃣ Потом еще раз дистиллируете (разморозив все)
4️⃣ Дообучаете на более длинном контексте
Бюджет дистилляции - всего-то несколько сот лямов токенов.
Таким образом получаются:
На некоторых бенчах сохраняют качество, где-то теряют до 5%. Но хоть как-то работает, и ладно. И даже, как заявляется, опережает не абы что, а GPT-3.5 turbo без единого Attention слоя.
8 GPU это не A100/H100, как вы могли подумать, а амудшные карточки с 192Gb VRAM.
[Блог Пост]
‼️ Attention is NOT all you need ‼️
Убийца трансформеров, новая ступень эволюции архитектур 🤩!
Если вам зачем-то приспичило отказаться от Attention, то данный рецепт предлагает решение, которое позволит вам превратить трансформер, превратить трансформер в элегантную RWKV модель.
Процедура следующая:
🤩 Берете трансформер
🤩 Заменяете Attention на RWKV
1️⃣ Сначала пытаетесь добиться того, чтобы блок RWKV воспроизвел выход исходного трансформерного
2️⃣ Потом дистиллируете логиты исходной модели (обучая только RWKV)
3️⃣ Потом еще раз дистиллируете (разморозив все)
4️⃣ Дообучаете на более длинном контексте
Бюджет дистилляции - всего-то несколько сот лямов токенов.
Таким образом получаются:
- Qwerky-QwQ из Qwen/QwQ
- Qwerky-72B Qwen/Qwen-2.5-72B-Instruct
На некоторых бенчах сохраняют качество, где-то теряют до 5%. Но хоть как-то работает, и ладно. И даже, как заявляется, опережает не абы что, а GPT-3.5 turbo без единого Attention слоя.
8 GPU это не A100/H100, как вы могли подумать, а амудшные карточки с 192Gb VRAM.
01.04.202509:45
Я
DeepSeek-V3-0324
Придумай шутку про Сэма Альтмана и AGI. Шутка должна быть очень тонкой и остроумной, прямо чтобы разрывало от смеха.
DeepSeek-V3-0324
Тончайшая шутка для ценителей:
"Сэм Альтман пообещал, что AGI будет 'выравнивающим' для человечества. Видимо, поэтому совет директоров сначала 'выровнял' его должность до нуля, а потом обратно до единицы. Квантовая суперпозиция CEO!"
Разбор остроты (для тех, кто хочет смеяться осознанно):
Игра на двойном смысле "alignment" — термин из AI safety (чтобы ИИ был безопасным) vs. буквальное "выравнивание" (как в увольнении/возвращении).
Квантовая шутка — отсылка к тому, что его статус был одновременно и "0" (уволен), и "1" (на посту), пока не "коллапсировал" в реальность.
Сабж для гиков — только те, кто следил за драмой в OpenAI, оценят весь юмор.
Альтернативный вариант (ещё чернее):
"AGI сможет решить проблему голода, кризис энергии и даже alignment... Но вот договориться с советом директоров — это уже задача уровня ASI."
(ASI = Artificial Superintelligence, следующий уровень после AGI)
P.S. Если не разорвало — возвращаю диплом остроумия в бюро! 😉
30.03.202507:39
Метод и эксперименты
Напомню, что OLMo - это полностью открытый проект по обучению больших языковых моделей с открытым исходным кодом и выложенными промежуточными чекпоинтами.
Давным-давно
Авторы взяли веса моделей (
Исследователи делают гипотезу, что данное явление, следствие повышенной чувствительности параметров к шуму и пертурбациям.
Дабы проверить данную гипотезу, авторы обучают на корпусе С4 модели от 15M до 90M параметров (с подвыборками размером от 4B до 128B токенов).
Сначала авторы исследуют зависимость лосса модели от времени обучения при фиксированной величине пертурбаций параметров гауссовым шумом. Первоначально, лосс модели не сильно меняется даже при большой величине шума. Но начиная с какого-то момента при сильном зашумлении лосс “зашумленной” модели начинает возрастать, несмотря на то, что качество исходной модели монотонно улучшается. То есть просадка модели, вызванная шумом, растет быстрее, чем улучшается модель.
Дообучение, конечно, сильно отличается от добавления гауссового шума, но тем не менее оказывается, что на некоторых датасетах при лернинг рейте побольше начиная с какого-то момента качество падает ↘️.
Далее авторы пробуют уменьшать шаг обучения, чтобы учесть большую чувствительность параметров модели, и это помогает на ID (in domain) задачах, но качество на OOD (out of domain) все равно может ухудшаться при дальнейшем обучении.
Затухающее расписание шагов обучения откладывает проблему на более позднее время, но не решает ее полностью.
Далее авторы рассматривают простую линейную модель: таргет генерируется линейным слоем, а обучается композиция двух слоев без активаций, где наблюдается тот же самый эффект - растущая чувствительность весов модели к зашумлению. В процессе обучения постепенно выучиваются все меньшие и меньшие сингулярные значения целевой матрицы, и в тот момент, когда шум превосходит одно из них, ошибка может начать расти.
В конце авторы вспоминают, про работы из RL и “пластичность”, комментируя , что обнаруженное явление имеет по всей видимости ту же самую природу.
Вывод
Довольно любопытное и интересное наблюдение. Для полноценной валидации требуется репродукция другими командами ибо результат может быть обусловлен такими нюансами как детали оптимизации, архитектуры, mixed-precision настроек и выбора данных. Потенциально еще причина может быть в специфике оптимизации Adam-oм или стремлении модели неограниченно наращивать логиты вероятностей для оптимизации кросс-энтропии. Использование другого оптимизатора или регуляризации (например, SAM) вероятно способно предотвратить проблему. Было бы интересно еще проверить имеет ли место эффект в других задачах: т.е будет ли ухудшаться качество vision foundation моделей (
Напомню, что OLMo - это полностью открытый проект по обучению больших языковых моделей с открытым исходным кодом и выложенными промежуточными чекпоинтами.
Давным-давно
в одной далекой Галактике
было показано что при фиксированном количестве FLOPs на обучение оптимальное качество достигается при отношении количества токенов (D) к параметрам модели (N) около 20. Но жирные модельки потом дорого гонять на железе, потому обыкновенно выходят далеко за данное отношение и качество все равно монотонно растет, хоть и не так быстро, как при отпимальном скейлинге. В частности, для Llama-3 отношение D/N = 2000
.Авторы взяли веса моделей (
OLMo-1B, OLMo-2-7B, LLM360-Amber
) с разных шагов обучения и обнаружили, что начиная с какого-то момента качество на некоторых задачах (AlpacaEval, ARC (не AGI), PiQA
) при дообучении начинает убывать. При этом качество базовой модели непрерывно растет. Для 7B модели при этом такого явления не наблюдается, так как модель, по всей видимости еще не успела перейти в режим “перетренированности”. Исследователи делают гипотезу, что данное явление, следствие повышенной чувствительности параметров к шуму и пертурбациям.
Дабы проверить данную гипотезу, авторы обучают на корпусе С4 модели от 15M до 90M параметров (с подвыборками размером от 4B до 128B токенов).
Сначала авторы исследуют зависимость лосса модели от времени обучения при фиксированной величине пертурбаций параметров гауссовым шумом. Первоначально, лосс модели не сильно меняется даже при большой величине шума. Но начиная с какого-то момента при сильном зашумлении лосс “зашумленной” модели начинает возрастать, несмотря на то, что качество исходной модели монотонно улучшается. То есть просадка модели, вызванная шумом, растет быстрее, чем улучшается модель.
Дообучение, конечно, сильно отличается от добавления гауссового шума, но тем не менее оказывается, что на некоторых датасетах при лернинг рейте побольше начиная с какого-то момента качество падает ↘️.
Далее авторы пробуют уменьшать шаг обучения, чтобы учесть большую чувствительность параметров модели, и это помогает на ID (in domain) задачах, но качество на OOD (out of domain) все равно может ухудшаться при дальнейшем обучении.
Затухающее расписание шагов обучения откладывает проблему на более позднее время, но не решает ее полностью.
Далее авторы рассматривают простую линейную модель: таргет генерируется линейным слоем, а обучается композиция двух слоев без активаций, где наблюдается тот же самый эффект - растущая чувствительность весов модели к зашумлению. В процессе обучения постепенно выучиваются все меньшие и меньшие сингулярные значения целевой матрицы, и в тот момент, когда шум превосходит одно из них, ошибка может начать расти.
В конце авторы вспоминают, про работы из RL и “пластичность”, комментируя , что обнаруженное явление имеет по всей видимости ту же самую природу.
Вывод
Довольно любопытное и интересное наблюдение. Для полноценной валидации требуется репродукция другими командами ибо результат может быть обусловлен такими нюансами как детали оптимизации, архитектуры, mixed-precision настроек и выбора данных. Потенциально еще причина может быть в специфике оптимизации Adam-oм или стремлении модели неограниченно наращивать логиты вероятностей для оптимизации кросс-энтропии. Использование другого оптимизатора или регуляризации (например, SAM) вероятно способно предотвратить проблему. Было бы интересно еще проверить имеет ли место эффект в других задачах: т.е будет ли ухудшаться качество vision foundation моделей (
CLIP/SigLIP
) на downstream при очень продолжительном обучении?30.03.202507:34
Overtrained Language Models Are Harder to Fine-Tune
[Статья] [Где код, Билли?]
Введение
Во многом успех современного глубокого обучения обусловлен масштабированием моделей и времени обучения. Стандартный пайплайн обучения включает в себя предобучение на большом объеме данных с последующим дообучением на куда меньшем количестве примеров высокого качества.
В текущей практике обыкновенно качество базовой модели напрямую транслируется в качество дообученной на инструкциях. А так как качество базовой монотонно растет, то кажется логичным продолжать дальнейшее наращивание бюджетов обучения.
Однако группа исследователей (часть из них ранее засветилась в Scaling Laws for Precision) обнаружила, что начиная с какого-то момента чекпоинты OLMo начинают проседать по качеству при файтьюнинге, решила поглубже исследовать данный вопрос и найти какое-то объяснение явлению “перетренированности” 💪.
[Статья] [Где код, Билли?]
Введение
Во многом успех современного глубокого обучения обусловлен масштабированием моделей и времени обучения. Стандартный пайплайн обучения включает в себя предобучение на большом объеме данных с последующим дообучением на куда меньшем количестве примеров высокого качества.
В текущей практике обыкновенно качество базовой модели напрямую транслируется в качество дообученной на инструкциях. А так как качество базовой монотонно растет, то кажется логичным продолжать дальнейшее наращивание бюджетов обучения.
Однако группа исследователей (часть из них ранее засветилась в Scaling Laws for Precision) обнаружила, что начиная с какого-то момента чекпоинты OLMo начинают проседать по качеству при файтьюнинге, решила поглубже исследовать данный вопрос и найти какое-то объяснение явлению “перетренированности” 💪.


Рэкорды
21.04.202523:59
2.2KПадпісчыкаў11.02.202517:37
100Індэкс цытавання25.03.202523:59
1.7KАхоп 1 паста29.03.202523:59
723Ахоп рэкламнага паста20.03.202514:37
18.82%ER25.03.202523:59
80.79%ERRУвайдзіце, каб разблакаваць больш функцый.