3,583 papers
arXiv:2608.12486 74 12 авг. 2026 г. FREE

DIVE: как научить модель самообучаться без изменения весов — через несколько параллельных «памяток» вместо одной

КЛЮЧЕВАЯ СУТЬ
Парадокс: чтобы модель не наступала на одни и те же грабли, оказалось лучше вести не одну инструкцию, а сразу несколько параллельных. DIVE позволяет модели самообучаться на прошлых ошибках без дообучения — вся «учёба» живёт в текстовой памятке, а не в весах модели. Фишка: вместо правки одной версии до полного изнеможения, метод держит несколько независимых веток и в конце собирает дополняющий друг друга набор — на новой задаче каждая версия даёт свой ответ, а модель выбирает надёжнейший.
Адаптировать под запрос

TL;DR

DIVE — метод, который превращает опыт решения задач в текстовую памятку (skill): свод правил, типичных ошибок и шагов решения. Модель сама пишет эту памятку по своим прошлым попыткам и фидбеку «верно/неверно», а потом использует её в будущих запросах — веса модели при этом не меняются, всё живёт в тексте. Ключевая находка метода: вместо того чтобы дорабатывать одну версию инструкции, DIVE ведёт сразу несколько параллельных версий и потом комбинирует лучшие.

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

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


🔬

Схема метода

ШАГ 1: Собрать примеры решений с фидбоком (верно/неверно) → банк опыта
ШАГ 2: Из опыта выделить К стартовых памяток (разные акценты) → К начальных версий
ШАГ 3: Каждую версию отдельно дорабатывать 4 приёмами правки:
        — исправить по ошибкам (Reflective Repair)
        — рискнуть с иным подходом (Exploratory Revision)
        — сжать, оставить только рабочее (Compression)
        — смешать удачные куски двух памяток (Recombination)
        → улучшенные кандидаты в каждой ветке
ШАГ 4: Проверить всех кандидатов на отдельном наборе примеров,
        выбрать М памяток, которые дополняют друг друга → финальный набор
ШАГ 5 (на новой задаче): каждая из М памяток даёт свой ответ →
        модель сравнивает все ответы и выбирает лучший

Шаги 1–4 — это цикл «тренировки» (много примеров, много раундов). Шаг 5 — то, что происходит каждый раз, когда приходит новая задача.


🚀

Пример применения

Задача: Репетитор готовит учеников к олимпиадной математике (задачи типа ЕГЭ-профиль или вступительных олимпиад) и прогоняет через ChatGPT десятки однотипных задач с известными правильными ответами. Хочется, чтобы модель со временем «выучила» рабочую методику именно для этого типа задач, а не решала каждую с нуля.

Промпт (Этап 1 — создание стартовых памяток):

Вот 15 задач по теме «задачи на движение и проценты» и мои решения 
с отметкой правильности:
{список задач: условие, решение модели, верно/неверно}

Создай 3 разные версии памятки-инструкции для решения таких задач.
Каждая версия — свой акцент (например: одна через уравнения, 
другая через таблицы, третья через прикидку и проверку).
Каждая памятка: пошаговая стратегия, типичные ошибки, 
формат финального ответа.

Промпт (Этап 2 — доработка одной ветки после новых примеров):

Вот памятка версии 1: {текст памятки}
Вот 10 новых задач, решённых по этой памятке, с результатом:
{примеры с верно/неверно}

Улучши памятку одним из способов:
— Reflective Repair: исправь конкретную ошибку, видную в примерах
— Exploratory Revision: попробуй другой подход к формулировке
— Compression: убери лишнее, оставь рабочее
— Recombination: возьми удачную идею из памятки версии 2: {текст}
Выбери способ и дай новую версию памятки.

Промпт (Этап 3 — финальный набор и решение новой задачи):

Вот 3 доработанные памятки: {список}
Вот новая задача: {условие}

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

Результат: после 2-3 раундов правки у репетитора будет 2-3 отдельные «методички» решения задач этого типа. На каждой новой задаче модель прогонит её через все методички, покажет три варианта решения и аргументирует, какой считает надёжнее — вместо одной попытки «в лоб».


🧠

Почему это работает

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

Зато модель хорошо умеет две вещи: писать структурированный чеклист по набору примеров и сравнивать несколько готовых ответов, выбирая лучший (роль судьи).

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

Рычаги управления: - Количество параллельных веток — для простых повторяющихся задач достаточно 2-3 версии вместо 5+, это экономит время на прогонку. - Количество финальных памяток в наборе — если оставить только одну (без разнообразия), метод превращается в обычную линейную доработку промпта и теряет главный эффект (в исследовании разница между «одна памятка» и «набор из 10» была очень существенной). - Виды операторов правки — можно оставить только «исправление по ошибкам» и «сжатие», если не хватает терпения гонять все четыре приёма.


