Перейти к содержимому
ПереводыDeepSeek

Техотчёт DeepSeek-V3.2 (2025): разреженное внимание DSA и масштабирование RL

Конспект техотчёта DeepSeek-V3.2: молниеносный индексатор и отбор top-k токенов вместо полного внимания, двухэтапное дообучение индексатора через KL, и рецепт устойчивого масштабирования GRPO — несмещённый KL, маскирование off-policy, сохранение маршрутизации.

  • V3.2 отличается от V3.1-Terminus одним архитектурным изменением: вместо полного внимания — DeepSeek Sparse AttentionDeepSeek Sparse Attention (DSA)EN DeepSeek Sparse Attention (DSA)Разреженное внимание DeepSeek-V3.2 — дешёвый индексатор выбирает 2048 прошлых токенов для каждого запроса, полное MLA считается только по ним. Позже взято в GLM-5. (DeepSeek Sparse Attention). Модель получена дообучением из V3.1-Terminus, а не обучением с нуля.
  • DSA состоит из двух частей. Молниеносный индексатор (lightning indexer) быстро оценивает, насколько прошлый токен важен для текущего. Отбор top-k: внимание считается только по 2048 выбранным токенам.
  • Индексатор учат повторять распределение настоящего внимания через KL-дивергенцию: сначала 1000 шагов с замороженной моделью и плотным вниманием (2,1 млрд токенов), потом 15 000 шагов разреженного обучения всей модели (943,7 млрд токенов).
  • Сложность ядра внимания падает с O(L2)O(L^2) до O(Lk)O(Lk). Индексатор остаётся квадратичным, но он намного дешевле полного внимания. Выигрыш виден на длинных последовательностях: в конце контекста 128K стоимость токена падает в несколько раз.
  • Пост-трейнинг: дистилляция специалистов (по модели на домен) плюс один смешанный этап RL на GRPO — рассуждения, агентные задачи и человеческие предпочтения вместе, чтобы не было катастрофического забывания.
  • Главная инженерная часть отчёта V3.2 — как сделать масштабирование RL устойчивым: несмещённая оценка KL, маскирование сильно off-policy отрицательных примеров, сохранение маршрутизации экспертов и масок сэмплирования.
  • Вариант с увеличенным бюджетом рассуждений, V3.2-Speciale, взял золото на IMO 2025, CMO 2025, IOI 2025 и ICPC World Finals 2025 (2-е место).
РазделО чёмКуда в курсе
§2.1 DSAиндексатор, top-k, как это ложится на MLA5.5.2 «Разреженное внимание»
§2.1.1двухэтапное обучение: разогрев и разреженная стадия5.5.2
§2.3стоимость инференса в долларах за миллион токенов7.1.1
§3 Post-Trainingдистилляция специалистов, смешанный RL6.4.4
§3.1 Scaling GRPOчетыре приёма устойчивости RL6.4.3 «Варианты GRPO»
§3.2размышление внутри вызова инструментов, синтез агентных задач8.3.1 «Цикл агента»

Для текущего токена hth_t и любого предыдущего hsh_s считается оценка важности:

It,s=∑j=1HIwt,jI⋅ReLU ⁣(qt,jI⋅ksI),I_{t,s} = \sum_{j=1}^{H_I} w^{I}_{t,j}\cdot \mathrm{ReLU}\!\left(q^{I}_{t,j}\cdot k^{I}_s\right),

где HIH_I — число голов индексатора (их мало), qt,jIq^{I}_{t,j} и веса wt,jIw^{I}_{t,j} получаются из текущего токена, а ksIk^{I}_s — из предыдущего. Три решения, которые делают это дешёвым:

  • Мало голов. Индексатор — это не ещё одно внимание, а грубая и быстрая оценка.
  • ReLU вместо softmax. Авторы прямо пишут, что выбрали ReLU ради пропускной способности: не нужно нормировать по всей последовательности.
  • FP8. Индексатор считается в 8-битной точности — для ранжирования этого достаточно.
