Qwen3-Next, или Как RNN эволюционировали в гибридные linear attention

В эпоху агентов, ризонинга и мультимодальности длинные контексты начинают играть всё более значимую роль. Привычный нам softmax attention из-за своей квадратичной зависимости от длины контекста сильнее влияет на эффективность обучения и инференса.

Для решения проблемы квадратичности попробовали обратиться к RNN. Так появился новый класс аттеншнов — linear attention. Как следует из названия, они зависят от длины контекста линейно, что делает их в разы эффективнее на больших контекстах. Но модели, которые используют только linear attention, плохо справляются с retrieval-задачами (ещё вернёмся к этому вопросу в посте).

Объединив лучшее из двух подходов, ML-разработчики получили гибриды. Сегодня разберём, как они устроены, на примере одной из самых хайповых современных моделей — Qwen3-Next.

Вспомним, что представляют из себя современные линейные аттеншны. По сути, это RNN, только вместо векторного состояния — матричное, побольше. Ещё в линейных аттеншнах есть механизмы забывания — гейты. Вместо того, чтобы как полный аттеншн хранить весь прошлый контекст в KV-cache (который растёт с увеличением длины последовательности), линейные аттеншны учатся сжимать весь контекст в стейт фиксированного размера. А гейты помогают лучше регулировать, что запомнить и забыть.

Но бесплатный сыр бывает только в мышеловке: из-за сжатия контекста в стейт фиксированного размера в линейных аттеншнах нет доступа ко всей исходной последовательности. То есть, точно скопировать рандомный токен не получится. Поэтому-то и страдают задачи retrieval и копирования. Но чтобы справиться с этим, достаточно нескольких слоёв с полным атеншеном.

Вернёмся к Qwen3-Next. Рассмотреть её архитектуру можно на схеме. Три четверти слоёв — линейный атеншен в лице Gated DeltaNet. 3/4 — довольно распространенная пропорция. Также в этой архитектуре проапгрейдили обычный полный аттеншн с помощью swiglu-like-гейтинга. Это улучшило качество и решило проблему с attention sink.

Partial Rope, как следует из названия, «крутит» только часть хидденов головы. В Qwen3-Next только четверть хидденов головы получает информацию о позиции в последовательности. По словам авторов, это позволяет лучше экстраполироваться при увеличении контекста.

Zero-Centered RMSNorm математически эквивалентен обычному RMSNorm. Единственное отличие — веса инициализируются нулями, а не единицами, и потом на форварде к весу прибавляется 1. Формально это одно и то же, но из-за того, что веса теперь у нуля, где выше гранулярность float’ов, численная стабильность улучшается. Ещё более важно, что это позволяет использовать WD для весов в RMSNorm: некоторые веса становились слишком большими, добавление WD улучшило стабильность обучения.

Sparsity очень высокая — 1/50. Для масштаба, у DeepSeek она составляет 1/32, у Qwen235B — 1/16. Из 80B параметров активны только 3B.

Познакомиться с Qwen3-Next поближе можно на HuggingFace. А ещё недавно вышла новая линейка моделей, основанная на той же архитектуре — Qwen3.5. В текущем опенсорсе это SoTA.

Разбор подготовил Даниил Сухой

Душный NLP
1 900 просмотров · 29 реакций Открыть в Telegram · Открыть пост на сайте
Quartet II — обучение в NVFP4 с точными несмещёнными градиентами

В последние годы наблюдается тренд на снижение точности, в которой обучают модели. Если ещё недавно использовали преимущественно BF16, то в 2024-м, например в DeepSeek-V3 — уже FP8, а в 2025-м переходят и на FP4. Снижение точности, однако, требует применения трюков. Сегодня разберём статью, в которой описывается новый метод обучения в NVFP4.

Прошлым летом мы придумали Quartet — первый метод обучения в FP4. Он использовал формат данных MXFP4, который поддерживается на уровне железа в GPU, вроде NVIDIA Blackwell. Quartet использовал случайные вращения тензоров для борьбы с аутлаерами и показал, что FP4 обучение даёт выигрыш при фиксированном бюджете относительно FP8.

Но есть и другой формат, основанный на FP4, — NVFP4, который NVIDIA создала специально для LLM. Он использует более точные FP8-скейлы. На его основе прошлой осенью NVIDIA предложила собственный, более точный рецепт обучения в FP4. Одной из его фишек было использование стохастического округления (stochastic rounding, SR) на backward pass — методики, которая делает оценки градиентов несмещёнными ценой более высокого уровня их шума. Мы задались вопросом: есть ли способ достичь несмещённых оценок без шумного SR в FP4?

Оказывается, вращения, которые помогали нам с аутлаерами, могут помочь и с несмещённостью. Квантизуя случайно повёрнутый тензор, мы усредняем ошибку по всем возможным направлениям, и получившаяся оценка будет коллинеарена оригинальному тензору. Отнормировав квантизованный тензор, коллинеарность можно превратить в несмещённость. Но FP8-скейлы не позволят просто так отнормировать квантизованный тензор — они слишком грубые, чтобы впитать точную перенормировку порядка 0,94~1,06.

Какой выход? Вшить эти скейлы в FP8 с помощью SR. Обратите внимание, что делается это не на каждый FP4-элемент, как в случае с методом NVIDIA, а только в FP8-скейлы, что даёт ошибку в сто раз меньше. В итоге, полная ошибка получается вдвое меньше, чем у простого SR. Мы объединили метод с более точной квантизацией на forward pass и получили Quartet II — SOTA обучения в NVFP4.

Таким образом, случайные вращения не просто борются с аутлаерами, а служат важным источником несмещённости в оценке градиентов, который уменьшает ошибку и ускоряет сходимость FP4-обучения. К статье прилагаются кернелы для 5090 и B200, чтобы можно было попробовать NVFP4 на своих моделях и задачах.

Разбор подготовил Андрей Панфёров, автор канала black_samorez

Душный NLP
2 588 просмотров · 32 реакций Открыть в Telegram · Открыть пост на сайте
Bridging the Gap Between Promise and Performance for Microscaling FP4 Quantization

Новые 4-битные форматы с плавающей точкой для хранения весов и активаций, которые на уровне железа поддерживают графические процессоры NVIDIA и AMD, обещают заметное ускорение времени инференса LLM без существенной просадки качества.

Сегодня разберём первое всестороннее исследование FP4-квантизации — работу, которую инженеры Yandex Research выполнили совместно с коллегами из Institute of Science and Technology Austria, Red Hat AI и ETH Zürich.

Квантизация — это способ сократить объём памяти, необходимый для хранения массива данных. Например, выбором весов активации из ограниченной сетки значений.

Выбор сетки зависит от того, насколько равномерно распределены ваши данные. Например, у integer сетка между всеми значениями равномерная, а у floating point — более густая около нуля, но чем дальше от него, тем разреженнее. То есть, в теории для равномерного распределения отлично подойдёт integer, а для распределения Стьюдента и других распределений с тяжёлыми хвостами лучше выбрать квантование с плавающей запятой.

На практике анализ показал, что современные методы чаще всего не справляются с FP4 по двум причинам:

— Малый размер групп одновременно квантизуемых весов в формате NVFP4, видимо, делает неэффективными традиционные методы уменьшения выбросов.

— Квантизация скейлов (мультипликативных факторов) MXFP4 к степеням двойки сильно снижает точность представления весов и активаций.

В работе предлагается улучшенная версия алгоритма квантования GPTQ — MR-GPTQ, адаптированную для форматов FP4:

1. Определяем сетку квантования, эффективную для MSE: попеременно оптимизируем сетку в масштабах каждого блока и тензора. Это позволило добиться значительных улучшений для NVFP4 без вращений. А для MXFP4 с Адамаровыми вращениями некий фиксированный масштаб сетки универсален для всех моделей.

2. Изменяем порядок квантизации весов. Алгоритм GPTQ перед квантизацией переупорядочивает колонки квантизуемого тензора в соответствии с величиной диагонали матрицы Гессе (колонки соответствующие большим диагональным элементами идут первыми). Перестановка повышает точность, но во время инференса приходится ещё раз переупорядочивать каналы в тензоре активаций, что приводит к замедлению на 10-20%.

Вместо этого предлагаем определять порядок колонок статически, предпосчитывая статистики групп заранее. Так удаётся достичь почти того же качества, что и при динамической перестановке, но без замедления

3. Вращаем активации во время инференса с помощью блочно-диагональных Адамаровых поворотов. Они, с одной стороны, позволяют уменьшить ошибку кватнизации, с другой — не замедляют время прямого прогона нейронной сети.

Эти три модификации помогают учесть особенности форматов FP4 и значительно повышают точность квантования по сравнению с предыдущими подходами.

Разбор подготовил Денис Кузнеделев

Душный NLP
2 738 просмотров · 25 реакций Открыть в Telegram · Открыть пост на сайте
Conditional Memory via Scalable Lookup: A New Axis of Sparsity for Large Language Models

Сегодня разбираем статью от DeepSeek на тему модификации трансформер-архитектуры.

Мотивация

У трансформеров нет native primitive для knowledge lookup, поэтому ретривал им приходится симулировать вычислениями. Идея статьи — добавить в архитектуру явный inductive bias на ретривал через Engram-модуль и улучшить метрики.

Архитектура

Engram добавляют внутрь блока трансформера, но не во все слои, а максимум в два. Выход модуля добавляется к residual stream. В аблейшенах показали, что лучше всего вставлять Engram-модуль во 2-й слой, а комбинация 2-го и 6-го слоёв даёт более низкий validation loss.

