Self-Refine — это цикл generate -> critique -> revise, где модель сначала создаёт черновик, затем оценивает его недостатки и переписывает ответ с учётом собственной критики. В 2026 это один из самых практичных verification-паттернов для writing, code generation, explanations и structured analysis: первый ответ часто "достаточно хороший", но после осмысленной редактуры становится заметно сильнее.
Single-pass generation часто страдает от типовых проблем:
Self-Refine полезен тем, что даёт модели второй шанс, но не в режиме "просто попробуй ещё раз", а через явную критику по критериям.
Главная сила техники в разделении ролей:
author генерирует draft;critic ищет слабые места;editor делает controlled revision.Это заметно лучше, чем единая расплывчатая инструкция "улучши ответ", потому что она делает improvement targeted, а не косметическим.
Плохой вариант:
Хороший вариант:
Чем конкретнее рамка критики, тем полезнее и стабильнее refinement.
Лучшие сценарии:
Self-Refine не лучший выбор, если:
RAG или CoVe;structured outputs;Factored Verification или Self-Consistency.Проще говоря: Self-Refine отлично шлифует ответ, но плохо исправляет фундаментально неверную epistemic base.
Обычно лучший режим — это не бесконечный refine-loop, а всего 1-2 прохода:
В большинстве практических систем один critique-pass уже даёт основную пользу. Третий и четвёртый проходы обычно приносят мало качества и много cost.
Напиши письмо клиенту о переносе релиза. Потом оцени письмо по критериям: ясность, ответственность, отсутствие лишней обороны, конкретный next step. Перепиши финальную версию.
Финальная версия письма стала короче, убрала оправдания, добавила новую дату и следующий шаг по коммуникации.
Шаг 1: предложи исправление race condition. Шаг 2: сам проверь решение по критериям correctness, simplicity, side effects. Шаг 3: перепиши исправленную версию.
Во второй версии решение добавляет блокировку только на критический участок и не меняет внешний API функции.
Сделай product memo. Затем покритикуй его по критериям: missing risks, unsupported assumptions, weak next step. Потом перепиши финальную версию.
Итоговая версия явно разделяет подтверждённые выводы и гипотезы, добавляет риск retention и более конкретный эксперимент.
Частые ошибки:
Отдельный риск — over-editing. Модель начинает шлифовать стиль и теряет полезную конкретику, которая была в draft.
Self-Refine хорошо измеряется не по ощущению "текст стал глаже", а по более прикладным сигналам:
Если после refine-pass ответы становятся только длиннее, но не уменьшают число правок, значит цикл либо плохо спроектирован, либо в этой задаче он просто не нужен.
Иногда лучшая стратегия — сохранить draft и не принимать revised version. Это особенно важно, когда:
В production полезно сравнивать draft и revision отдельным lightweight judge или human spot-check. Self-Refine не обязан автоматически принимать вторую версию только потому, что она "финальная".
1. Что лежит в основе Self-Refine?
2. Что делает технику заметно сильнее?
3. Где Self-Refine обычно слабее?