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).