Технически Engram-модуль представляет обучаемые словари nn.Embedding, на вход которых подаются отдельные hash'ы для 2- и 3-грамм. Также в модуле обучаются параметры: context-aware gating (вдохновленный аттеншном), свёртка по seq_len и RMSNorm'ы.

Проверяют модуль в MoE-моделях. В них есть параметры, которые не активны на forward. Allocation ratio (ρ) — это доля неактивных параметров, которая содержится в блоках экспертов; в MoE ρ=1. Параметры для Engram берут, уменьшая количество неактивных экспертов, поэтому становится ρ<1. Чтобы понять, какую долю параметров экспертов оптимально перенаправить в модуль, делают grid search, — запускают несколько претрейнов и меняют только ρ.

Как работает Engram

Работа модуля начинается с обработки входных токенов. Делают tokenizer compression: применяют детерминированные преобразования, чтобы привести токены к canonical ID. Это как стемминг или лемматизация, но для токенов.

Из последовательности токенов строят 2- и 3-граммы. Напрямую индексировать n-граммы нельзя (их слишком много), поэтому используют Hash Embeddings-подход для уменьшения коллизий в рамках небольшого словаря. Для каждой n-граммы получают хеш (вариация multiplicative-XOR), т.е. одно число. Используется несколько голов, поэтому на выходе получается несколько хешей-чисел. Это буквально индексы, по которым получают вектора из nn.Embedding, где у каждой головы и n-граммы независимые вектора — и дальше их конкатенируют.

Дальше — context-aware gating. Берут механизм сродни dot product attention: входной hidden state слоя используется как query, а к эмбеддингам применяют линейные преобразования, аналогичные W_K и W_V. В отличие от аттеншна здесь нет софтмакса, вместо него используется сигмоида, а полученные скоры поэлементно перемножаются с V.

Обучение и инференс

На обучении lookup table шардируют между девайсами, для пересылки нужных эмбеддингов используют all-to-all.

На инференсе таблицу можно вынести в RAM+disk, потому что её не нужно обновлять, только читать. Чтобы не проседал throughput, подсчёты Engram накладывают на основной forward pass: на вход модуля идут токены, значит часть эмбеддингов можно заранее преподсчитывать. В итоге для lookup table на 100B параметров потери по throughput < 3%.

Дополнительной памяти на Engram-модуль не требуется, так как параметры для него берут у неактивных экспертов MoE.

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

Минимальный лосс получается, когда четверть неактивных параметров уходит в Engram. Это протестировали на двух бюджетах FLOPs.

На большой Engram-27B-модели метрики растут не только на knowledge-intensive-задачах, но иногда ещё сильнее на reasoning, math и code. На бенчмарках с длинным контекстом тоже получаются лучшие метрики.

Также проводят sensitivity-анализ, зануляя выход Engram-модуля, и видят, что сильнее всего это бьёт по задачам, требующих factual knowledge.

Так получается, потому что у модели увеличивается effective depth: ранним слоям не нужно заниматься knowledge lookup (имитировать его), и больше слоёв теперь могут «думать».

Самыми важными компонентами Engram-модуля оказываются branch-specific fusion (свой W_K для каждой ветки в mHC-архитектуре), context-aware gating и tokenizer compression. Меньше влияют свёртка и добавление 4-граммы (при условии, что будут делить общий бюджет параметров с 2- и 3-граммами).

Разбор подготовил Никита Курдюков из Т-Банка специально для @YSDA_YR_2019

Душный NLP
3 105 просмотров · 27 реакций Открыть в Telegram · Открыть пост на сайте
Mercury — диффузионная модель для написания кода

Сегодня разберём статью о диффузионной модели Mercury. На Copilot Arena она занимала второе место по качеству и первое — по скорости.

Диффузионные модели уже зарекомендовали себя в сфере генерации изображений. Авторы сегодняшней работы, в свою очередь, предлагают модель, ориентированную на решение задач программирования. Это объяснимо: диффузионные модели не очень хорошо подходят для генерации свободных коротких текстов, а код структурирован, в нём как правило много токенов.

Существует две версии Mercury Coder — Mini и Small. Подробности о них в публикации не раскрываются: мы не знаем их параметры и размеры. Заявлено, что Mini способна обрабатывать более 1100 токенов в секунду, а Small — 700. На претрейне использовали датасет объёмом в триллионы токенов, состоящий из интернет-данных, а также реальных и синтетических данных из проприетарных источников.

Что касается архитектуры, то, по сути — это трасформер, но с иным подходом к генерации. Модель стартует с зашумлённой версии ответа и на каждом шаге параллельно поправляет много позиций, постепенно «денойзя» последовательность. Длинны контекста модели — 32 тысячи токенов с расширением до 128 тысяч.

В большинстве бенчмарков Mercury Coder показывает себя лучше опенсорсных моделей, но уступает самым крупным и известным конкурентам вроде DeepSeek, GPT и Claude (таблица 1). То же самое касается и знания разных языков программирования — Mercury лучше опенсорсных решений, но хуже закрытых (таблица 2). При этом в плане скорости и при оценке fill-in-the-middle Mercury обходит даже именитых соперников (таблица 3).

Разбор подготовил Павел Темирчев

Душный NLP
3 187 просмотров · 33 реакций Открыть в Telegram · Открыть пост на сайте
Рекурсивные языковые модели

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

Как это устроено: у модели есть промпт с описанием задачи и доступных тулов. Первый — это Python REPL. Модель может исполнить произвольный код, где в переменной prompt сохранён весь длинный промпт.

Второй тул — это вызов языковой модели на глубине 1 (depth=1) с поданным фрагментом длинного промпта. Это напоминает субагентов в агентах для написания кода (Claude Code, Codex), но есть важное отличие. Вызов llm_query живёт «внутри» REPL, а значит модель может встроить его в цикл, условие или любую другую программную конструкцию. В Claude Code или Codex субагент — это отдельный тул-колл, который модель вызывает из контекста напрямую, без программного контроля. Такая модель называется рекурсивной (RLM), и их может быть несколько в рамках одного цикла. RLM не обязательно должна быть идентична изначальной. Главное, что у неё пустой контекст.

Суть метода, предложенного авторами статьи, в том, чтобы дать модели возможность запускать себя рекурсивно в той же программной среде (изображение 1). Среди бейзлайнов авторы рассматривают вариант без самовызовов (только модель с большим промптом и REPL), summary agent (суммаризация контекста, не поместившегося в модель) и CodeAct (код плюс ретривал через BM25).

Нюансы разницы RLM и типичных кодовых агентов до сих пор вызывают дискуссии с авторами в твиттере, и хайп вокруг статьи и идеи только растёт. Примеры тут, тут и тут.

Эксперименты проводили на Qwen3 и GPT-5 (изображение 2). На бенчмарке BrowseComp+ (контекст 6–11 миллиона токенов, нужно найти один релевантный документ из тысячи и ответить на вопрос) базовые модели невозможно запустить — контекст просто не влезает. RLM здесь работает.

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

Самый показательный результат на OOLONG-Pairs. Здесь нужно сравнивать пары фрагментов, то есть сложность задачи квадратичная. Базовая модель и summary agent выдают результат около нуля. RLM с самовызовами решает эту задачу, программно организуя квадратичное число вызовов через код в REPL. Это класс задач, недоступный другим подходам.

По стоимости RLM с самовызовами зачастую сопоставима с базовой моделью, хотя со сложностью задачи стоимость растёт (изображение 3).

Разбор подготовил Иван Рубачёв

Душный NLP
3 681 просмотров · 48 реакций Открыть в Telegram · Открыть пост на сайте
Как заставить агентов делать работу над ошибками

Сегодня разбираем статью об обучении агентов. Проблема такая: реворд-модели оценивают только результат в конце траектории, а если агент сделал ошибку и исправил её, нельзя сказать, когда это произошло. Если бы у нас была такая возможность, то мы могли бы раньше направить обучаемую LLM по нужному пути. Есть способы фиксировать ошибки и делать реворд по шагам, но это дорого и сложно в реализации.

Авторы предлагают метод Agent-R, суть которого заключается в обучении агентов не на правильных траекториях, а на тех, где есть явная ошибка и её исправление. Такие траектории получаются через Monte Carlo Tree Search. Берутся пары из одной стартовой точки (инструкции): одна траектория успешная, а другая — нет. На инференсе момент расхождения должна определить сама модель, а при обучении к началу провальной траектории добавляется фраза-рефлексия, которую генерирует агент, понимая, что он ошибся (CoT). Следом «приклеивается» хвост удачной траектории и на всём этом делают SFT. Такой подход, соединеняющий рефлексии и «хороший» хвост, снижает риск склейки не связанных траекторий.

В статье выводят следующие типы траекторий:

Initial Trajectory — общий начальный префикс.
Bad Trajectory — субоптимальные действия c низкой наградой.
Good Trajectory — оптимальные действия с высокой наградой.
Revision Trajectory — траектория, в которой агент совершил ошибку и исправил её.

Для получения Revision Trajectory можно брать плохие траектории, дожидаться их финала и переписывать. Однако так не получится обучить агента ловить ошибки на лету. Вместо этого авторы заставляют модель самостоятельно анализировать траектории и пытаться определить первый шаг, где совершена ошибка. На этом месте траектория обрезается, вставляется этап рефлексии и следом — правильная траектория.

Monte Carlo Tree Search позволяет собрать много разных траекторий с одним началом. Это удобно, так как можно сравнивать хорошие и плохие продолжения. Финальный реворд используется не для обучения напрямую, а для классификации траекторий по качеству — то есть, по сути, чтобы понять, что пойдёт в SFT-датасет. У реворда есть два порога: один отделяет плохие траектории от хороших, а другой выбирает уже из хороших лучшие.

