Telegram Web Link
Better & Faster Large Language Models via Multi-token Prediction
[Статья] [Кода нет, но есть модели]

Введение

Раз уж пост вышел на Love. Death. Transformers. и братва требует пояснений, разберем.

За последние несколько лет мы наблюдали несколько качественных скачков возможностей LLM. Однако в основе их работы все еще (преимущественно) лежит задача предсказания следующего токена.

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

Дабы повысить эффективность инференса предлагается незамысловатое решение - предсказывать несколько токенов за раз. На самом деле такое уже было еще в далеком 2020-м году, и в сценарии дообучения однотокенной модели (Medusa). Заслуга авторов из Меты в том, что они исследовали разные варианты предсказания токенов для моделей разного размера.
👍7
Метод

Архитектура следующая - есть трансформерная тушка и несколько голов, каждая из которых предсказывает k-ый следующий токен (для головы с индексом k). Если я правильно понял, эти головы на самом деле преобразуют эмбеддинг перед подачей в unembedding матрицу (из размерности модели в размер словаря), а сама unembedding матрица общая для всех токенов.

Обучают на стандартный кроссэнтропийный лосс.

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

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

Обучают семейство моделей размером от 300M to 13B параметров на датасете из ~100B токенов какого-то кода. Валидируют на MBPP, HumanEval, APPS - сравнительно простых задачах про код. Пробуют обучать на сырых байтах и словаре из 32к токенов.

На маленьких моделях предсказание нескольких токенов вперед работает плохо, но начиная с какого-то размера (~3B) становится лучше по бенчам.

4 головы отпимальны по качеству для словаря в 32к токенов (8 для байтов).

Далее метод проверяют в сценарии дообучения и сравнивают 3 варианта:
⚡️Дообучение на предсказание 1 токена вперед, для модели обученной предсказывать 1 токен вперед
⚡️Дообучение на предсказание 1 токена вперед, для модели обученной предсказывать 4 токена вперед
⚡️Дообучение на предсказание 4 токена вперед, для модели обученной предсказывать 4 токена вперед

Оказывается, что второй вариант работает лучше всего почему-то.

Multi-token prediction работает не очень на multiple-choice задачах. Вероятно потому, что там требуется выдать всего один или немного токенов.

Потом тестируются на синтетике - Induction Heads, арифметике многочленов и наблюдают некоторый прирост качества, который объясняют тем, что в таких задачах полезно смотреть слегка наперед.

Очевидный практический плюс от многотокенного предсказания - ускорение 🚤 инференса в 3 раза на BPE токенах и около 6 на байтах.

Вывод

Mutli-token prediction выглядит как естественная и рабочая история. Тем более что в нашумевшем DeepSeek-V3 (где использовалась модифицированная версия метода с трансфорнеыми блоками на каждый новый токен) данная стратегия тоже отлично завелась. Вероятно, она будет стандартной в будущих моделях. Ждем 🦙-4, Qwen-3?
🔥3
Не проплаченной рекламы пост (от @transformerslovedeatch).

Стартап в области безопасности ИИ ищет инженера LLM (Оптимизация и RL Alignment)

Чем предстоит заниматься.

⭐️ Дообучение и Оценка Sota llm, аттаки на blackbox модели
⭐️ Улучшение RL для атак на модели, настройки моделей (PPO, RLHF, стабильность обучения).
⭐️ Бенчмаркинг и оценка качества моделей (ELO-метрики, alignment).
⭐️ Оптимизация инференса (vLLM, SGLang, TRT).

Требования.

🪄 Опыт работы с LLM (архитектуры, RL, alignment).
🪄 Знание PyTorch/JAX.
🪄 Реальная практика с RL методами (DPO, RLHF — плюс).
🪄 Опыт с системами инференса (vLLM, kuber, docker).
🪄 Публикации в NeurIPS/ICML/ICLR и др. — сильный плюс.

Преимущество

Экспертиза в байесовской оптимизации, эволюционных алгоритмах, гиперпараметрическом поиске, автоматической оптимизации промптов.

Условия

⚡️Зарплата: 80K–130K usd + опционы.
⚡️Релокация в Париж🥐, полная занятость.
⚡️Работа с передовым стеком (AI research, model alignment).

Форма для отклика
https://forms.gle/z45WwdBTRHrd8inM9
👍71
QuEST: Stable Training of LLMs with 1-Bit Weights and Activations
[Статья][Код]

Введение

Уважаемые коллеги из IST, в частности, @black_samorez_channel выпустили статью про стабильное обучение моделей с квантизованными весами и активациями.

Статей с той же аббревиатурой пруд пруди на архиве:
- Вот
- Вот
- Вот
- И вот

Но эта - особенная!

