Душный NLP
رفتن به کانال در Telegram
Разборы свежих статей от NLP-специалистов Яндекса. Подробно, полезно, с душ(нот)ой. Вопросы и предложения > @yandex_ml_brand
نمایش بیشتر6 426
مشترکین
+224 ساعت
+187 روز
+1830 روز
آرشیو پست ها
6 426
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
6 426
Рекурсивные языковые модели
В последнее время всё чаще обсуждают проблему длинного контекста. Большое количество токенов просто физически не помещается в модели, а с увеличением контекста зачастую падает качество. Авторы сегодняшней статьи предлагают решение: дать моделям правильные инструменты.
Как это устроено: у модели есть промпт с описанием задачи и доступных тулов. Первый — это 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).
Разбор подготовил ❣ Иван Рубачёв
Душный NLP6 426
Как заставить агентов делать работу над ошибками
Сегодня разбираем статью об обучении агентов. Проблема такая: реворд-модели оценивают только результат в конце траектории, а если агент сделал ошибку и исправил её, нельзя сказать, когда это произошло. Если бы у нас была такая возможность, то мы могли бы раньше направить обучаемую 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
6 426
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
6 426
Превращаем 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
6 426
Я закончил с https://ml-brand.github.io/stuffyNLP/
можно тестировать окончательно
завтра переведу остальные наши каналы
6 426
Ускорение 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
6 426
Ускорение 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
6 426
🎄 Лучшие статьи 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
6 426
🎄 Лучшее за год в Душном 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
6 426
+3
Подборка статей об альтернативах квадратичному селф-аттеншну
В последние годы всё больше обсуждают альтернативы классическому аттеншну — прежде всего из-за стоимости квадратичного скейлинга и работы с длинными контекстами. Ниже — краткий обзор нескольких любопытных работ и блогпостов на тему линейного, 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
6 426
Метод контекстного параллелизма 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
6 426
Разное о 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
6 426
+4
Любопытная статья с 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
6 426
Как заставить 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
6 426
Как заставить 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
6 426
+2
Оценка реворд-моделей
Сегодня разберём оценку реворд-моделей (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
6 426
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
6 426
Ещё порция интересных статей с 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
6 426
+3
Интересное с 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
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