Авторы отмечают, что обучаться только на Revision Trajectory нельзя — это мешает агенту определять правильные траектории. Поэтому изначально в датасет добавляют много Good Trajectory и постепенно в процессе SFT повышают порог реворда оптимальных решений, чтобы в конце оставались только лучшие из них. Кроме того, в датасет подмешивают обычные языковые данные, что помогает агенту не забывать, чему он обучался ранее.

Эксперименты проводили на Llama-3.1-8B, которую обучили на собранных Revision Trajectory. Результаты можно посмотреть в таблице, приложенной к посту. Авторы заявляют, что исправленные траектории оказываются даже лучше идеальных.

Разбор подготовила Карина Романова

Подписывайтесь на канал Карины «что-то на DL-ском» — там познавательно и можно ставить реакт кота в парике.

Душный NLP
8 570 просмотров · 37 реакций Открыть в Telegram · Открыть пост на сайте
Seeing Eye to AI: Human Alignment via Gaze-Based Response Rewards for Large Language Models

Сегодня разберём статью о GazeReward — фреймворке, который интегрирует неявную обратную связь eye-tracking (ET) в модель вознаграждения (RM).

GPT, Llama, Claude, Gemini и другие популярные LLM отлично справляются с самыми разными задачами, но результат их работы не всегда соответствует ожиданиям пользователей. Модели часто донастраивают с помощью Reinforcement Learning with Human Feedback (RLHF), но и этот метод недостаточно хорош для точного моделирования предпочтений.

В GazeReward авторы предлагают учитывать данные о движении и фиксации человеческих глаз (eye-tracking или просто ET) в качестве дополнительного сигнала о том, как пользователи воспринимают информацию.

Для интеграции ET в RM авторы предлагают два подхода:

🔴 GazeConcat — конкатенировать ET с текстовыми эмбеддингами.
🔴 GazeAdd — добавить ET к текстовым эмбеддингам.

Архитектура фреймворка — на схеме выше. Сначала обучают отдельную модель для предсказания ET и генерируют их фичи. Потом объединяют ET-фичи с текстом, создавая различные типы комбинированных эмбеддингов. В конце — передают в качестве входных данных в RM, которую обучают по стандартной модели Брэдли-Терри.

То есть, традиционный RM с текстовым входом (комбинацией запроса и ответа) дополняют искусственной неявной обратной связью с помощью функций ET, сгенерированных по тому же тексту.

Эксперименты показали: фреймворк GazeReward помог повысить точность прогнозов о предпочтениях людей более чем на 10%. По мнению авторов, это подтверждает потенциал мультимодальных сигналов для NLP.

Разбор подготовил Карим Галлямов

Душный NLP
5 285 просмотров · 23 реакций Открыть в Telegram · Открыть пост на сайте
Превращаем decoder-only в encoder-decoder

Несмотря на то, что decoder-only-модели сейчас популярнее, encoder-decoder-модели по-прежнему остаются актуальными в некоторых задачах. В сегодняшней статье — техника адаптации предобученных decoder-only-моделей в encoder-decoder с сохранением преимуществ обоих подходов.

Суть метода: берут предобученную decoder-only и из её весов собирают encoder-decoder. В энкодере self-attention и FFN инициализируются из соответствующих self-attention и FFN исходной модели, но сам self-attention переключают с causal на двунаправленный. В декодере self-attention (он остаётся causal) и FFN тоже берутся из decoder-only (изображение 1).

Новая часть — cross-attention: если энкодер и декодер получены из одного и того же decoder-only-чекпойнта (с одинаковой конфигурацией и весами), то cross-attention инициализируют из SA. В противном случае инициализируется рандомно с дополнительным обучением в начале.

Далее авторы используют два варианта претрейн-обджектива encoder-decoder-моделей — PrefixLM и UL2 — и сравнивают их. Первый предполагает разбивку последовательностей на две равные части: первую половину текста подают в энкодер как префикс, а вторую должен генерировать декодер. Такой подход облегчает имплементацию дистилляции, где исходная decoder-only выступает «учителем». В рамках UL2 модель решает denoising-задачи: часть токенов заменяется на пропуски; в энкодер подаётся текст с пропущенными токенами, а в декодер — сами пропущенные токены. Дистилляция здесь не используется.

Авторы отмечают, что PrefixLM даёт лучшие результаты за счёт дистилляции, но у UL2-моделей оказались лучшие энкодер-представления. В целом, как показывают эксперименты, модели, полученные с помощью адаптации показывают лучшее качество, чем обученные с нуля.

Всё проверяли на Gemma 2 на 2B и 9B параметров. Сбалансированная адаптация — 2B-2B и 9B-9B — выходят на сопоставимое с decoder-only-моделями качество довольно быстро. 9B-2B растёт медленнее из-за нового cross-attention (результаты для итоговых моделей — на изображении 2).

Разбор подготовил Антон Викторов

Душный NLP
3 614 просмотров · 39 реакций Открыть в Telegram · Открыть пост на сайте
Ускорение E2E-инференса через оптимизацию KV-кэша. Часть II

В первой части разбора мы говорили о методах оптимизации KV-кэша в принципе. А сегодня речь пойдёт об одном конкретном подходе — ShadowKV.

В его основе наблюдение, что post-RoPE key cache обладает attention locality — соседние токены часто имеют высокую cosine similarity, и только небольшая часть токенов выбивается из этого паттерна. Поэтому их режут на чанки по 8 токенов и строят landmarks — репрезентативные средние ключи для чанка. Это значительно ускоряет этап выбора ключей на шаге декодирования, а также улучшает доступ к памяти и позволяет лучше насыщать шину.

Ключевой момент в том, что лучше всего сжимается именно pre-RoPE K: он хорошо раскладывается в низкий ранг с минимальной ошибкой, заметно лучше, чем V. Поэтому ShadowKV делает так: pre-RoPE K сжимается через SVD, а V не сжимается, а уезжает в CPU (RAM), чтобы экономить GPU память и bandwidth.

При этом небольшое число токенов, которые плохо объясняются landmark’ами, выделяются как outliers (выбросы) и сохраняются полнорангово. В статье отмечают, что значимая доля outliers — это sink tokens. Достаточно порядка 0,049% бюджета на выбросы, чтобы попасть в точку diminishing returns: это минимальное количество outliers, которое почти полностью закрывает деградацию качества, а дальнейшее увеличение бюджета даёт лишь пренебрежимо малый дополнительный вклад.

На этапе prefill пайплайн строится так: параллельно с основным префиллом быстро вычисляются landmarks и outliers, и это вычисление перекрывается с отгрузкой V на CPU. В результате дополнительные шаги минимально увеличивают critical path, потому что большая часть работы делается в overlap-режиме.

Q на decode скорится не по всем токенам, а по landmarks каждого чанка. Затем выбираются лучшие чанки, и уже все токены из выбранных чанков отправляются в kernel attention. Для этого K восстанавливаются обратно из low-rank пространства, а соответствующие V подгружаются из CPU.

Дополнительно используется оптимизация в духе branch prediction или speculative-подходов. Между двумя соседними шагами декодирования выбранный набор токенов обычно меняется незначительно, потому что запросы на соседних шагах похожи. Поэтому можно кэшировать уже подгруженные токены для каждого слоя и на следующем шаге считать разность множеств, догружая только те токены, которых ещё нет в рабочем наборе. Эта оптимизация lossless относительно ShadowKV, потому что сохраняется инвариант: на каждом шаге в аттеншн всё равно попадает актуальный набор токенов — просто часть из них переиспользуется без повторной загрузки.

На бенчмарках деградация остаётся минимальной при бюджете около 1,56% от полного объёма KV. При этом в практических сценариях ShadowKV обеспечивает заметный прирост скорости и позволяет поддерживать существенно больший размер батча — за счёт снижения нагрузки на VRAM и уменьшения стоимости аттеншн на длинных контекстах.

Отдельно важно понимать, почему вообще имеет смысл оптимизировать именно аттеншн. Его вычислительная стоимость растёт с длиной последовательности, и на длинных контекстах он начинает доминировать по времени, тогда как FFN от длины контекста почти не зависит. Поэтому на коротких последовательностях в профиле часто доминирует FFN, и ускорение аттеншена даёт небольшой выигрыш.

Зато на длинных контекстах бутылочным горлышком становится аттеншн, и тогда по закону Амдала даже частичное ускорение этой части даёт заметную экономию общего E2E-времени инференса.

Разбор подготовил Владислав Кругликов

Душный NLP
3 463 просмотров · 30 реакций Открыть в Telegram · Открыть пост на сайте
Ускорение E2E-инференса через оптимизацию KV-кэша. Часть I

Существует много способов ускорить инференс LLM: менять архитектуру, использовать speculative decoding или просто добавлять вычислительные ресурсы. Но есть и более практичный путь — оптимизация KV-кэша.

Её можно разделить на pre-train и post-train. Первые требуют изменений до обучения модели: это архитектурные решения вроде GQA/MQA/MLA, смешивание глобального и локального атеншена, а также другие модификации, которые обычно стоят дорого из-за переобучения.

Post-train-методы можно применять к уже готовой модели: это различные sparse-стратегии, pruning, удаление повторов токенов и другие техники, которые уменьшают объём KV или сокращают число обращений к нему во время инференса.

KV-бюджеты удобно делить на dense и sparse, отдельно для prefill и отдельно для decode. В варианте dense prefill + dense decode (обычный KV-кэш) каждый новый Q взаимодействует со всеми K и V до него: ко всем токенам промпта и всем ранее сгенерированным токенам. Тогда KV-бюджет равен сумме длины промпта и длины генерации.