Ранее уже неоднократно поднимался (в том числе и на этом канале) вопрос о том, в какой точности оптимально учить модель (веса и активации), дабы получить наилучшее качество при заданном размере (через PTQ или QAT). Ранее утверждали, что 6-7 бит оптимально при квантизации весов и активаций в INTx/FPx. Но сама процедура была незамысловата, и нет гарантий, что нельзя пробить существенно Парето-фронт. Свежие результаты (смотри краткий обзор на gonzo-ml) показывают, что в fp4 тоже можно эффективно обучать.

В данной же статье авторам удается достичь Парето-оптимальности в W3A3/W4A4 и стабильного обучения в W1A1 😮 (уже не оптимального, но на одном уровне с fp16).
👍2
Метод

Основным затруднением при оптимизации весов и активаций в низкой точности является высокая степень шума. Напомню, что операция квантизации недифференцируема, и дабы все можно было оптимизировать градиентными методами применяют трюк имени Бенджио под названием STE (небось, тоже спиздил у Шмидхубера) , где градиент просто пробрасывается через недифференцируемую операцию (как будто вместо нее стоит функция y=x). Но при низких битностнях, такая оценка сильно расходится от истинного градиента и не сходится нормально.

Авторы формулируют задачу оптимизации STE, как минимизацию между оцененным псевдоградиентом и истинным. Предполагая гладкость функции потерь по весам, можно оценить ошибку градиента, как константа на ошибку квантизации весов.
Веса модели разделяют на 2️⃣ группы - с ошибкой квантизации ниже и выше некоторого порога. На шаге оптимизации учитывают только градиенты от весов с ошибкой ниже заданного порога, ибо вторые как раз и вносят шум и нестабильность в обучение.

Далее, дабы работать с более регулярным распределением весов/активаций, которое проще квантизовать, применяют пару трюков:

1️⃣ Чтобы привести распределение в более удобо квантизуемый вид применяют известный старым читателям канала трюк - вращения Адамаровыми матрицами как весов и активаций. В результате получают что-то близкое к гауссиане.
2️⃣ Дабы привести все приблизительно к N(0, 1) применяют RMS нормализацию к результату шага 1. А для N(0, 1) можно уже численно найти оптимальный скейлинг фактор для решетки квантизации и пользоваться им.

То есть в итоге алгоритм выглядит следующим образом:

🎯 На прямом проходе вращаем и нормализуем веса, сохраняя Адамаровы матрицы
🎯 На обратном проходе применяем обратное Адамарово преобразование и маскируем градиент

В Ablation показывают, что trust estimator (отбрасывание градиентов по шумным весам) в связке с Адамаровыми вращениями дает хорошую близость с истинным градиентом, в то время как vanilla STE и без Адамара корреляция низкая.
👍4
Эксперименты

Обучают семейство моделей размером от 30 до 800М параметров архитектуры 🦙-2 на C4 с более-менее стандартным рецептом обучения. По умолчанию отношение количества данных к числу параметров D/N=100.

Как меру качества берут перплексию на отложенной выборке.

QuEST работает лучше, чем PACT и LSQ бейзлайны.

Далее фитируют scaling law, который отличается от оригинального из статьи про Шиншиллу фактором eff(P) - поправкой на битность параметра (eff(P) = 1 для fp16). Исходя из эмпирических графиков лосса для моделей разного размера и битности, получают Парето-оптимальность в 4-х битах. 4 битный параметр эффективно равен 0.7 fp16, но модель-то при этом в 4 раза меньше, отсюда выигрыш в 2.7 раз по эффективности.

Метод пробуют на FP4 и 2:4 sparsity + INT4, где все тоже неплохо заводится.

В ablation показывают, что Адамаровы вращения дают некоторый прирост качества на W1A1 и W2A2, при этом лишь немного замедляя инференс.

Вывод

Как мне кажется, довольно обнадеживающий экспериментальный результат. Все больше и больше подтверждений тому, что следует с самого начала учить в низкой точности дабы нищеброды потом уже не просили униженно GGUF, GPTQ или AWQ кванты. Интересно, можно ли пробить ниже еще порог Парето-оптимальности по битностям весов/активаций или мы упираемся уже в некий потолок? Ждем экспериментов на большем масшабе. Глядишь Meta, Qwen или DeepSeek порадуют.
7
Рай 😇 выглядит так.

(Не мне привалило такое счастье)
😱21😇9😁4🔥3😢3🤯1
Matryoshka Quantization
[Статья]
[Код есть, но мы вам его не покажем]

Введение

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

Команда из Глубокого Разума 🧠 на днях выкатила статейку по квантизации с примечательным названием Matryoshka Quantization 🪆, которая за один присест готовит квантизованные модельки в 2,4 и 8 бит.

Примечательно, что один из авторов, Kusupati, ранее публиковал другую работу про матрешки — Matryoshka Representation Learning.
👍5🫡1🗿1
Метод