ut=Attn(ht,{cs∣It,s∈Top-k(It,:)}).u_t = \mathrm{Attn}\big(h_t, \{c_s \mid I_{t,s} \in \mathrm{Top\text{-}k}(I_{t,:})\}\big).

Берутся только kk записей KV с наибольшими оценками (k=2048k = 2048), и уже по ним считается настоящее внимание. Всё остальное — многоголовое латентное вниманиемногоголовое латентное внимание (MLA)EN multi-head latent attention (MLA)Предложено DeepSeek в DeepSeek-V2 (2024). из V2: в кэше лежат те же латентные векторы.

Важная деталь реализации: DSA строится поверх режима MQA у MLA, то есть одна запись KV используется всеми головами запроса. Иначе разные головы выбирали бы разные токены, и ядро на GPU потеряло бы смысл: экономия вычислений съелась бы хаотичным доступом к памяти.

flowchart LR
H["h_t"] --> I["Молниеносный индексатор (мало голов, ReLU, FP8)"]
H --> Q["Запросы MLA"]
KV[("KV-кэш: латентные векторы всех токенов")] --> I
I --> T["Top-k = 2048 записей"]
KV --> T
T --> A["Основное внимание (MQA-режим MLA)"]
Q --> A
A --> U["u_t"]
Как работает DSA: сначала дешёвый отбор, потом дорогое внимание по 2048 токенам (схема по §2.1 отчёта)

Индексатор должен научиться предсказывать, куда посмотрит настоящее внимание. Поэтому его учат на целевое распределение: берут оценки внимания основной модели, суммируют по всем головам и нормируют (L1) по длине последовательности — получается распределение pt,:p_{t,:}. Лосс индексатора — KL между pt,:p_{t,:} и softmax его собственных оценок.

  1. Плотный разогрев. Внимание остаётся полным, все параметры модели заморожены, учится только индексатор. Learning rate 10−310^{-3}, 1000 шагов по 16 последовательностей на 128 тыс. токенов — всего 2,1 млрд токенов.
  2. Разреженное обучение. Включается отбор top-k (2048 токенов), и теперь учатся все параметры. KL для индексатора считается уже только по выбранным токенам. Learning rate 7,3⋅10−67{,}3\cdot10^{-6}, 15 000 шагов по 480 последовательностей на 128 тыс. токенов — 943,7 млрд токенов.

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

Сложность основного внимания падает с O(L2)O(L^2) до O(Lk)O(Lk), где k=2048≪Lk = 2048 \ll L. Индексатор остаётся O(L2)O(L^2), но стоит он намного меньше, чем полное MLA. На коротких промптах разреженность не нужна, поэтому для коротких последовательностей сделан отдельный режим «MHA с маской», который имитирует DSA и работает быстрее.

Отчёт приводит графики стоимости за миллион токенов в зависимости от позиции в последовательности, замеренные на боевом сервисе на H800 по цене аренды 2 доллара за GPU-час: у V3.1-Terminus стоимость растёт линейно с позицией, у V3.2 — почти не растёт. На префилле речь о десятых долях доллара, на декодировании — о единицах; разрыв к концу контекста 128K — в разы.

Пост-трейнинг: специалисты и один смешанный RL

Заголовок раздела «Пост-трейнинг: специалисты и один смешанный RL»

Дистилляция специалистов. Для каждой области обучают отдельную модель-специалиста из одного и того же базового чекпойнта V3.2, причём большим бюджетом RL. Областей шесть: математика, программирование, общая логика, общие агентные задачи, агентное программирование, агентный поиск — плюс письмо и общие вопросы-ответы. Каждая область поддерживает режим с размышлением и без. Затем специалисты генерируют данные для финальной модели. Модель на дистиллированных данных оказывается лишь чуть хуже специалистов, а разрыв добивает последующий RL.