Если сделать sparse только на prefill, а decode оставить плотным, то Q перестаёт смотреть на весь промпт, но общий выигрыш заметен в основном в сценариях «длинный промпт — короткий ответ». Если же оставить dense prefill и сделать sparse decode, это часто релевантно reasoning/CoT-сценариям. Sparse и на prefill, и на decode даёт максимальную экономию бюджета, но обычно сильнее всего ухудшает качество.

Sparse можно строить по-разному. Если пересчитывать важные токены на каждом шаге decode, то качество станет выше, но скорость падает. Если пересчитывать раз в несколько токенов, то получается быстрее, но нужно удерживать локальный контекст между пересчётами, иначе модель начинает терять связность.

Один из сильных post-train-методов оптимизации KV-кэша — ShadowKV, который позволяет получать минимальные просадки на бенчмарках без дообучения и увеличивает throughput до трёх раз. О нём мы подробно поговорим в следующей части.

Разбор подготовил Владислав Кругликов

Душный NLP
4 885 просмотров · 42 реакций Открыть в Telegram · Открыть пост на сайте
🎄 Лучшие статьи 2025 года — выбор инженеров Яндекса

Miss me? Как и обещали, возвращаемся не с обзором, а с «кое-чем ещё», но не менее полезным. Мы попросили инженеров Яндекса, чьи разборы вы можете почитать в канале, поделиться (уже) прошлогодними статьями, которые им запомнились больше всего.

ToolOrchestra: Elevating Intelligence via Efficient Model and Tool Orchestration

Статья о маленькой модели (Qwen3-8B-Based), которая, по сути, выполняет функцию планера и роутера во вспомогательные инструменты (глобальный/локальный поиск), специализированные модели (вроде Qwen3-Coder) и модели общего назначения (GPT-5) для решения задач. Кроме того, модель обучена учитывать преференции пользователя по использованию тулов и размену качества на скорость и цену. С помощью обучения на несложной синтетике у авторов получается модель, которая даёт высокий скор на HLE, FRAMES, tau2-bench и при этом оказывается более cost-effective.

Stabilizing Reinforcement Learning with LLMs: Formulation and Practices

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

Artificial Hivemind: The Open-Ended Homogeneity of Language Models (and Beyond)

Исследователи из разных университетов изучили ответы моделей на запросы, допускающие ответ в свободной форме (вроде «в чём смысл жизни?» или «сочини стихотворение о времени»). Обнаружили, что ответы одной и той же модели, и совершенно разных, по форме и содержанию очень похожи. Известные техники повышения разнообразия — регулировка температуры или Min-p Sampling — не сильно помогают. Например, большинство моделей стали сравнивать время с рекой.

Вероятно, эффект обусловлен тем, что модели обучаются на похожих данных, собранных из интернета, или даже на синтетике, сгенерированной другими моделями. Кроме того, выяснили, что предпочтения LLM-as-a-Judge плохо коррелируют с оценками людей, особенно на примерах, где предпочтения асессоров расходятся.

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

DAPO: An Open-Source LLM Reinforcement Learning System at Scale

