Self-Distillation Policy Optimization

Материал из MachineLearning.

Версия от 14:00, 16 июня 2026; Ilia Prokofev (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM OpenAI GPT-5.4 и проверена участником Ilia Prokofev 18:00, 16 июня 2026 (MSD)


Self-Distillation Policy Optimization (SDPO) — метод посттренировки больших языковых моделей, сочетающий идеи обучения с подкреплением и self-distillation. Метод предложен в работе Reinforcement Learning via Self-Distillation (arXiv:2601.20802), опубликованной 28 января 2026 года. Основная идея SDPO состоит в том, что модель может использовать собственные ответы, дополненные обратной связью от среды, как источник плотного токен-уровневого сигнала обучения.

В отличие от стандартного RLVR, где модель после каждой попытки получает только скалярную награду, SDPO опирается на более богатую форму обратной связи: сообщения об ошибках, результаты запуска кода, замечания judge-модели, текст успешного решения или другие tokenized feedback signals. На основе этой информации текущая модель выступает сразу в двух ролях:

  • как student, генерирующий исходный ответ;
  • как self-teacher, пересматривающий тот же ответ после получения feedback.

За счёт этого SDPO превращает разреженную outcome reward в плотный logit-level training signal.

Содержание

Постановка

В классической схеме RLVR для вопроса x модель с policy \pi_\theta порождает ответ

y \sim \pi_\theta(\cdot|x)

и получает только скалярную награду r \in \mathbb{R}, нередко бинарную. Такая схема страдает от credit assignment bottleneck: известно, что попытка была плохой, но неясно, какие именно токены привели к ошибке.

SDPO расширяет эту постановку до режима, который авторы называют reinforcement learning with rich feedback. Вместо одного числа модель получает текстовую обратную связь f, содержащую более детальную информацию о результате попытки. Тогда self-teacher определяется как та же самая модель, но уже в контексте вопроса и feedback:

\pi_\theta(\cdot|x,f)

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

Основная идея

Пусть student сгенерировал ответ y = (y_1,\dots,y_T). Затем среда возвращает feedback f. Вместо того чтобы сразу оптимизировать policy gradient по скалярной награде, SDPO заново вычисляет распределения next-token probabilities для той же последовательности y, но уже под self-teacher-контекстом.

Тем самым для каждого шага t сравниваются два распределения:

  • student distribution: \pi_\theta(\cdot|x,y_{<t});
  • self-teacher distribution: \pi_\theta(\cdot|x,f,y_{<t}).

Если self-teacher после получения feedback сильнее предпочитает другие токены, чем те, что student считал вероятными изначально, это интерпретируется как сигнал ошибки именно в соответствующем участке ответа.

Функция потерь

В статье SDPO формулируется как logit-level distillation objective. Основная функция потерь имеет вид:

\mathcal{L}_{\mathrm{SDPO}}(\theta) := \sum_t \mathrm{KL}\Bigl(\pi_\theta(\cdot|x,y_{<t}) \,\|\, \mathrm{stopgrad}\bigl(\pi_\theta(\cdot|x,f,y_{<t})\bigr)\Bigr)

Здесь:

  • \pi_\theta(\cdot|x,y_{<t}) — student distribution на шаге t;
  • \pi_\theta(\cdot|x,f,y_{<t}) — self-teacher distribution после получения feedback;
  • \mathrm{stopgrad} блокирует обратное распространение градиента через teacher branch.

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

Градиентная интерпретация

Одно из ключевых наблюдений авторов состоит в том, что SDPO можно интерпретировать как policy gradient с особыми token-level advantages. В статье приводится следующая форма градиента:

\nabla_\theta \mathcal{L}_{\mathrm{SDPO}}(\theta)=\mathbb{E}_{y\sim\pi_\theta(\cdot|x)}\left[\sum_{t=1}^{|y|}\sum_{\hat{y}_t\in\mathcal{V}} \nabla_\theta \log \pi_\theta(\hat{y}_t|x,y_{<t}) \cdot \log \frac{\pi_\theta(\hat{y}_t|x,y_{<t})}{\pi_\theta(\hat{y}_t|x,f,y_{<t})}\right]

где \mathcal{V} — словарь модели.

Эта формула показывает, что SDPO можно понимать как прямое обобщение RLVR:

  • вместо sequence-level scalar advantage используется плотный token-level signal;
  • advantage становится положительным или отрицательным в зависимости от расхождения между student и self-teacher;
  • нулевой вклад дают только те токены, по которым student и teacher полностью согласны.

Алгоритм

В упрощённом виде один шаг SDPO выглядит так:

  1. выбрать вопрос x;
  2. сгенерировать несколько ответов из текущей policy;
  3. получить environment feedback для каждого ответа;
  4. пересчитать log-probabilities тех же ответов под self-teacher-контекстом;
  5. обновить параметры модели по distillation loss.

Если записать это чуть более формально, то для rollout group размера G сначала генерируются ответы

\{y_i\}_{i=1}^{G} \sim \pi_\theta(\cdot|x)

затем для каждого y_i извлекается feedback f_i, после чего выполняется шаг градиентного спуска по \mathcal{L}_{\mathrm{SDPO}}.

Связь с GRPO

SDPO часто сравнивают с Group Relative Policy Optimization (GRPO), так как оба метода предназначены для online post-training reasoning-моделей.

У GRPO credit assignment строится по итоговым наградам rollout group. Если все попытки в группе получают одинаковую награду, advantage может схлопнуться к нулю. В SDPO такая проблема смягчается, потому что feedback-информированный self-teacher может всё равно указать на локальные различия между удачными и неудачными токенами.

Главные различия можно сформулировать так:

  • GRPO использует sequence-level reward и group-relative advantage;
  • SDPO использует feedback-conditioned self-distillation;
  • GRPO особенно естественен в RLVR;
  • SDPO особенно полезен там, где среда возвращает rich feedback, а не только итоговую оценку.

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

Где SDPO особенно полезен

Метод особенно хорошо подходит для сред, где ошибка сопровождается содержательным сигналом. Типичные примеры:

  • competitive programming с сообщениями о runtime errors;
  • code generation с failing unit tests;
  • tool use с диагностикой некорректного вызова;
  • scientific reasoning с judge feedback;
  • agentic systems, в которых можно логировать промежуточные состояния и выдавать их модели как tokenized feedback.

Именно в таких задачах разница между получить число 0 и получить объяснение, почему получен 0 наиболее существенна.

Практические детали

Авторы отмечают, что у SDPO есть умеренный вычислительный overhead: кроме student forward pass нужно ещё вычислить log-probabilities self-teacher. Однако это дешевле, чем полноценная дополнительная генерация, так как учителю не нужно сэмплировать новый ответ — достаточно переоценить уже существующую траекторию.

Для повышения устойчивости в статье используются две важные модификации:

  • регуляризованный self-teacher, например через EMA teacher или интерполяцию с исходной моделью;
  • симметричная дивергенция Йенсена — Шеннона вместо чистой KL-дивергенции в некоторых практических вариантах.

Кроме того, для экономии памяти предлагается приближённая top-K distillation, чтобы не хранить полные logits student и teacher на всём словаре.

Экспериментальные результаты

Согласно abstract и основным таблицам статьи, SDPO улучшает и sample efficiency, и финальное качество по сравнению с сильными RLVR-baseline'ами.

Авторы рассматривают три сценария:

  • обучение без rich feedback, где успешные rollouts используются как implicit feedback;
  • обучение с rich feedback на задачах competitive programming из LiveCodeBench v6;
  • test-time self-distillation для ускоренного поиска решения на трудных бинарных задачах.

В частности, на LiveCodeBench v6 с Qwen3-8B SDPO, по данным статьи, существенно превосходит улучшенную версию GRPO и достигает сопоставимого качества примерно в 4\times меньшее число генераций. Авторы также сообщают, что в test-time режиме SDPO позволяет достигать той же вероятности нахождения решения, что и best-of-k, примерно в 3\times меньшее число попыток.

Ограничения

Несмотря на сильные результаты, у метода есть и ограничения.

  • Качество обучения зависит от того, насколько полезен feedback для ретроспективного исправления ошибки.
  • Если self-teacher сам плохо интерпретирует feedback, distillation signal может быть шумным.
  • Метод слабее мотивирован в задачах, где у среды почти нет содержательной обратной связи сверх скалярной награды.
  • Увеличивается вычислительная стоимость обучения по сравнению с чистым GRPO.

Кроме того, SDPO по определению опирается на предположение, что модель способна быть лучшим teacher'ом для самой себя после получения дополнительного контекста. Это предположение сильнее выполняется для крупных моделей с хорошими in-context reasoning abilities.

Значение метода

SDPO важен тем, что он предлагает промежуточную точку между двумя традиционными режимами посттренировки:

  • RL по скалярным наградам;
  • distillation от внешнего сильного teacher'а.

Вместо внешнего учителя используется та же самая модель, но в более информированном контексте. Это делает SDPO особенно интересным для online learning, где сильный teacher может быть недоступен, а rich environment feedback уже существует.

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

См. также

Литература

  • Hübotter J., Lübeck F., Behric L., Baumann A., Bagatella M., Marta D., Hakimi I., Shenfeld I., Kleine Buening T., Guestrin C., Krause A. Reinforcement Learning via Self-Distillation. arXiv:2601.20802, 2026. https://arxiv.org/abs/2601.20802
  • Schulman J. et al. Proximal Policy Optimization Algorithms. arXiv:1707.06347, 2017. https://arxiv.org/abs/1707.06347
  • Shao Z. et al. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv:2402.03300, 2024. https://arxiv.org/abs/2402.03300
Личные инструменты