Смешанный RL. Рассуждения, агентные задачи и выравнивание под человека объединены в один этап GRPO — так удаётся не получить катастрофического забывания, которым страдают многоэтапные схемы (сравните с R1, где этапов четыре). Награды: для рассуждений и агентов — проверяемая награда по результату, штраф за длину и награда за единый язык; для общих задач — генеративная модель наград, у которой для каждого промпта свои критерии (рубрики).

Это самая практичная часть отчёта: что ломается, когда RL растёт в масштабе (бюджет RL уже превышает 10% от стоимости претрейна), и как это чинить.

  1. Несмещённая оценка KL. Оценка k3 из DeepSeekMath несмещена, если токены взяты из текущей политики. Но в реальности они приходят из старой политики πold\pi_\text{old}. Поэтому k3 домножают на отношение важности πθ/πold\pi_\theta/\pi_\text{old}: DKL=πθπold(πrefπθ−log⁡πrefπθ−1).\mathbb{D}_\text{KL} = \frac{\pi_\theta}{\pi_\text{old}}\left(\frac{\pi_\text{ref}}{\pi_\theta} - \log\frac{\pi_\text{ref}}{\pi_\theta} - 1\right). Без поправки токены, у которых текущая вероятность много меньше опорной (πθ≪πref\pi_\theta \ll \pi_\text{ref}), получают огромные неограниченные веса — градиенты шумят, качество выборок постепенно деградирует. Авторы добавляют: в разных областях нужна разная сила KL, а для математики его можно ослабить или вовсе убрать.
  2. Маскирование off-policy последовательностей. Большой батч генерации режут на мини-батчи и делают несколько шагов градиента — данные становятся off-policy; плюс движок генерации и движок обучения считают вероятности чуть по-разному. Решение: выбрасывать из лосса отрицательные примеры, которые слишком далеко ушли от текущей политики (средний логарифм отношения больше порога δ\delta). Маскируют только последовательности с отрицательным преимуществом: учиться на своих ошибках полезно, а на чужих, устаревших — вредно.
  3. Сохранение маршрутизации (Keep Routing). В MoE движок генерации и движок обучения могут выбрать для одного и того же входа разных экспертов. Тогда обучается не тот набор параметров, который породил ответ. Решение: запомнить маршруты, выбранные при генерации, и принудительно использовать те же при обучении. Приём применяется в DeepSeek с версии V3-0324 и назван критически важным для устойчивости RL у MoE.
  4. Сохранение маски сэмплирования (Keep Sampling Mask). Генерация идёт с top-p и top-k — часть токенов обрезана. Если при обучении считать вероятности по полному словарю, пространства действий у πold\pi_\text{old} и πθ\pi_\theta разные, и importance sampling формально неверен. Решение: сохранять маски обрезания и применять их при обучении.

Размышление внутри работы с инструментами

Заголовок раздела «Размышление внутри работы с инструментами»

У R1 рассуждения выбрасывались из контекста при каждом новом сообщении. Для агента это расточительно: после каждого вызова инструмента приходится заново продумывать всю задачу. В V3.2 правила другие:

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

Отсюда практический совет авторов: если ваш агентный фреймворк подаёт результаты инструментов как сообщения пользователя (так делают, например, Roo Code и Terminus), выигрыша не будет — для таких фреймворков лучше брать модель без режима размышления.

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

Синтез агентных задач. В RL использованы задачи четырёх типов:

Тип агентаЗадачСредаПромпты
Программирование (code agent)24 667настоящаяизвлечены
Поиск (search agent)50 275настоящаясинтезированы
Общий агент4 417синтезированасинтезированы
Интерпретатор кода5 908настоящаяизвлечены
  • Поисковый агент. Берут редкие сущности из веб-корпуса, агент-составитель вопросов исследует их поиском и строит пары «вопрос — ответ»; несколько агентов-ответчиков с разными настройками дают кандидатов; агент-проверяющий с поиском оставляет только те примеры, где правильный ответ подтверждён, а все остальные кандидаты доказуемо неверны.
  • Агент-программист. Из GitHub намайнены миллионы пар «issue — pull request»; для них автоматический агент строит исполняемые окружения. Среда считается собранной, только если применение эталонного патча переводит хотя бы один тест из «падает» в «проходит» и при этом ни один проходивший тест не ломается. Так получили десятки тысяч воспроизводимых задач на Python, Java, JavaScript, TypeScript, C, C++, Go и PHP.
  • Общий агент. Агент-синтезатор сам построил 1827 окружений по принципу «решить трудно, проверить легко».

DeepSeek-V3.2-Thinking примерно на уровне GPT-5-high на задачах рассуждения и уступает Gemini-3.0-Pro. Несколько чисел из главной таблицы отчёта (декабрь 2025): AIME 2025 — 93,1; HMMT Feb 2025 — 92,5; LiveCodeBench — 83,3; SWE Multilingual — 70,2 (лучший результат среди сравниваемых); Terminal Bench 2.0 — 46,4.

Вариант V3.2-Speciale обучен только на данных рассуждений и с ослабленным штрафом за длину, то есть думает дольше. Его результаты на олимпиадах (без специальной подготовки под них):

СоревнованиеБаллыМедаль
IMO 2025 (математика)35/42золото
CMO 2025 (математика, Китай)102/126золото
IOI 2025 (информатика)492/600золото, 10-е место
ICPC World Finals 202510/12 задачзолото, 2-е место

Ограничения, которые авторы называют сами:

  • Меньше знаний о мире, чем у передовых закрытых моделей, — следствие меньшего бюджета претрейна.
  • Экономия токенов хуже: чтобы догнать Gemini-3.0-Pro по качеству, модели нужны более длинные рассуждения (видно в таблице: Speciale тратит 23–77 тыс. токенов там, где Gemini — 15–22 тыс.).
  • Сложные задачи всё ещё даются хуже, чем лидерам.
  1. Оцените экономию. Для L=128 000L = 128\,000 и k=2048k = 2048 посчитайте отношение Lk/L2Lk/L^2 — во сколько раз меньше работы у основного внимания. Прикиньте, с какой длины контекста квадратичный индексатор перестаёт быть узким местом, если он в rr раз дешевле полного внимания на операцию.
  2. Повторите схему обучения индексатора. На игрушечном трансформере из ступени 4 снимите карты внимания, просуммируйте по головам, нормируйте и обучите маленький «индексатор» минимизировать KL. Посмотрите, какую долю настоящих top-k токенов он угадывает. Практика — в уроке 5.5.2.
  3. Проверьте несмещённый KL. Сравните на синтетических вероятностях k3 и его поправленную версию при πθ≪πref\pi_\theta \ll \pi_\text{ref}: убедитесь, что веса у k3 растут неограниченно.
  4. Сымитируйте Keep Routing. Возьмите игрушечный MoE из урока 5.3.1, слегка измените веса роутера («движок генерации» против «движка обучения») и посмотрите, у какой доли токенов меняется выбранный эксперт.
ENRU
DeepSeek Sparse Attention (DSA)разреженное внимание DeepSeek
lightning indexerмолниеносный индексатор
index scoreоценка важности (индекса)
fine-grained token selectionмелкозернистый отбор токенов
dense warm-up / sparse training stageплотный разогрев / стадия разреженного обучения
detach from computational graphотцепить от графа вычислений
specialist distillationдистилляция специалистов
mixed RL trainingсмешанный этап RL
unbiased KL estimateнесмещённая оценка KL
off-policy sequence maskingмаскирование off-policy последовательностей
keep routing / keep sampling maskсохранение маршрутизации / маски сэмплирования
thinking context managementуправление контекстом размышлений
generative reward model, rubricsгенеративная модель наград, критерии оценки
token efficiencyэкономия токенов