Авторы исследуют недостатки ванильного Deepseek GRPO и предлагают для них очень логичные практические решения, которые совсем несложно добавить к себе. А ещё очень классно, что они опенсорсят датасет и код обучения (который теперь доступен в фреймворке verl. Разбор статьи есть в канале.

Любопытными статьями поделились Владимир Платонов, Алексей Зотов, Денис Кузнеделев и Артём Харинаев

Душный NLP
4 741 просмотров · 19 реакций Открыть в Telegram · Открыть пост на сайте
🎄 Лучшее за год в Душном NLP

Снова это время — время подводить итоги! Собрали самые популярные посты в канале за 2025 год. Чтобы вспомнить крутое или наверстать упущенное. А если что-то крутое, из опубликованного нами, вам и так запомнилось, рассказывайте в комментариях. Будет интересно узнать, какие посты запали в душу.

Проблемы LLM-as-a-Judge и их решение

Авторы изучают LLM-as-a-Judge для оценки открытых ответов, сравнивают три схемы и предлагают решения возникающих проблем. В частности, можно менять пары ответов для оценки местами, чтобы не возникал position bias.

Технический отчёт Qwen2.5-Coder

Разбор техрепорта семейства моделей, предназначенных для генерации кода. В отчёте есть и о сборе датасета, и о DPO.

ICLR 2025

Сразу несколько постов с конференции ICLR — преимущественно с интересными постерами, но и без приколов не обошлось. Всех их вы можете найти по тегу #YaICLR. А по тегу #YaICML25 — найдёте посты, собственно, с ICML. Там тоже много любопытного!

GenARM — метод потокенного реворда

Авторы сделали потокенный реворд, чтобы использовать его в тест-тайме для генерации ответов. Предложенный метод по качеству и скорости инференса оказался лучше ARGS и Transfer Q.

Как обучить одну модель и получить несколько

Статья о методе MatFormer, который позволяет извлечь несколько «подмоделей» из одной большой обученной модели. Результат получается лучше, чем у LLM, натренированной с нуля.

С Новым годом, друзья! Желаем вам отлично провести праздники, а мы вернёмся совсем скоро — с новыми обзорами и кое-чем ещё.

Душный NLP
4 030 просмотров · 37 реакций Открыть в Telegram · Открыть пост на сайте
Подборка статей об альтернативах квадратичному селф-аттеншну

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

Why Did MiniMax M2 End Up as a Full Attention Model?

Начнём с поста от команды MiniMax. Их первая модель, MiniMax M1, была гибридной и использовала простой линейный аттеншн на матричных стейтах. Но во второй версии, MiniMax M2, они неожиданно вернулись к полному квадратичному аттеншну — даже без sliding window attention (SWA), который уже встречается в опенсорсных моделях.

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

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

The Sparse Frontier: Sparse Attention Trade-offs in Transformer LLMs

В этой работе изучают training free sparsity в аттеншне и пытаются понять, что реально работает с точки зрения баланса compute/accuracy. На умеренных контекстах спарсификация аттеншна почти не помогает и часто ухудшает качество. На очень длинных — даёт выигрыш по FLOPs, но часто приводит к ухудшению качества: авторы замечают, что метод, работающий на одной задаче, ломается на другой. В среднем удаётся получить около 5× сжатия без сильной деградации качества, но разброс большой, особенно для маленьких моделей.

Evaluating Long Context (Reasoning) Ability

В следующем посте автор критикует популярные long-context-бенчмарки. Он говорит, что needle-in-a-haystack-like-задачи в основном проверяют ретривал и плохо отражают реальную (более сложную) работу с длинным контекстом. На более сложных задачах, где контекст нужно понять, а не просто найти факт (например, в длинном коде с логическими ошибками), модели начинают деградировать уже на десятках тысяч токенов — даже с Full Attention. Вывод: бенчмарков, которые реально проверяют ризонинг на длинном контексте, пока недостаточно.

Kimi Linear: an expressive, efficient attention architecture

Спустя неделю после скептического поста MiniMax Moonshot AI (авторы модели Kimi K2 и не только) выпустили работу с почти противоположным тезисом: Linear Attention работает. В Kimi Linear предложили Kimi Delta Attention с gated delta rule и рекуррентной матричной памятью. В модели используют соотношение 3:1 линейных слоёв к Full Attention. Качество на бенчмарках в статье не хуже полного аттеншна, а эффективность выше: prefill на длинных промптах быстрее примерно в три раза, декодинг и memory footprint тоже выигрывают за счёт меньшей зависимости от KV-cache.

Разбор подготовил Иван Рубачёв, а ещё он приглашает вас на семинары Yandex Research Reading Group

Душный NLP
5 836 просмотров · 37 реакций Открыть в Telegram · Открыть пост на сайте
Метод контекстного параллелизма Ulysses

Для обучения моделей на длинный контекст требуется много памяти под активации. Cкажем, чтобы обучить Qwen3-235B на контекст в 131 тысячу токенов, только под активации требуется более 100 ГБ, даже при использовании чекпоинтинга. Учитывая, что на карте надо хранить ещё саму модель, состояния оптимизатора и прочее, получается слишком много даже для GPU последних поколений. Что можно с этим сделать?

Большинство операций в трансформере (нормы, mlp, residual) над одним токеном происходят независимо от других. Это значит, что мы можем разбить нашу последовательность на N частей и обрабатывать каждую на отдельной GPU. Но у нас всё ещё остаётся селф-аттеншн, для подсчёта которого необходима вся последовательность. Так мы подходим к группе sequence- и context-parallel-методов вроде TPSP, Ring/ZigZag, Ulysses. Кратко расскажем о последнем.

В чём заключается идея:

— каждая GPU внутри context-parallel-группы хранит и обрабатывает только часть последовательности;
— перед тем, как зайти в аттеншн, вычисляем QKV-проекции размера [local_seqlen, global_heads, head_dim];
— делаем all_to_all QKV-проекций и получаем тензор активаций размера [global_seqlen, local_heads, head_dim]. Таким образом, потребление памяти не изменилось, но теперь каждая GPU может вычислять селф-аттеншн независимо, потому что имеет всю последовательность (но только часть голов);
— после вычисления аттеншена и до output-проекции снова делаем all_to_all и снова получаем тензор, разбитый по длине последовательности.

Этот метод обладает серьёзными преимуществами:

— очень прост в реализации, но в то же время может быть эффективным при грамотном перекрытии вычислений и коммуникаций;
— независим от реализации аттеншна и при небольших модификациях работает в том числе с линейными вариантами. Также подходит для мультимодальных сценариев.
Но есть и ограничения. Например, размер CP-группы (Context Parallelism) не может быть больше количества query-голов. В случае GQA требуется копирование KV-голов до размера CP-группы. Кроме того, Ulysses становится довольно дорогим при межхостовых коммуникациях.

Инженеры Яндекса использовали этот метод в Alice AI. Ulysses позволил провести Midtrain-стадию обучения и увеличить контекст с хорошим ускорением за счёт перебалансировки нагрузки между процессами.

Разбор подготовил Антон Андрющенко

Душный NLP
3 733 просмотров · 31 реакций Открыть в Telegram · Открыть пост на сайте
Разное о scaling laws

Сегодня — сразу несколько статей о scaling laws. Но начнём с небольшого обзора сферы в целом.

Первая работа о scaling laws вышла в 2020 году. С тех пор многое изменилось, но авторам этой публикации удалось получить многие выводы, на которые впоследствии опирались другие исследователи и инженеры. В частности, один из ценных выводов — лучше получить большую, но не дообученную модель, чем маленькую и обученную до конца.

Через два года вышла статья Training Compute-Optimal Large Language Models, где, на примере модели Chinchilla доказали, что при меньшем размере можно получать более высокое качество путём увеличения количества данных. Это в некотором роде противоречит выводам первой публикации. При этом авторы Training Compute-Optimal Large Language Models проверяли scaling laws на моделях большего размера, чем исследователи в 2020-м.

В следующие годы появилось еще немало работ о scaling laws, авторы которых получали разные результаты. Кроме того, возникали разные scaling laws для соседних доменов.

Scaling Data-Constrained Language Models (2023)

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

В рамках эксперимента брали датасет, делили его на части, первую из которых — на 100 миллионов токенов — повторяли во время обучения несколько эпох. Выяснилось, что при повторении до четырёх раз качество модели растёт, а дальше — падает. Это справедливо для не очень больших моделей, в противном случае лосс будет увеличиваться. То есть, вывод такой: если у вас немного данных, лучше заняться обучением небольшой модели с повторением, чем тренировкой крупной LLM.

Говоря об увеличении уникальных данных, авторы статьи предлагают, в частности, вливать к текстовой информации код (в публикации это был код на Python) и использовать perplexity-filter. Это поднимает качество при использовании метода повторений, описанного выше.

Scaling Optimal LR Across Token Horizons (2024)

Статья Microsoft, в которой рассматривают, как перенести Learning Rate между обучениями с разным числом токенов. Эксперименты показали, что оптимальный LR при увеличении горизонта (собственно, числа токенов) меньше. Это справедливо даже если увеличивать размер батча (BS).

Predictable Scale: Part I, Step Law — Optimal Hyperparameter Scaling Law in Large Language Model Pretraining (2025)

Авторы исследуют проблему оптимального LR и BS при разном количестве параметров и токенов. Также проверяют, зависит ли scaling law от расписания LR и архитектуры модели. И выводят следующую формулу:

1.79N ^−0,713 * D ^0,307

Где N — число параметров, а D — количество данных в токенах. Что касается BS, то в публикации указывается, что оптимальный составляет 0,58D^0,571

В публикации сравнили две стратегии: decay (min_Ir = max_Ir / 10) и фиксированный min _Ir (в статье — 10^-5). Выяснилось, что оптимум смещается, но в целом закон выполняется. Такой же вывод получили, когда по-разному распределяли параметры внутри модели.

Душный NLP
5 216 просмотров · 29 реакций Открыть в Telegram · Открыть пост на сайте
Любопытная статья с NeurIPS 2025

Крупнейшая ML-конференция проходит сразу в двух местах: в Сан-Диего и Мехико. Руководитель группы AI-планирования робота доставки Дмитрий Быков находится в Мексике и делится с нами тем интересным, что видит на мероприятии. Слово Дмитрию.

State Entropy Regularization for Robust Reinforcement Learning

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

Авторы утверждают, что регуляризация энтропии политики (policy entropy) приводит к тому, что весь эксплорейшен сосредоточен вокруг оптимальной траектории. Поэтому, выходя за её пределы, модель оказывается в незнакомой для себя ситуации. Регуляризация энтропии стэйта (state entropy), в свою очередь, вознаграждает агента за то, что он проходит по тем состояниям, в которых не был.

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


Больше интересного с NeurIPS ищите в наших каналах ML Underhood, 404 Driver Not Found и CV Time по хештегу #YaNeurIPS25.

Душный NLP
3 218 просмотров · 27 реакций Открыть в Telegram · Открыть пост на сайте
Как заставить reasoning-модели меньше галлюцинировать (часть II)

Продолжаем разбирать статью Learning to Reason for Factuality. В первой части рассказали о проблеме и самом методе, а сегодня — о результатах и интересных выводах.
Оценка происходила на шести сложных бенчмарках фактологических ответов: LongFact, FAVA, AlpacaFact, Biography, FactBench-Hard и Factory-Hard.

Базовая Llama-3.1-8B даёт в среднем 45% фактической точности и 23,5 подтверждённых факта на ответ. После полного пайплайна (SFT + online GRPO с новым ревордом) модель достигает 68,1% фактической точности (Pre), при этом детальность ответа (Dtl) возрастает до 29%, а релевантность - составляет ~54%. Таким образом, в описанном сетапе ризонинг-версия модели стала меньше галлюцинировать без потери полезности относительно своей не-reasoning-версии.

В отличии от online-RL-сетапа «SFT + DPO»-эксперимент сильно просаживает полезность ответа, при примерно таком же качестве детальности (Dtl) и фактической точности (Pre) (сравнивая с SFT + GRPO). Это делает предложенный авторами подход довольно актуальным.

Кроме того, авторы попробовали определить meta-reasoning-страгении в CoT-рассуждениях модели. Для этого использовали Llama-3.1-70B-Instruct. Выяснилось, что стратегии ризонинга для повышения фактологичности ответов модели сильно отличаются от стратегий, которые используются в решении математических и кодинг-задач.

Так, например, наиболее частые стратегии решения математических задач — self-verification, exploration, calculation and backtracking, в то время как для описанного online-RL-подхода основными стратегиями являлись: synthesis, summarization, explanation, evaluation. Этот факт может быть одной из причин большего галлюцинирования ризонинг-моделей, которые обучаются в RLVR-сетапе на задачах математики и кода, на запросах, требующих фактологической точности.

Разбор подготовил Дмитрий Масный

Душный NLP
4 010 просмотров · 14 реакций Открыть в Telegram · Открыть пост на сайте
Как заставить reasoning-модели меньше галлюцинировать (часть I)

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

Так, например DeepSeek-R1 и QwQ-32B выдают на 10–13 п.п. больше галлюцинаций, чем соответствующие базовые не-reasoning-версии DeepSeek-V3 и Qwen-2.5-32B на шести датасетах, созданных для проверки фактологичности длинных ответов. В первой части разбора обсудим проблему, заявленную в статье, и метод, предложенный авторами. А во второй — результаты и некоторые выводы.

Проблема в том, что стандартный RL для reasoning-моделей заточен под верифицируемые задачи, для которых награда вычисляется по заранее определённым правилам и проверку которых можно автоматизировать (математика, код). А для ответов, содержащих фактологическую информацию, не существует ни надёжной автоматической проверки (как в RLVR), ни возможности звать человека для проверки.

Эти трудности сильно ограничивают использование фактчек-сигнала в алгоритмах online-RL. Попытки автоматизировать фактчек с помощью FActScore/VeriScore в online-RL-сетапе приводят к «хакингу награды»: модель начинает писать слишком кратко (меньше фактов — меньше шансов ошибиться) или выдаёт длинный, но слабо связанный с вопросом поток общих, пусть и верных, сведений.

Так можно ли обучить стратегии рассуждения, повышающие фактическую точность (R-)LLM? Чтобы ответить на вопрос, авторы используют следующий подход.

Для получения обучающих промптов предлагают интересный ход: инженеры генерируют промпты с помощью Llama 4, обуславливая её на два множества grounding-промптов. Первый набор — WildChat (разнообразные реальные запросы пользователей), второй — LongFact (запросы, требующие фактологически точных ответов). Таким образом получается собрать порядка 7 тысяч синтетических промптов: 3 тысячи для SFT, 4 тысячи для RL, которые похожи на реальные запросы пользователей и в то же время требуют фактологически точных ответов.

Затем делают SFT: фью-шотят базовую Llama-3.1-8B-Instruct для генерации 10 Long-CoT-ответов в формате <think>…</think><answer>…</answer>, их прогоняют через VeriScore и берут ответ с наибольшей наградой за фактологическую точность.

Затем в качестве бейзлайна используют DPO: для сбора пар для обучения аналогично методу в SFT используется VeriScore c небольшой модификацией — берутся пары ответов с максимальной дельтой награды VeriScore и удовлетворяющие условиям:

1) дельта награды должна быть выше определённого порога, чтобы фактчек-сигнал был достаточно сильным;
2) разность длин ответов должна быть меньше определённого порога, чтобы не было «хакинга длины».

Для онлайн-RL в качестве нововведения предлагают награду, которая состоит из трёх слагаемых:

— фактическая точность (Pre): F/(T+1), где F — число подтвержденных фактов, T — всего найденных фактов в ответе (извлекаем их с помощью LLM) (для штрафа за фактологически неверные ответы);
— детальность (Dtl): log(1+F) — поощряет больше правильных фактов, но с дисконтированием на длину (для штрафа за слишком короткие ответы);
— релевантность/полезность (WR): LLM-as-a-judge-метрика — ответ политики сравнивается с ответам реверенсной модели, если судья считает, что ответ политики лучше, то метрика принимает значение 1, в противном случае — 0 (для штрафа за наличие нерелевантных верных фактов).