📋

Шаблон промпта

🚀 Быстрый старт — вставь в чат:

Вот принцип метода DIVE (диверсифицированная эволюция навыков). 
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон из "Примера применения" выше — все 3 этапа]

LLM спросит, сколько у тебя примеров с фидбоком и какой тип задач — потому что без банка «верно/неверно» метод не имеет опоры для правки памятки. Она возьмёт структуру из шаблона (стартовые версии → доработка операторами → финальный набор → сравнение ответов) и подстроит под твой контекст.


⚠️

Ограничения

⚠️ Нужен чёткий критерий правильности: метод работает там, где можно однозначно сказать «верно» или «неверно» — математика, логика, код, юридические да/нет-проверки. Для творческих и субъективных задач (тексты, дизайн, стратегия) метод не даёт опоры для правки памятки.

⚠️ Требует много примеров и раундов: эффект появляется после десятков-сотен прогонов с фидбеком. На разовой задаче метод не даст выигрыша — это инструмент для повторяющейся работы одного типа.

⚠️ Полная версия метода требует автоматизации: в оригинале — параллельные вычисления, алгоритм распределения бюджета между приёмами правки (UCB), тысячи прогонов через API. В чате доступна только упрощённая ручная версия принципа — без автоматики, но с сохранённой логикой.


🔍

Как исследовали

Команда проверила DIVE на шести задачах математической и логической логики — олимпиадная математика (HMMT), уравнительные теории, судоку, криптарифметика, калькудоку, футошики — на нескольких моделях, включая GPT-5-nano, DeepSeek и Qwen. Сравнивали с десятком подходов: от простого zero-shot до self-consistency, дерева мыслей, RAG на опыте, промпт-оптимизации (GEPA, MIPROv2), а также с «настоящим» обучением через дообучение весов (SFT, GRPO).

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

Самая любопытная деталь: маленькая модель GPT-5-nano с накопленной памяткой DIVE обошла более крупную GPT-5 на обычном промптинге в нескольких задачах. Вывод для практики прост — качество накопленного текстового опыта иногда важнее размера модели.


🔗

Ресурсы

DIVE: Unlocking Self-Improvement in Frozen Language Models Through Diversity-Driven Skill Evolution — Siheng Xiong, Ali Payani, Oguzhan Gungordu, Faramarz Fekri (Georgia Institute of Technology, Cisco Research). Упомянутые связанные методы: Reflexion (Shinn et al., 2023), GEPA (Agrawal et al., 2025), MIPROv2 (Opsahl-Ong et al., 2024).


📋 Дайджест исследования

Ключевая суть

Парадокс: чтобы модель не наступала на одни и те же грабли, оказалось лучше вести не одну инструкцию, а сразу несколько параллельных. DIVE позволяет модели самообучаться на прошлых ошибках без дообучения — вся «учёба» живёт в текстовой памятке, а не в весах модели. Фишка: вместо правки одной версии до полного изнеможения, метод держит несколько независимых веток и в конце собирает дополняющий друг друга набор — на новой задаче каждая версия даёт свой ответ, а модель выбирает надёжнейший.

Принцип работы

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

Почему работает

Модель, правя свою инструкцию сама, страдает простой болезнью — переоценивает последнюю неудачу. Увидела один провал — и резко меняет стратегию, ломая то, что работало в 9 из 10 случаев. Зато у модели есть два сильных навыка: писать чёткий чеклист по примерам и сравнивать готовые ответы, выбирая лучший. DIVE склеивает эти два навыка — параллельные ветки не дают правкам слипнуться в одну кривую линию, а роль судьи в конце выбирает надёжный ответ из нескольких, вместо того чтобы полагаться на одну перекошенную версию.

Когда применять

Задачи с чётким критерием правильности (верно/неверно) → математика, код, логические проверки, юридические да/нет-задачи, особенно когда одна и та же модель решает десятки однотипных задач подряд. Не подходит для творческих и субъективных задач — текстов, дизайна, стратегии, где нет однозначного «верно/неверно» для правки памятки.

Мини-рецепт

1. Собери банк опыта: десятки решённых задач одного типа с отметкой верно/неверно.
2. Создай стартовые версии: попроси модель сделать 2-3 памятки с разными акцентами (через уравнения, через таблицы, через прикидку).
3. Правь каждую ветку отдельно: после новых примеров выбирай один из 4 приёмов — точечный фикс ошибки, смелая переформулировка, сжатие, смешивание удачных кусков из двух памяток.
4. Отбери дополняющий набор: не одну «лучшую» памятку, а 2-3, которые ошибаются на разных задачах.
5. На новой задаче: прогони её через все памятки, сравни ответы, выбери самый надёжный.

