Self-Refine
Генерация → самокритика → правка
Проблема: Первый черновик модели редко бывает лучшим. Как заставить ту же модель улучшить свой собственный вывод — без дообучения и без обратной связи от человека?
Решение: Редактируй свой черновик
Self-Refine — это техника промптинга, где одна и та же модель генерирует ответ, критикует свой вывод и переписывает его — повторяя цикл, пока результат не станет достаточно хорошим. Одна модель играет три роли на одном промпте: генератор пишет черновик, критик выдаёт конкретную, применимую самокритику, а редактор переписывает черновик с учётом этой обратной связи. Метод не требует ни дообучения, ни обратной связи от человека, но в оригинальной статье сообщается о приросте качества в среднем около 20% на ряде задач.
Как работает цикл
Цикл прост: генерация → self-feedback → правка, повторяемый. Сначала модель выдаёт начальный ответ. Затем — и это ключевой шаг — она пишет конкретную, точечную самокритику, а не расплывчатое «попробуй ещё раз»: «функция не обрабатывает пустой список» или «второй абзац повторяет первый». Именно явная, адресная обратная связь делает следующую правку реально лучше; голый повтор просто пересэмплирует и обычно воспроизводит те же недостатки. Наконец модель переписывает ответ с учётом обратной связи, и цикл повторяется.
Когда останавливаться — и связь с другими техниками
Останавливайся по критерию остановки: максимальное число итераций (обычно 2–4) или плато качества, когда критика перестаёт находить значимые проблемы. Чрезмерное улучшение может навредить: когда ответ уже верный, лишние круги добавляют многословия или перепроверяют правильный ответ в неправильный, поэтому ограничивай цикл. Self-Refine отличается от своих «родственников»: Reflexion хранит вербальную память между эпизодами, чтобы учиться на провалах со временем, а Chain of Verification узко проверяет факты. Self-Refine же шлифует качество одного ответа в рамках одного эпизода.
Представьте это как писатель, редактирующий свой черновик — написать, критически прочитать, переписать, повторить:
- 1. Генерация: Создать первый вариант ответа
- 2. Самокритика: Дать конкретную, предметную обратную связь на свой вывод
- 3. Переписать: Переписать ответ с учётом этой обратной связи
- 4. Повторить или остановиться: Повторять до критерия остановки или плато качества
Где это используется?
- Исправление и рефакторинг кода: Модель проверяет свой код, находит баги и слабые места и переписывает его
- Шлифовка текста и тона: Критика ясности, структуры и тона, затем переписывание черновика
- Исправление в математике: Перепроверка каждого шага и исправление арифметических или логических ошибок
- Починка структурированного вывода: Валидация JSON/схемы, затем починка полей, нарушающих правила
Интересный факт: Self-Refine работает потому, что критика явная: расплывчатое «улучши это» почти не помогает, а конкретная обратная связь вроде «строка 4 падает на пустом вводе» даёт редактору что исправлять — поэтому цикл самокритики бьёт простую повторную генерацию ответа.
Попробуйте сами!
Используй интерактивный пример ниже, чтобы увидеть, как черновик превращается в отшлифованный ответ за итерации self-refine, и как растёт шкала качества с каждым кругом.
🔁 Одна модель играет три роли — генератор, критик, редактор — повторяя цикл генерация → self-feedback → правка, пока ответ не станет достаточно хорошим.
Напиши однострочный слоган для приложения заметок.
Конкретная и применимая самокритика — вот что делает правку лучше. В этом примере один проход даёт 45%, а цикл self-refine доходит до 92% — в среднем около 20% прироста на задачах, без всякого дообучения.
Частые вопросы
Что такое Self-Refine и как работает цикл?
Self-Refine — это техника промптинга, где одна и та же модель генерирует ответ, пишет конкретную обратную связь на свой вывод (self-critique, самокритику), а затем переписывает его с учётом этой обратной связи — повторяя цикл генерация → self-feedback → правка. Одна модель играет три роли: генератор, критик и редактор. Метод не требует ни дообучения, ни обратной связи от человека, но улучшает качество в среднем примерно на 20% на разных задачах.
Чем Self-Refine отличается от Reflexion и Chain-of-Verification?
Все три добавляют цикл самоулучшения, но решают разные задачи. Self-Refine шлифует качество одного ответа через самокритику и переписывание в рамках одного эпизода. Reflexion хранит вербальную память между эпизодами или попытками, учась на провалах со временем. Chain-of-Verification узко сфокусирован на проверке фактов — генерирует проверочные вопросы и отвечает на них независимо. Бери Self-Refine для итеративного улучшения качества, Reflexion — для обучения за несколько попыток, а CoVe — для фактической точности.
Когда останавливать улучшение и может ли оно навредить?
Останавливайся по чёткому критерию: максимальное число итераций (обычно 2–4) или плато качества, когда обратная связь перестаёт находить значимые проблемы. Да, чрезмерное улучшение может навредить — когда ответ уже верный, лишние круги добавляют многословия, перепроверяют правильный ответ в неправильный или уводят от исходных требований. Ограничивай цикл и останавливайся, когда критика возвращает «существенных правок не требуется».
Попробуй сам
Интерактивное демо этой техники
Напиши однострочный слоган для приложения заметок.
«Хорошее приложение для ваших заметок.»
Черновик 1: «Хорошее приложение для ваших заметок.»
🔍 Самокритика: «Хорошее приложение» — общие слова. Нет выгоды и эмоции для читателя.
Черновик 2: «Лови каждую идею, пока она не ускользнула.»
🔍 Самокритика: Уже есть выгода, но можно короче и резче.
Финал: «Больше ни одной потерянной мысли.»
✅ Критика не находит значимых проблем — останавливаюсь.
Конкретная самокритика («общие слова, нет выгоды») превращает банальный черновик в яркий слоган за 2 итерации — и цикл останавливается на плато, а не крутится бесконечно.
Создайте бесплатный аккаунт для решения челленджей
3 челленджей с AI-проверкой для этого урока
Этот урок — часть структурированного курса по LLM.
Мой путь обучения