Чтобы такой reward можно было считать в онлайне, сильно оптимизируют VeriScore: батчуют извлечение фактов, параллелят веб-поиск и так же батчуют проверку утверждений поверх поисковой выдачи. Это позволяет сократить время инференса реворда с двух минут (базовый сетап VeriScore) до примерно пяти секунд на один ответ, что уже пригодно для online-RL. Полученный подход уже используют в GRPO-алгоритме в качестве модели награды.

Разбор подготовил Дмитрий Масный

Душный NLP
3 261 просмотров · 30 реакций Открыть в Telegram · Открыть пост на сайте
Оценка реворд-моделей

Сегодня разберём оценку реворд-моделей (RM). Стандартная метрика в этой сфере — accuracy на парах предпочтений из тест-сета. Оценка реворд-моделей нужна как прокси для end-to-end (e2e) RLHF, потому что для каждого эксперимента обучать модель по реворду — это слишком дорого. К тому же качество e2e не всегда связано напрямую с качеством RM из-за большого количества параметров RLHF-обучения.

В экспериментах с RM нередко применяют синтетический сетап: вместо истинной награды (которую в реальном мире обычно дают люди) используют «сильную» RM. Её предсказания принимают за Golden Reward, а в рамках экспериментов обучают Proxy RM, которые максимально приближают Golden — это существенно снижает стоимость исследований.

Одна из работ на тему оценки RM — The Accuracy Paradox in RLHF, авторы которой обучили отдельные реворд-модели (Longformer-base-4096) на одну из трёх задач: релевантность, полнота и фактологичность, таргеты которых собирались через Golden RM. Дальше под каждую модель обучали RLHF и смотрели на конечное качество. Выяснилось, что максимальное значение accuracy RM не обязательно ведёт к высокому е2е-качеству во всех трёх задачах. На первом графике видно, что оптимальное качество (жёлтый цвет) соответствует среднему значению accuracy.

Для проверки RM используют бенчмарки — например, RewardBench 2. В нём шесть доменов, включая математику, следование инструкциям, безопасность, фактологичность и так далее. Для сравнения на каждый промпт предоставляется один правильный и три неправильных ответа (best-of-4 accuracy).

Эксперименты создателей RewardBench 2 показали, что, вопреки распространённому мнению, RM имеет смысл обучать больше одной эпохи — это даёт рост в качестве. Кроме того, разработчики бенчмарка заключают, что качество растёт, если RM и Policy из одного семейства — например, Llama. А вот чего делать не стоит, так это использовать в RLHF промпты, которые не «видела» реворд-модель (звёзды на изображении 2).

Авторы статьи What Makes a Reward Model a Good Teacher? An Optimization Perspective предлагают смотреть не только на accuracy, но и на дисперсию реворда. Чем она выше, тем быстрее модель оптимизируется под gold reward — то есть, эталонную оценку (изображение 3). Вывод опять-таки следующий: высокая accuracy не ведёт к высокому е2е-качеству.

Разбор подготовил Артём Харинаев

Душный NLP
2 953 просмотров · 30 реакций Открыть в Telegram · Открыть пост на сайте
ReST-MCTS

Авторы сегодняшней статьи рассматривают проблему, из-за которой модель, давая правильный ответ на вопрос, ошибается в рассуждениях. Это случается, например, в ходе решения задач по математическому анализу, где ответ часто — 1, 0, e или pi. Модель может попросту угадать правильный результат, ошибившись в процессе решения.

Для того чтобы модель справлялась с математическими задачами, хорошо подходит process reward modeling (PRM). Это реворд-модель, которая проверяет не окончательный ответ, а каждый шаг решения, что позволяет раньше обнаруживать ошибку в рассуждениях и, соответственно, получать более точные результаты. Однако обучение PRM требует разметки людьми, что дорого.

В публикации предлагается использовать Monte Carlo Tree Search (MCTS), чтобы одновременно учить policy и PRM. Идея в том, чтобы превратить рассуждение в дерево поиска: каждый узел — это промежуточное решение задачи, а ребро — следующий шаг. MCTS с текущей policy генерирует продолжения, обходит дерево и старается тратить больше вычислений там, где выше шанс прийти к правильному ответу. Перспективность каждого следующего шага оценивает обученная PRM.

Придуманный авторами алгоритм ReST-MCTS*, предполагает расчёт инкрементального реворда для частичных решений V_k, который меняется от 0 до max_V (всегда положительное значение). Пустой префикс имеет V_0 = 0, а max_V достигается на завершенном правильном решении. В правильном решении каждый шаг добавляет одинаковый инкремент в V_k:

V_k+1 = V_k + (1-V_k)/(m_k+1)*(1-2*r_sk)

Здесь m_k — количество шагов до конца решения, а r_sk — признак качества шага (0 — для правильного ответа, 1 — для неправильного). Если шаг корректный, множитель (1-2*r_sk) равен 1, а V_k плавно растёт и к последнему шагу доходит до max_V; если в какой-то момент совершается ошибка, множитель становится -1, инкремент меняет знак, и значение начинает уменьшаться.

Когда поиск заканчивается, дерево «превращается» в обучающие данные. Из него берут решения, которые приводят к правильному ответу (это можно проверить по совпадению с эталоном или с помощью отдельного LLM-as-a-Judge). Эти решения используют для SFT-дообучения policy. Все узлы, через которые проходят корректные ветки, автоматически получают целевые значения v — их можно трактовать как псевдоразметку качества шага и использовать для обучения PRM, снова без участия людей.

Дальше цикл повторяется: обновлённые policy и PRM запускаются на новых задачах, строят уже более «умные» деревья, генерируют более правдоподобные решения и оценки V, которые снова идут в обучение.

Разбор подготовил Георгий Иванов

Душный NLP
2 902 просмотров · 27 реакций Открыть в Telegram · Открыть пост на сайте
Ещё порция интересных статей с EMNLP 2025

Возвращаемся с очередной пачкой постеров, которые привлекли внимание нашей команды на конференции.

Stepwise Reasoning Checkpoint Analysis: A Test Time Scaling Method to Enhance LLMs' Reasoning

Хорошо известно, что качество обученных LLM на инференсе улучшается с помощью Chain-of-Thoughts (CoT). Можно пойти ещё дальше и делать многостадийный CoT, применяя при этом beam search или DVTS. Но тут могут возникать очень похожие траектории, а также существует риск игнорирования моделью промежуточных шагов.

Для решения этих проблем авторы предлагают метод SRCA, который состоит из двух шагов:

1. заставляем модель после каждого шага выдавать промежуточный результат;
2. группируем результаты в кластеры и стартуем следующий шаг из разных кластеров.

Далее результаты со всех шагов агрегируются в финальный результат.

Liaozhai through the Looking-Glass: On Paratextual Explicitation of Culture-Bound Terms in Machine Translation

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

Современные MT-модели (в том числе и LLM) переводят большинство таких фраз буквально или копированием, делая результат непонятным. В статье вводят новую задачу перевода с объяснением и предлагают датасет для оценки качества — выделенные культурно-специфичные выражения и референсные сноски от переводчиков. Сегодняшние LLM плохо справляются с выделением терминов для эксплиситации, но генерируют довольно качественные описания (хоть и хуже переводческих).

Too Consistent to Detect: A Study of Self-Consistent Errors in LLMs

Существующие методы unsupervised-детекции ошибок LLM в большинстве основаны на «мерах разброса» — неопределенности вероятностного распределения, различиях среди diverse-генераций и оценке вероятности модели.

Авторы рассматривают ошибки в ответах LLM и вводят понятие self-consistent-ошибок, уверенных с согласованными предсказаниями. Такие ошибки плохо распознаются мерами разброса. Вместе с тем при скейлинге модели их количество растет, а число inconsistent ошибок, наоборот, сильно снижается.

Предлагается использовать пару разных моделей для детекции self-consistent-ошибок. Метрика на основе модели-верификатора принимает на вход активации двух моделей и использует их линейную комбинацию для предсказания QE-метрики. Такая схема распознает намного больше self-consistent-ошибок в небольших версиях Qwen и Llama.

Интересное увидели Александр Шишеня и Николай Карпачёв

Душный NLP
3 491 просмотров · 28 реакций Открыть в Telegram · Открыть пост на сайте
Интересное с EMNLP 2025

В Сучжоу в эти дни проходит конференция Conference on Empirical Methods in Natural Language Processing, а мы, как и прежде, рассказываем, об интересных постерах, которые там увидели.

UNCERTAINTY-LINE: Length-Invariant Estimation of Uncertainty for Large Language Models

Очень простая идея, но при этом, кажется, вполне полезная. Странно, что такого никто не делал.

Хотим оценить качество ответа модели на запрос с помощью того, насколько она уверена в том, что пишет. Считаем uncertainty — неуверенность модели в предсказании — как нам нравится (можно перплексию, можно вероятность всего текста, как произведение вероятностей токенов). Получаем величину, которая может зависеть от длины ответа. Утверждается, что это плохое качество метрики, так как у ответов разной длины может быть разное качество.

Авторы строят зависимость uncertainty от длины ответа, аппроксимируют прямой и вычитают полученный линейный тренд из всех значений. Утверждают, что теперь скорректированная uncertainty-метрика лучше коррелирует с качеством ответа. Тестирование проводилось на заданиях WMT (машинный перевод), XSUM (суммаризация), GSM8k (математика, оценивали длину рассуждений). Корреляция тут sample-wise, то есть примеры в бенче ранжируются друг относительно друга правильно.

ECO Decoding: Entropy-Based Control for Controllability and Fluency in Controllable Dialogue Generation