Примеры

[ПЛОХО] : Вот моя инструкция для решения задач, улучши её по этим 10 новым примерам с ошибками
[ХОРОШО] : Вот 3 памятки версии 1, 2, 3 и 10 новых задач с результатом верно/неверно. Улучши каждую отдельно одним из приёмов: точечный фикс ошибки, смелая переформулировка, сжатие, или возьми удачную идею из другой памятки
Источник: DIVE: Unlocking Self-Improvement in Frozen Language Models Through Diversity-Driven Skill Evolution
ArXiv ID: 2608.12486 | Сгенерировано: 2026-08-14 06:26

Проблемы LLM

ПроблемаСутьКак обойти
Модель зацикливается на последней ошибке при самоправке инструкцииПросишь модель улучшить свою же инструкцию по фидбоку "верно/неверно". Она видит один свежий провал и резко меняет всю стратегию. То, что работало на 9 из 10 прошлых задач, ломается ради исправления одной свежей ошибки. Проблема для любой задачи, где инструкция дорабатывается итеративно по обратной связиВеди несколько параллельных версий инструкции вместо одной. Правь каждую разными приёмами. В конце используй все версии вместе, а не одну финальную

Методы

МетодСуть
Параллельные версии инструкции вместо одной — надёжнее ансамбляДай модели банк примеров с меткой "верно/неверно". Попроси создать несколько (2-5) разных стартовых версий инструкции с разными акцентами. Каждую версию дорабатывай отдельно одним из четырёх приёмов: точечно исправить ошибку, попробовать смелый другой подход, сжать до рабочего минимума, смешать удачные куски двух версий. Создай N версий инструкции, каждая — свой подход. В конце не выбирай одну "лучшую" — оставь несколько дополняющих друг друга. На новой задаче прогони её через все версии, получи несколько ответов, попроси модель сравнить их и выбрать самый надёжный. Почему работает: одна инструкция при правке скатывается к последней ошибке; несколько независимых версий покрывают разные типы ошибок и не мешают друг другу. Работает: есть чёткий критерий правильности (да/нет, математика, код), много однотипных повторяющихся задач. Не работает: разовая задача, субъективная оценка без критерия правильности
📖 Простыми словами

DIVE: Unlocking Self-Improvement in FrozenLanguageModelsThrough Diversity-Driven Skill Evolution

arXiv: 2608.12486

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

Это как если бы ты учил стажёра варить кофе, но у него память как у золотой рыбки — каждое утро он всё забывает. Вместо того чтобы делать ему лоботомию, ты заставляешь его записывать каждый факап в блокнот: «не сыпь соль вместо сахара», «не перегревай молоко». Но есть нюанс: если стажёр один раз пережжёт зерно, он может сдуру выкинуть всю кофемашину. DIVE решает это через разнообразие: модель ведёт не один блокнот, а сразу несколько параллельных стратегий, чтобы случайная ошибка не угробила всё, что работало до этого.

Главная фишка метода — эволюция навыков. Модель не просто правит текст, она фильтрует мусор. Если мы просто будем дописывать советы после каждой ошибки, инструкция превратится в нечитаемую помойку. DIVE работает как селекция: он плодит разные версии «шпаргалок», тестирует их на задачах и скрещивает лучшие идеи между собой. В итоге выживают только те правила, которые реально повышают точность, а не просто исправляют один конкретный случай, ломая остальные десять.

Тестировали это на сложной математике и логике, но принцип универсален. Эту схему можно натянуть на что угодно: от написания кода в специфическом стиле до юридической экспертизы. Если у тебя есть пачка однотипных задач и понятный критерий «правильно/неправильно», ты можешь заставить модель саму выработать идеальный алгоритм действий. Это превращает обычную LLM в узкоспециализированного эксперта, который с каждой задачей становится только круче, при этом оставаясь «замороженным» внутри.

Короче: хватит надеяться, что модель «сама поймёт» контекст из одного примера. DIVE доказывает, что параллельный поиск стратегий и фиксация опыта в тексте работают лучше, чем бесконечные попытки улучшить один и тот же промпт вручную. Либо ты заставляешь нейронку вести «дневник ошибок» и эволюционировать, либо она будет наступать на одни и те же грабли вечно. Кто внедрит такую самокоррекцию в свои пайплайны, тот получит качество уровня дообученных моделей по цене обычного запроса.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с