On-policy distillation: одного примера достаточно для обучения

On-policy distillation: одного примера достаточно для обучения

Сколько примеров нужно, чтобы дообучить языковую модель? Тысячи, считает индустрия: стеки пост-тренировки Qwen3, DeepSeek-V4, GLM-5 и Kimi K3 прогоняют через on-policy distillation датасеты из десятков тысяч запросов. Новая работа с arXiv (сентябрь 2026) решила проверить нижнюю границу и остановилась на абсолютном минимуме: один запрос. Результат ломает интуицию. Модель, обучаемая на единственном примере, продолжает улучшаться сотни шагов подряд и восстанавливает большую часть прироста, который даёт полный датасет из 17 тысяч запросов.

Вывод авторов звучит как диагноз всему подходу: on-policy distillation перекормлена данными, но голодна по алгоритму. Узкое место не в том, сколько примеров вы собрали, а в том, как быстро студент способен усваивать сигнал учителя. И это меняет представление о том, за что мы платим при дообучении моделей.

Что такое on-policy distillation

On-policy distillation (OPD) это метод дообучения, при котором студент генерирует собственные ответы, а модель-учитель подсказывает ему полное распределение вероятностей следующего токена на каждом префиксе, который студент реально посетил. В отличие от reinforcement learning с проверяемой наградой (RLVR), где сигнал один на весь ответ, OPD даёт плотную пословную обратную связь: учитель оценивает каждый токен траектории.

Именно эта плотность сделала OPD стандартным компонентом фронтирного пост-тренинга. Метод сочетает on-policy сэмплирование, при котором студент учится на собственных ошибках, с дистилляционным сигналом, который несёт в разы больше информации, чем бинарная награда «решил или не решил». До сих пор исследования объясняли, почему OPD работает, исключительно со стороны алгоритма: геометрия обновлений, низкоранговые подпространства, failure modes. Никто не спрашивал, как на метод влияют сами данные. Авторы новой работы закрыли этот пробел самым радикальным способом: сократили датасет до одного запроса.

Эксперимент: один запрос против 17 тысяч

Сетап воспроизводит реальный пост-тренинг в миниатюре. Студентом в основной паре выступает DeepSeek-R1-Distill-Qwen-1.5B, учителем по математике JustRL-1.5B. Для контроля общности добавлены пары из других семейств: Llama-3.2-3B-Instruct с GT-Llama-3B-Math и OLMo-3-7B с собственным instruct-вариантом. Домены тоже разные: математическое рассуждение (датасет DAPO-Math-17K), генерация кода, следование инструкциям и агентное использование инструментов.

В математике one-shot OPD к шагу 300 набирает в среднем 68,5 балла по MATH-500, AMC 2023 и AIME 2025 против 69,8 у полного датасета. Это 69% восстановленного разрыва между студентом и учителем и 87% прироста полного датасета. К шагу 1000 картина сохраняется: 68,4 против 72,1, то есть 72% прироста. Эффект устойчив и по семействам моделей: R1-Distill растёт с 77,1 до 85,5, Llama-3B с 28,2 до 40,2, OLMo-7B с 70,8 до 82,4. В остальных доменах один запрос восстанавливает 73% разрыва с учителем в коде, 66% в следовании инструкциям и 64% в tool use.

Самое контринтуитивное наблюдение касается сложности запроса. Авторы взяли три задачи: лёгкую, которую студент решал в 8 из 8 rollout'ов до обучения, среднюю с pass rate 4 из 8 и тяжёлую, которую модель не решила ни разу за все 300 шагов. Прирост на бенчмарках оказался сопоставимым во всех трёх случаях. Запрос, который студент принципиально не может решить, обучает его не хуже, чем запрос, который он щёлкает с закрытыми глазами. Ограничение длины ответа и снижение температуры сэмплирования картину тоже не ломают.

Почему одного примера хватает: данные

Ответ авторы разделили на две половины, и первая касается данных. Ключевое наблюдение: OPD потребляет не запросы, а состояния. Запрос плюс сгенерированный ответ порождают состояние на каждой токенной позиции, и именно к нему прикладывается сигнал учителя. При 64 rollout'ах на шаг даже один запрос производит десятки тысяч размеченных состояний.

Чтобы измерить не количество, а широту этого покрытия, авторы ввели метрику state coverage: состояния, которые посещает полный датасет, разбиваются на семантические кластеры через эмбеддинги, после чего считается доля кластеров, которых достигают rollout'ы конкретной конфигурации. Один запрос покрывает 71,5% пространства состояний полного датасета, причём основную часть этого покрытия набирает уже в первые сто шагов. Шестнадцать семантически разнообразных запросов покрывают 98,9% и по качеству не отличаются от полного датасета.

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

Почему обучение тянется сотни шагов: алгоритм

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