Авторы рассматривают controllable-диалоги с LLM, то есть такие, в которых пользователь задаёт вопрос, а ответить нужно с определённым ограничением: радостно, с удивлением и так далее. Есть LLM, которая отвечает за генерацию ответа, но рядом сидит ещё и классификатор, который определяет ограничение и изменяет распределение вероятностей выходных токенов при генерации, чтобы оно лучше подходило под ограничение.

Существуют разные способы этого влияния классификатора на распределение выходных токенов. Авторы придумали свой, назвали его ECO. Утверждают, что качество выросло на некоторых бенчмарках, при этом без потерь в грамматике.

C3: A Bilingual Benchmark for Spoken Dialogue Models Exploring Challenges in Complex Conversations

Авторы собрали датасет из голосовых фраз и диалогов, в которых что-то неоднозначно: интонация (из-за чего непонятно, это вопрос или утверждение), двусмысленность (Mr. Smith loves music more than his wife — «больше, чем его жена любит музыку» или «больше, чем свою жену»?), пропуски слов и так далее. Датасет на английском и китайском, примеры независимые, так как сложно повторить одно и то же на разных языках. Метрика — процент правильно угаданных смыслов. Из всех опробованных авторами моделей лучше всего себя показывает GPT-4o Audio.

UnitCoder: Scalable Iterative Code Synthesis with Unit Test Guidance

Авторы хотят обучить модель на коде. Есть два стула: либо супергрязный, но при этом большой разнообразный датасет из данных, которые просто выгрузили отовсюду; либо написать хорошие данные с помощью людей или умных моделей, — но это менее разнообразно, и получается не очень много данных.

Авторы захотели сесть между двух стульев и придумали следующий пайплайн генерации данных. Берём просто сырой код из большого разнообразного датасета. Далее вытаскиваем из кодовых документов отделяемые куски кода, которые можно независимо вызывать. Затем на вызываемую функцию пишем тесты с помощью Llama3-70B-Instruct, запускаем тесты этого куска кода в специальной среде, если тесты не проходятся, фиксим код с помощью той же Llama 70B и повторяем пайплайн.

Когда всё стало хорошо, подчищаем код: пишем docstring, вставляем inline-комментарии, улучшаем стиль. В итоге — хороший датасет.

Проблема в том, что тесты пишет и код исправляет умная большая модель, а датасет используется для обучения маленьких (до 7B). По сути, это дистилляция. Автор говорит, что, наверное, достаточно умная Qwen3 сможет сама учиться на своих данных — звучит сомнительно, так что применимость работы к большим моделям под вопросом. Тем не менее идея может быть полезна как ещё один способ дистилляции кодовых навыков.

Интересное увидел Владислав Негодин

Душный NLP
2 626 просмотров · 35 реакций Открыть в Telegram · Открыть пост на сайте
Kimi K2 — огромная модель с интересными решениями «под капотом»

Сегодня разберём статью о MoE-модели Kimi K2 на триллион параметров. У Kimi в полтора раза больше экспертов, чем у DeepSeek-V3 — 384 против 256. А ещё — в два раза меньше голов аттеншена — 64 против 128.

Создатели вводят понятие sparsity — это разница между общим количеством экспертов и активными экспертами. Так, у Kimi K2 sparsity 48, а у DeepSeek-V3 — 36. Авторы утверждают, что при увеличении sparsity улучшается validation loss модели, но и растёт её инфраструктурная сложность. Что касается небольшого, по сравнению с DeepSeek, числа голов аттеншена, то это решение связано с тем, что удвоение голов даёт прибавку к validation loss всего в 1,2% и кажется нецелесообразным.

На претрейне Kimi K2 использовался собственный алгоритм Muon, включающий в себя быстрое преобразование к ортогональной матрице. Однако при применении этого метода происходит «взрыв» логитов аттеншена. Чтобы справиться с этой проблемой, авторы устанавливают максимальные логиты для каждой головы. Дальше, всё, что больше заданного T, клипают. Следом идёт рескейлинг матриц W_k и W_q с gamma_h = min(1 или T/на максимальный логит). В случае с обычным MHA все это домножается на гамму, а в случае с MLA скейлятся только не пошаренные веса голов аттеншена.

Также на претрейне авторы перефразировали данные с помощью промптов — то есть буквально переписывали их, сохраняя семантическое родство. Большие тексты разбивались на отдельные фрагменты, которые затем переписывались и подавались в качестве контекста для следующего фрагмента. После десяти перефразирований и одной эпохи прибавка на SimpleQA получается более чем в пять пунктов по сравнению с использованием «оригинального» текста в течение 10 эпох.

На пострейне использовали 3000 MCP тулов с GitHub и ещё 10 тысяч — синтетических инструментов. По тулам сгенерировали тысячи агентов. Они получили сгенерированные задачи, оценкой которых происходила в режиме LLM-as-a-Judge. Успешные траектории становились базой для обучения.

На этапе RL для случая, когда нет верифицируемой награды, модель использовали одновременно и как актора, и как критика. Актор генерировал набор ответов, которые критик попарно сравнивал относительно набора аспектов. Сам критик обновлялся за счёт verifiable-сигналов.

Разбор подготовил Владимир Платонов

Душный NLP
3 230 просмотров · 37 реакций Открыть в Telegram · Открыть пост на сайте
Does Math Reasoning Improve General LLM Capabilities? Understanding Transferability of LLM Reasoning

Влияют ли математические рассуждения (reasoning) на другие домены при обучении модели? Короткий ответ — да, влияют. А для тех, кому интересны подробности, сегодня разберём статью об этом.

Для рассуждений все небезуспешно максимизируют математику благодаря формализованной постановке задач и относительно лёгкой (по сравнению с другими доменами) верификации решений. Звучит здорово, но мир не ограничивается math reasoning: обучая LLM математике, учим ли мы её рассуждать в целом? Можно ли масштабировать успехи в одном домене на другие области?

Чтобы ответить на эти вопросы, авторы:

— Создали метрику transferability index (или просто TI), которая позволяет оценить, как переносятся рассуждения между различными доменами.
— Собрали датасет из 40K математических задач с незатейливым названием Math 40K. Источники данных: DeepScaleR с олимпиадной математикой и Simple LR сложностью от 3 до 5 — математика старшей школы и выпускных экзаменов.
— Обучили Qwen3-14B-Base в двух парадигмах: SFT и RL (с выравниванием длины обучения). В RL использовали классический GRPO без KL-дивергенции и штрафов по энтропии. В качестве данных для SFT применили ответы модели Qwen3-32B с rejection samling.
— Измерили бенчмарки других доменов и оценили эффект от разных подходов к обучению.
— Проанализировали результаты, активации моделей и выходные распределения токенов, пришли к следующим выводам: да, обучение рассуждениям в области математики влияет на рассуждения в других доменах; но на SFT модель переобучается под математический домен, а RL позволяет переносить полученные принципы на другие области. Выводы подкрепили анализом 20 современных open-weight-моделей с хорошей математикой.

На диаграммах выше — собранные в три группы доменов оценки того, как SFT и RL на математических данных влияют на способности модели к рассуждению. Легко заметить, что RL показывает наилучшие результаты на всех бенчах, кроме ACPBench. Плохие результаты SFT для non-reasoning могут сигнализировать о том, что модель переобучается математике.

Transferability index (TI) вычисляется следующим образом: сначала для каждой группы бенчмарков (math, other reasoning, non-reasoning) считается средний относительный прирост: dR = SUM((R_model – R_base) / R_base) / N, где R_model — результат экспериментальной модели после обучения, R_base — результат бейзлайна до обучения, N — число бенчмарков в группе. Отношение dR other reasoning или non-resoning к math и есть искомая метрика TI. Когда её величина больше единицы, другие группы растут вместе с математикой, обучение улучшает качество работы модели на других доменах. А вот если TI < 1, обучение математике ведёт к ухудшению качества работы модели по другим тематикам.


Посчитав TI для множества опенсорс-моделей, авторы пришли к выводу: обучение на математических данных с помощью RL позволяет переносить способности к рассуждению на другие домены, а SFT не демонстрирует такого эффекта. Таким образом, математический reasoning влияет на другие домены при обучении модели.

Разбор подготовил Антон Селиванов

Душный NLP
4 174 просмотров · 44 реакций Открыть в Telegram · Открыть пост на сайте
QwenLong-L1 и проблемы рассуждающих моделей на длинных контекстах

Сегодня — статья от инженеров из Alibaba Group, которые сделали свою версию Qwen для ризонинга на длинных контекстах. Как сообщают авторы, их разработка сопоставима по качеству с o3, хотя имеет всего 32 миллиарда параметров.

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

Для обучения QwenLong делают интервенции на SFT и RL-стадии. В первом случае заявляется обучение на домене единых контекстов — том же самом, что и RL. На самой RL-стадии применяются RPO и DAPO. Инженеры используют progressive scaling, то есть увеличивают длину контекста по мере обучения. Применяют комбинированный реворд: LLM-as-a-Judge и Rule-Based.

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

При замерах выделили три типа поведения ризонинг-моделей в работе с длинными контекстами:

Grounding. Модель обращается к релевантной информации в длинном контексте, чтобы поддержать рассуждение: «Позвольте сперва ознакомиться с представленным текстом…»
Subgoal Setting. Модель разбивает комплексный вопрос на несколько более мелких, чтобы решать задачу шаг за шагом: «Чтобы разобраться, нам сперва надо…»
Backtracking. Модель обнаруживает ошибки в генерациях и возвращается к ним, чтобы решать их итеративно: «Такой подход не сработает, потому что…»
Verification. Модель систематически валидирует предсказанные ответы, чтобы убедиться в их корректности: «Давайте подтвердим результат, путём…»