MatQuant по постановке ,поверх оптимизируемых методов квантизации, с обучаемыми непрерывными или дискретными параметрами.

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

Но если просто огрублять, скажем , int8 квантизацию, работает не очень, поэтому предлагается совместно оптимизировать разные битности одновременно в одном батче с разными весами.

MatQuant применяют поверх OmniQuant, в котором оптимизируются скейлы и biasы в квантизации через поблочную дистилляцию, и QAT, которая суть просто обучение (с кроссэнтропийным лоссом) с STE через недифференцируемую операцию квантизации.

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

Метод валидируют преимущественно на Gemma 2 (2b и 9b) моделях и Мистрале 7b. Полагаю, что 🦙 и Квены не рассматривают из политических соображений (негоже поганых парнокопытных от Меты лапать, как и китайскую продукцию).

OmniQuant оптимизируют на 10, 20M токенах из C4, QAT на 100 M токенах. Причем в большинстве экспериментов квантизуют только FFN.

Качество оценивают по перплексии и 0—shots на lm-eval.

Наивное стругание из высокой битности работает сильно плохо на 2 битах, оптимизация под конкретную битность получше (когда храним много моделей), но все равно не очень, предложенный подход еще чуть получше.

Просадки довольно значительные — 13, 15% для 2b, 6-12% для 9b Gemma 2 модели. Если бы квантизовались все слои, 2 бита были бы Парето—оптимальными (ибо точность квантизованной 9b модели равна несжатой 2b), но, увы, нет.

Полагаю, что подобный результат можно выжать более дешевыми QuIP (без решетки) и 1—мерным HIGGS, как и EfficientQAT.

В ablation показывают, что совместная оптимизация в разными битностями накидывает немного в качестве. Веса лоссов при разных битностых перебирают по сетке.

При квантизации Attention слоев метод тоже лучше бейзлайнов, но просадки становятся еще значительнее с 74 до 47% (остальные методы работают чуть лучше рандома в 2 битах).

Выводы

Название работы красивое, и мотивация хорошая — но результаты все же не слишком впечатляют. Также утверждение, что они первые, кто об этом задумался, не соответствует действительности — была такая работа Any Precision LLM (Oral прошлого ICLR), где разные битности получали через SqueezeLLM. Кроме того, вложенные представления разной точности можно получать через Residual Quantization.
👍3👀1
Как получить SOTA метод квантизации в 2 и менее бит?
🤝29😁7
Блог unsloth про квантизацию DeepSeek-R1

Вот как надо евалить модельки, а не все эти ваши никчемные MMLU, перплексия, lm-eval-harness.
😁18🔥1
Кроме того, еще оценивают качество модели по тому, может ли квантизованная DeepSeek-R1 написать FlappyBird в Pygame с 3-х попыток.
20😁1
Large Language Diffusion Models
[Статья] [Страничка проекта] [Код и модели божатся выложить через 2 недели]

На текущий момент авторегрессионные модели занимают доминирующее положение среди языковых моделей, а диффузия блистает в других приложениях. Ранее уже предпринимались попытки создания языковых моделей на основе диффузионных процессов (https://arxiv.org/abs/2406.07524, https://arxiv.org/abs/2409.02908, https://arxiv.org/abs/2406.04329), но получить что-либо конкурентоспособное тем же флагманским открытым моделям - не удавалось.

В данной работе коллектив авторов из Поднебесной 🇨🇳 произвел не свет masked диффузионную модель, с качеством якобы на уровне Llama-2/3. И модель называют не абы как, а в честь легендарной автомобильной марки - LLaDA.
🫡18😁11
Метод

Предложенный процесс не является диффузией в привычном понимании, а маскированием с разной степенью зашумления [MASK] токенами.

Задача языкового моделирования обычно оперирует в терминах дискретных токенов.
Имея некий исходный текст, предлагается “зашумить” некую долю (от 0 до 1) токенов, заменив их на [MASK], а задача модели - предсказать зашумленные токены. Прямо как старый добрый BERT, только доля зашумленных токенов переменная.

Обучение состоит из pretrain и SFT:
🌟На pretrain зашумляют токены на любых позициях.
🌟На SFT только в ответе. Промпт не трогают.

RL, как я понял, пока не осилили.

Инференс выглядит следующим образом - стартуя с большого количества [MASK] токенов, предсказываем токены, которые стоят на этой позиции. Прогон за один раз работает не очень, потому делаем процедуру итеративно, снова зашумляя уже меньший процент [MASK] токенов . Выбирать токены можно случайно, а можно брвть те, где модель наиболее уверена, а остальные снова зашумлять перед следующей итерацией.

Чем больше шагов диффузии (маскирования/демаскирования) - тем ожидается, что лучше качесво.

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

Обучают две модели размера 1B и 8B на некотором собственноручно собранном корпусе данных. Замеряют на стандартном наборе задач из lm-eval и HumanEval (кодинг бенче).

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

Полученная 8B модель посильнее Llama 2 7B, но все же уступает Llama 3 8B и Qwen2.5 7B. Справедливости ради стоить заметить, что обучали всего на 2.7T токенах, что по нынешним меркам немного, всего лишь 0.13 миллионов H800 GPU часов.

Авторы утверждают, что в плане оценки правдоподобия диффузионки сильно менее эффективные по сравнению с авторегрессионными, но бенчмарки от этого не сильно страдают,

И напоследок показывают, что диффузионные модели гораздо лучше умеют предсказывать прошлое (прошлые строки на основе последующих в стихах), чем авторегрессионные LLM. Непонятно зачем, правда.

Вывод

Попытки уйти от стандартной парадигмы всегда выглядят интересно. Пока еще сильно далеко от SOTA LLM, да и протокол замеров не исчерпывающий, но тем не менее, кажется, что история сколь-либо жизнеспособная. Сильно не хватает замеров скорости, и экспериментов по trade-off между скоростью генерации и качеством результатов. Ждем выпуска моделей и кода, дабы самим заценить.
👍2
Сообщество сегодня обсуждает релиз от Grok3 от [MASK], но в этот прекрасный произошло еще одно - не менее важное и знаменательное событие.

Нас уже перевалило за 2к! 🎉

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

Спасибо всем за то, что вы здесь, за комментарии и ссылки на релевантные статьи)