Дистанция падает на протяжении всего прогона, но скорость поглощения снижается стабильно. Главное: кривая этого снижения практически не зависит от числа запросов. Между шагами 30 и 300 конфигурация с одним запросом сокращает дистанцию до 0,16 от стартовой, а полный датасет из 17 тысяч до 0,22. Скорость поглощения между шагами 50 и 200 падает в 5,6 раза для одного запроса и в 6,4 раза для полного датасета. Темп обучения задаёт оптимизатор, а не тренировочный набор. Даже фиксированный набор состояний, подаваемый снова и снова, требует сотен шагов для усвоения: свежие данные не являются топливом, которое держит прогон на плаву.

Иными словами, сигнал, который один запрос поставляет студенту, остаётся по большей части неизрасходованным. Ограничивает его не запас данных, а пропускная способность обновления. Здесь и рождается формула «data-overfed, algorithm-starved»: данные перекормлены, алгоритм недокормлен.

Пустой промпт работает не хуже

Если ценность запроса в состояниях, которые он индуцирует, возникает провокационный вопрос: а нужно ли в запросе вообще содержание? Авторы проверили три варианта: пустой пользовательский ход, заканчивающийся тегом <think>, тот же шаблон с однострочным системным промптом вроде «реши олимпиадную задачу» и запросы из WildChat, корпуса из 192 824 бытовых диалогов, где математических всего 0,17%, а программистских 2,63%.

Все три условия повторили динамику реального датасета: средний балл по трём математическим бенчмаркам вырос с 59,1 до 69,8, причём «пустые» условия достигли того же уровня за треть-половину rollout-токенов базового прогона. В генерации кода разрыв токенных бюджетов ещё нагляднее: за 500 шагов полный датасет TACO потратил 277 миллионов rollout-токенов, а пустой шаблон 18 миллионов, финишировав в пределах 1,7 балла друг от друга. Входу не нужно содержать задачу. Ему нужно лишь запустить рассуждение студента в область, где учитель может дать полезный сигнал.

Мульти-учительный сценарий и связь с one-shot RLVR

Современные пайплайны всё чаще используют multi-teacher OPD, где один студент обучается у нескольких доменных учителей в одном прогоне. Авторы проверили, переносится ли результат: 16 семантически разнообразных запросов на домен сравнялись с полным датасетом и в этом режиме. Полный MOPD поднял среднюю валидационную точность с 43,5 до 52,8, восстановив 79% разрыва с учителями, а 16 запросов на домен повторили этот результат. Сам MOPD уступил трём раздельным полным прогонам всего на один балл: 52,8 против 53,8.

Отдельно любопытно сравнение с one-shot RLVR, где единственный пример тоже даёт долгий прирост, но сигнал там разреженный: одна награда на весь ответ. Кривые обучения двух методов поразительно похожи, что намекает на общий механизм. Разница в том, что OPD оценивает каждый токен через учителя, тогда как RLVR вынужден ждать исхода целиком. Это и объясняет, почему дистилляция извлекает из одного запроса больше.

Что это значит на практике

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

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

Честности ради стоит назвать ограничения. State coverage это семантический прокси, измеренный относительно пространства полного датасета, а не абсолютная величина. Что именно задаёт скорость поглощения, открытый вопрос. Мульти-учительный тест покрывал три домена с одним учителем в каждом, и неизвестно, как результат масштабируется на большее их число. Наконец, все модели в работе небольшие, от 1,5B до 7B параметров.

Часто задаваемые вопросы

Правда ли, что для дообучения LLM достаточно одного примера?

Для on-policy distillation в контролируемом эксперименте да: один запрос восстановил 69% разрыва между студентом и учителем в математике и 64-73% в коде, следовании инструкциям и tool use. Это работает потому, что один запрос порождает десятки тысяч обучающих состояний через rollout'ы студента.

Чем on-policy distillation отличается от обычного RL?

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

Значит ли это, что большие датасеты для пост-тренинга не нужны?

Не совсем. Шестнадцать семантически разнообразных запросов уже сравнялись с полным датасетом, так что массивы в тысячи примеров избыточны для OPD. Но работа изучала модели до 7B параметров и не отвечает, сохраняется ли эффект на фронтирном масштабе.

Итог

On-policy distillation на одном примере это не трюк, а диагностика: эксперимент показал, что OPD упирается не в объём данных, а в скорость, с которой оптимизатор усваивает сигнал учителя. Один запрос покрывает 71,5% пространства состояний полного датасета, шестнадцать разнообразных запросов воспроизводят полное обучение, а пустой промпт работает наравне с реальными задачами. Если вы строите пайплайн дистилляции, начните с аудита своего датасета: скорее всего, 99% запросов в нём ведут студента туда, где он уже был. Деньги, которые вы собирались потратить на сбор данных, лучше вложить в выбор сильного учителя и более эффективный оптимизатор.

← Все записи