Интересно, что на SFT модель чаще демонстрирует разные типы поведения. Однако это не приводит к росту качества ответов. Это значит, что модели недостаточно просто иметь предпосылки к тому или иному образу действия — нужно ещё и тренировать его на RL.

Разбор подготовил Александр Кайгородов

Душный NLP
3 708 просмотров · 30 реакций Открыть в Telegram · Открыть пост на сайте
Запоздавшие статьи с ICLR 2025 — об ускорении инференса

Конференция ICLR 2025 закончилась давным-давно, но она навсегда в наших сердечках — так много интересного там было. Делимся ещё одной — запоздавшей, но от этого не менее любопытной — подборкой статей с мероприятия.

OstQuant: Refining Large Language Model Quantization with Orthogonal and Scaling Transformations for Better Distribution Fitting

Авторы вводят метрику утилизации пространства квантизации. Для наглядности посмотрите на изображение. Есть некоторый объём, который фактически занимает тензор, и тот объём, который может представлять собой квантизованные значения — красный квадрат на картинке. Если эти два объёма смещены относительно друг друга и не полностью совпадают, то имеет место ошибка. В идеале, если сильно упрощать, распределение тензора должно быть чётко вписано в квадрат объёма квантизации.

На практике этого можно добиваться разными способами вроде Rotation или Smooth. Авторы статьи предлагают при нормализации весов добавить к вращению операцию Smooth. На инференсе всё это ужимается в одну матрицу. Таким образом, можно получить прирост по качеству на 1 п.п. при использовании SpinQuant.

Block Verification Accelerates Speculative Decoding

При сэмплинге мы сэмлируем случайную величину от нуля до единицы из равномерного распределения и сравниваем её с вероятностью принятия. В теории любой токен может оказаться принятым. Авторы статьи предлагают в сэмплинге делать не потокенную верификацию, а поблочную — увеличивать вероятность принятия за счёт того, что на верификацию поступает больший объём информации (изображение 2). Этот метод работает, обеспечивая ускорение в 5–10%.

Antidistillation Sampling

Авторы предлагают настройку, призванную защитить модели от несанкционированной дистилляции. Метод представляет собой добавку к распределению в генерации. В основе — расчёт такой оценки градиентов, которая позволит ухудшить качество дистилляции. Получить эту оценку можно в SFT, с помощью реворд-модели или как-то иначе. Метод реализуется через небольшие сдвиги в логитах — они вычисляются с помощью прокси-модели и аппроксимированного градиента. Это ухудшает обучение «студента» при дистилляции, но почти не снижает эффективность «учителя».

TAID

Хак, призванный решить проблемы mode averaging и mode collapse при дистилляции. Авторы предлагают делать прогрессивную дистилляцию — переходить от SFT «студента» к дистилляции в учителя. Это позволяет сделать распределение более разнообразным. Метод даёт не слишком большой прирост по бенчмаркам, но и реализуется совсем не сложно — нужно добавить всего один параметр на смесь логитов «учителя» и «студента».

MiniPLM

Распределения «учителя» и «студента» можно классифицировать по трём типам:

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

Авторы статьи предлагают выбрасывать «шумные» примеры, ап-семплить «сложные» и даун-семплить «простые». То есть это просто работа с датасетом, которая, однако, уже показывает хороший прирост качества после дистилляции (изображение 3).

Разбор подготовил Роман Горб

Душный NLP
3 409 просмотров · 20 реакций Открыть в Telegram · Открыть пост на сайте
Как обучить одну модель и получить несколько

Сегодня расскажем о методе, который позволяет обучить одну модель, а затем извлечь из неё несколько других «подмоделей». Подобным подходам посвящено несколько статей. Разберём одну из них, о методе MatFormer от инженеров из Google.

Идея статьи заключается в том, чтобы вкладывать разные варианты слоёв друг в друга. Как в матрёшке: параметры трансформера поменьше используются в трансформере побольше. Метод фокусируется на FFN-слоях и только в dense-архитектурах, где до 60% параметров как раз и находятся в FFN-слоях.

Суть в том, чтобы брать не все нейроны скрытого слоя в полносвязных слоях, а а только некоторый набор первых (m_i в формуле выше). При этом у разных слоёв могут быть разные m_i.

Обучение осуществляется как обычно, но со случайным и равномерным сэмплингом m_i = g_i d_ff, где g_i — гранулярность, случайно сэмплируемая из {0.5, 1, 2, 4}, а d_ff — это размер скрытого представления модели. Таким образом обучаются все подмодели. На инференсе используется процедура Mix’n’Match — для разных слоёв подбираются свои m_i так, чтобы размер слоёв увеличивался постепенно, без резких скачков.

Результаты показывают, что модель, полученная с помощью метода MatFormer, показывает лучшие результаты, чем модель, обученная с нуля. Интересно ещё и то, что «модели из матрёшки» демонстрируют значительную согласованность с большой моделью, из которой произошли. Это полезно, потому что открывает возможность для использования маленьких моделей, например, в качестве draft-моделей при спекулятивном декодинге.

Разбор подготовил Артём Соболев

Душный NLP
4 432 просмотров · 43 реакций Открыть в Telegram · Открыть пост на сайте
Проблемы LLM-as-a-Judge и их решение

Сегодня разберём статью о проблеме оценки открытых ответов (например, рассказов) моделью так же, как это делают асессоры. Мотивация тут проста: использование LLM дешевле, быстрее и позволяет значительно увеличить корзинку, на которой проводится сравнение. При этом полностью выступать заменой разметчиками модель, конечно, пока не может.

Авторы рассматривают три типа LLM-as-a-Judge:

— Попарное сравнение. Модели предоставляют два ответа и предлагают выбрать из них лучший. Такой вариант дорогой, но даёт хорошую согласованность.
— Оценка одного ответа. Модель ставит оценку по какой-то шкале всего одному ответу.
— Оценка по референсу. Модель получает эталонный ответ и, отталкиваясь от него, оценивает.

Однако у использования LLM есть свои минусы. Первый, существующий и у разметчиков, — position bias, который возникает при попарном сравнении. Большинство моделей, получая два ответа, предпочитают выбирать первый. Что интересно, если попросить LLM не просто сравнить два ответа, а дать оценку каждому, то position bias проявляется чаще.

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

Ещё один способ — использование few-shot. Модель получает два ответа с прямым указанием, какой из них лучше. Всего таких «прогонов» три: в одном случае лучше первый ответ, в другом — второй, а в третьем — ничья. Только после этого LLM предлагают уже самостоятельно оценить два решения. Такой способ помог повысить согласованность с 65% до 77,5%. Авторы отмечают, что это дорогой метод, причём нельзя быть уверенным, что в результате его использования не возникли новые проблемы.

Также LLM плохо справляются с оцениваем решения математических задач и задач с рассуждением. Чтобы обойти эту проблему пытались использовать CoT, но он не дал хороших результатов. Зато число ошибок уменьшило руководство по референсу: авторы просили судью решить задачу, затем использовать собственный ответ как эталонный для последующей оценки.

Кроме того, у LLM-as-a-Judge есть ещё две проблемы: verbosity bias (LLM выше оценивает более длинные ответы; такое, к слову, бывает и у разметчиков) и self-enhancement bias (модели-судьи лучше оценивают собственные ответы). Для этих проблем у авторов нет решения.

Разбор подготовила Анастасия Кириллова

Душный NLP
10 971 просмотров · 61 реакций Открыть в Telegram · Открыть пост на сайте
Cut Your Losses in Large-Vocabulary Language Models

Сегодня разберём статью, в которой описывается эффективный метод фьюза LM-головы и кросс-энтропии.

Авторы формулируют проблему чрезмерного потребления памяти на слое кросс-энтропии при обучении LLM с крупными словарями: материализация логитов размера |V|×N доминирует и может занимать до ~90% памяти, что ограничивает батч и масштаб обучения.

Инженеры предлагают метод Cut Cross-Entropy (CCE), который предполагает вычисление лосса без сохранения всех логитов в глобальной памяти. Нужно брать только логит правильного токена и выполнять log-sum-exp «на лету» в SRAM; на примере Gemma-2 на 2 миллиарда параметров память на вычисление лосса сокращается примерно с 24 ГБ до 1 МБ, а общий след classifier-head при обучении — с 28 ГБ до 1 ГБ, без потерь по скорости или сходимости.

Лосс для всех токенов в последовательности считается по формуле ℓ = (CᵀE)_x − log∑_j exp(CⱼᵀE). Первая часть реализована как матричное умножение в едином CUDA/Triton-ядре с загрузкой нужного столбца классификатора и эмбеддинга в SRAM и немедленным скалярным произведением.

Вторая — как блочно-параллельный linear-log-sum-exp, комбинирующий матричное умножение и редукцию с потокобезопасным log-add-exp, также без промежуточных логитов в DRAM. В обратном проходе CᵀE перевычисляется в общей памяти. Градиенты считаются с учётом разреженности softmax: элементы ниже порога ε=2⁻¹² (bf16) отбрасываются, а словарь переупорядочивается по среднему логиту для уплотнения полезных блоков. Это даёт до ускорение примерно в 3,5 раза на бэкворде при том, что фактически ненулевых значений <0,02%.

CCE чуть быстрее torch.compile на форварде и сопоставим по суммарному времени, обеспечивая на порядок меньший след памяти. Дополнительно показывают, что CCE увеличивает достижимый размер батча на 16 GPU в 1,5–10 раз в зависимости от модели, а кривые обучения при файнтюнинге совпадают с torch.compile. Для претрейнинга точность выравнивается вариантом CCE-Kahan-FullC, ценой временных буферов и большего времени на бэкворде.

Душный NLP
4 340 просмотров · 34 реакций Открыть в Telegram · Открыть пост на сайте