Желаю и далее в силу мер и возможности публиковать обзорчики, мемасики 😁 про сжатие и не только.
27👍13🔥8🌚1💋1
- Claude 3.7 Sonnet, что ты можешь делать?
- Могу ризонить.
- А что еще?
- Могу не ризонить.
👾32🔥5
В качестве несложного упражнения читателю предоставляется самому написать кернел.

Ишшуя
😁42🥴52🔥21🤡1
[Блог]

Вот недавно мы обсуждали LLaDA и жизнеспособности диффузионной парадигмы, а тут Inception Labs обьявили о создании Diffusion LLM, которая якобы способна бодаться по качеству (в бенчах приводят только код) с вполне себе сильными closed-source LLM (без рызонинга).

При этом она якобы на порядок быстрее небольших авторегресионных LLM, давая космические более 1000 токенов в секунду на одной H100, а не специализированных чипах.

Утверждается, что оно могет еще и в RAG, tools use и агентность.

У них и чатик есть, можно потыкаться.
🔥16👍21
Judge Decoding: Faster Speculative Sampling Requires Going Beyond Model Alignment
[Статья][Кода нет]

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

Команда исследователей из 00, среди которых небезызвестный автор канала @ai_newz, представила метод, ускоряющий спекулятивный декодинг за счет оценки важности текущего токена и принятия большего числа по сравнению с базовым подходом, при этом практически без просадки в качестве.
👍62🔥1
Введение

Есть большие LLM, а есть не очень большие. Большие обычно работают лучше при прочих равных, но требуют большей памяти, объема вычислений и времени на шаг инференса.

Инференс LLM обыкновенно memory bound - скорость упирается во время загрузки/сгрузки весов из GDDR/HBM памяти в кэши, а не сами вычисления. То есть за один трансфер памяти потенциально можно было бы делать больше арифметических операций без существенного замедления.

При этом в большинстве случаев разница между более слабой моделью (называемой draft, т,е ‘черновой”) и некой большей (таргет) моделью невелика.

Отсюда возникает идея - генерировать много токенов один за другим более слабой моделью (Llama-3.1-8B), а затем проверять более “жирной” (Llama-3.1-405-B) с тем же словарем, (последнее требование не обязательно, но упрощает постановку). За один шаг можно “проверить” несколько токенов малой модели, и если все предсказания совпали (то есть наиболее вероятные токены у большой модели такие же, как у меньшой), — принять все, иначе - до последнего принятого токена.

Таким образом можно добиться генерации, идентичной выдаваемой большой моделью, за меньшее время. Данную идею предложили еще достаточно давно в статье Fast Inference from Transformers via Speculative Decoding еще в далеком 2022.

Но, есть существенный недостаток. На практике предсказания драфт-модели и таргет-модели расходятся очень быстро, всего через несколько токенов, поэтому слишком большого ускорения достичь не удается - обычно в районе 1.5-2x.

При этом для получения правильного ответа совершенно необязательно, чтобы предсказания каждого токена у меньшей модели совпадали с большей. Она может сказать то же самое, но другими словами, используя синонимы, например.
2025/07/08 19:05:37
Back to Top
HTML Embed Code: