TL;DR
Reflect — техника, которая улучшает ответы LLM через пост-генерационную проверку на соблюдение принципов. Модель сначала генерирует ответ с учётом принципов, потом сама оценивает каждый принцип по шкале 1-5, и если находит нарушение — критикует себя и переписывает ответ. Всё происходит в обычном чате, без fine-tuning.
LLM лучше распознают нарушения принципов в готовом тексте, чем избегают их при генерации. Если попросить модель "соблюдать принцип X" — она может нарушить. Но если показать текст и спросить "нарушен ли принцип X?" — она точно найдёт проблему. Когда ты перечисляешь 4-5 правил в начале промпта, модель может упустить какое-то — особенно если принципы сложные или противоречат друг другу. Это происходит из-за causal attention в архитектуре Transformer: при проверке модель видит и принцип, и весь текст одновременно, а при генерации — только принцип в начале.
Reflect использует эту особенность: модель генерирует текст → сама оценивает по каждому принципу → если балл ниже 3 из 5, запускается критика и ревизия в одном промпте. Особенно эффективно для редких, но серьёзных нарушений (tail safety) — когда в среднем модель соблюдает принцип, но 5-10% ответов грубо нарушают. Reflect снижает долю таких случаев в 2-3 раза.
Схема метода
ШАГ 1: Генерация с учётом принципов
→ Промпт: "Вот принципы [список]. Ответь на вопрос: [вопрос]"
→ Результат: базовый ответ
ШАГ 2: Самооценка
→ Промпт: "Оцени свой ответ по каждому принципу от 1 до 5"
→ Результат: список оценок по принципам
ШАГ 3: Критика и ревизия (если балл < 3)
→ Промпт: "Принципы с низкой оценкой: [список]. Критикуй ответ и перепиши."
→ Результат: улучшенный ответ
Все шаги выполняются в одной сессии чата, выводы копируешь между запросами.
Пример применения
Задача: Написать пост для Telegram-канала вашего стартапа по доставке еды. У вас есть tone-of-voice guidelines: (1) без агрессивных продаж, (2) используй юмор поколения Z, (3) не обещай то, чего не можем гарантировать, (4) упоминай конкурентов только нейтрально.
Промпт (шаг 1):
Вот принципы коммуникации нашего бренда:
1. Избегай агрессивных продаж и манипуляций
2. Используй юмор поколения Z (мемы, самоирония, культурные отсылки)
3. Не обещай то, что не можем гарантировать (доставка "за 15 минут всегда")
4. Упоминай конкурентов только нейтрально, без агрессии
Напиши пост для Telegram-канала про запуск доставки в новом районе (Кунцево, Москва).
Промпт (шаг 2, после получения первого варианта):
Оцени свой пост по каждому принципу от 1 (полностью нарушает) до 5 (полностью соблюдает).
Дай оценку и краткое обоснование по каждому принципу.
Промпт (шаг 3, если нашлись оценки < 3):
Принципы с низкой оценкой: юмор поколения Z, реалистичные обещания.
Сделай критику текста по этим принципам. Затем перепиши пост с учётом критики.
Формат:
КРИТИКА: [что не так]
РЕВИЗИЯ: [новый текст]
Результат:
Модель выдаст критику (например: "юмор слишком формальный, фраза 'гарантируем 30 минут' звучит как обещание") и переписанный пост с мемной подачей и осторожными формулировками ("обычно привозим за 30-40 минут, но пробки есть пробки 🤷").
Почему это работает
Слабость LLM: Модель плохо соблюдает несколько принципов одновременно при генерации. Когда ты перечисляешь 4-5 правил в начале промпта, модель может упустить какое-то из них — особенно если принципы сложные или конфликтуют друг с другом (например, "будь кратким" и "глубоко объясни"). При генерации модель видит только начало промпта и должна "держать в голове" все принципы, пока пишет текст.
Сильная сторона LLM: Модель отлично анализирует готовый текст. Если дать ей текст и спросить "нарушен ли принцип X?" — она точно найдёт проблему. Это работает благодаря causal attention: при проверке модель видит и принцип, и весь текст в контексте одновременно. Она может "сканировать" готовый текст и сопоставлять с каждым принципом по отдельности.
Как метод использует это: Reflect разделяет процесс на два этапа — генерация и проверка. Сначала модель пытается следовать принципам (как умеет), потом переключается в режим аналитика — видит готовый текст целиком и точно определяет нарушения. Критика и ревизия в одном промпте даёт модели контекст: она понимает что именно нарушено, и может целенаправленно исправить эти места, не трогая остальное.
Рычаги управления:
Порог оценки (по умолчанию 3 из 5): Снизь до 2, если хочешь ревизию только для грубых нарушений — экономия токенов. Подними до 4, если стандарты строгие и нужна полировка даже мелких отклонений.
Число циклов: Одного цикла достаточно для 5-12 принципов. Можешь добавить второй цикл для особо сложных задач (запусти шаг 2 и 3 повторно для ревизии), но эффект убывает.
Структура самооценки: Вместо "оцени от 1 до 5" можешь попросить "выпиши нарушенные принципы" — проще для модели, но теряешь градацию серьёзности.
Детализация критики: Добавь "укажи конкретные фразы, которые нарушают" или "объясни ЧЕМ это вредит цели текста" — модель даст более практичную ревизию, не абстрактную.
Шаблон промпта
Шаг 1: Генерация с учётом принципов
Вот принципы, которые нужно соблюдать:
{список_принципов}
{твоя_задача}
Шаг 2: Самооценка
Оцени свой ответ по каждому принципу от 1 (полностью нарушает) до 5 (полностью соблюдает).
Формат:
Принцип 1: [оценка]/5 — [краткое обоснование]
Принцип 2: [оценка]/5 — [краткое обоснование]
...
Шаг 3: Критика и ревизия (если есть оценки ниже 3)
Принципы с низкой оценкой: {список_нарушенных_принципов}
Сделай критику своего ответа по этим принципам.
Затем перепиши ответ с учётом критики.
Формат:
КРИТИКА: [что именно нарушено и почему это проблема]
РЕВИЗИЯ: [улучшенный ответ]
Что подставить:
- {список_принципов} — правила, которым должен следовать текст (tone-of-voice, бренд-гайдлайны, редполитика, compliance требования)
- {твоя_задача} — что написать (пост, ответ клиенту, статья, письмо)
- {список_нарушенных_принципов} — принципы с оценкой 1-2 из предыдущего шага
🚀 Быстрый старт — вставь в чат:
Вот шаблон Reflect для соблюдения принципов. Адаптируй под мою задачу: [опиши задачу и принципы].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит какие принципы важны и какой текст нужен — чтобы подставить в структуру оценки. Она возьмёт паттерн "генерация → самооценка → критика" и адаптирует под твою задачу.
Ограничения
⚠️ Требует несколько запросов: Полный цикл Reflect — это 2-3 запроса к модели (генерация, оценка, ревизия). Для простых задач это избыточно — если текст итак хорош, самооценка покажет 4-5 баллов и ревизия не нужна. Для массовой генерации контента overhead может быть критичным.
⚠️ Зависит от формулировки принципов: Размытые принципы ("будь креативным", "пиши интересно") работают хуже чётких ("используй метафоры из природы", "каждый абзац начинай с вопроса"). Модель может по-разному интерпретировать абстрактные правила.
⚠️ Не заменяет fine-tuning для постоянных требований: Если ты каждый день генеришь контент с одними и теми же принципами, fine-tuning модели будет эффективнее по токенам и времени. Reflect — для гибкости и разных контекстов.
⚠️ Работает хуже для противоречивых принципов: Если принципы конфликтуют ("будь максимально кратким" + "глубоко объясни каждый пункт"), модель может снизить оценку обоим, но не найти баланс. Нужно либо приоритизировать, либо разделить на два цикла.
Как исследовали
Исследователи взяли три модели (GPT-4-Mini, Claude-Haiku-3.5, Mistral-7B) и проверили как Reflect помогает следовать сложным и непривычным принципам — тем, на которых модели НЕ были дообучены. Например: "избегай антропоцентризма" или "используй исторические параллели из незападных культур". Идея была простой: если модель научилась быть "helpful and harmless" при fine-tuning, сможет ли она в рантайме адаптироваться к совсем другим ценностям?
Протестировали на 500 промптах из двух датасетов red-teaming (PKU-Safe-RLHF и Anthropic HH-RLHF) — это промпты, которыми обычно проверяют безопасность моделей и пытаются выявить нарушения. Для каждого промпта запустили Reflect и оценили соблюдение каждого принципа по шкале 1-5 через GPT-4 в роли судьи. Сравнивали три варианта: (1) промпт без принципов (baseline), (2) промпт с принципами в начале (constitution-conditioned), (3) полный Reflect (pre-conditioning + post-generation critique).
Что удивило: Post-generation reasoning дал скачок даже для продвинутых моделей типа GPT-4 и Claude. Особенно сильный эффект — на редких, но серьёзных нарушениях (tail cases). В среднем модель могла соблюдать принцип на 3.8/5, но 5-10% ответов грубо нарушали (1-2 балла). Reflect снизил долю таких нарушений в 2-3 раза — критично для safety и compliance.
Ключевой инсайт: Модели уже умеют определять нарушения принципов — просто не используют эту способность при генерации с нуля. Разделение "генерация → проверка" разблокировало то, что модель знала, но не применяла. Это не добавило новых знаний, а изменило процесс — модель получила возможность "посмотреть на себя со стороны".
Дополнительно проверили может ли Reflect генерировать данные для fine-tuning. Взяли 2000 промптов, прогнали Reflect, сохранили пары (базовый ответ, улучшенный ответ) и дообучили Mistral-7B через DPO. Результат: дообученная модель стала лучше соблюдать принципы даже БЕЗ Reflect на inference — то есть inference-time техника создала тренировочные данные сама, без человеческой разметки.
Оригинал из исследования
Контекст: Исследователи описывают промпт для шага "Critique and Revision". Ниже — структура из статьи (упрощённая версия, полная с XML-тегами в Appendix G.3).
You are tasked with improving a response to the user's query by ensuring it
conforms to the following principles:
{Constitution}
Here is the user's query:
{User Query}
Here is the initial response:
{Base Response}
Here is the self-evaluation of the response:
{Self-Evaluation Scores}
The following principles have been flagged as potentially violated:
{Flagged Principles}
Please do the following:
1. CRITIQUE: Explain specifically how the response violates each flagged principle
2. REVISION: Rewrite the response to better conform to all principles
Format your response as:
CRITIQUE: [your critique]
REVISION: [your revised response]
Адаптации и экстраполяции
💡 Адаптация для tone-of-voice control:
Вместо этических принципов используй Reflect для контроля стиля и голоса бренда.
Принципы tone-of-voice для {название_бренда}:
1. Говорим на "ты", но без фамильярности — как друг, не как приятель с района
2. Короткие предложения (до 15 слов) — читают с телефона
3. Избегаем канцеляризмов ("осуществляем", "в целях") и штампов ("рады сообщить")
4. Один эмодзи на абзац — для тепла, но не переборщить
Напиши {тип_контента}: {задача}
---
(шаг 2)
Оцени текст по каждому принципу от 1 до 5. Укажи конкретные фразы для низких оценок.
---
(шаг 3, если есть < 3)
КРИТИКА: [что нарушено]
РЕВИЗИЯ: [исправленный текст]
🔧 Техника: два раунда проверки для сложных задач
Если принципов больше 10 или они конфликтуют, раздели на два цикла:
Цикл 1: Проверь принципы группы A (например, tone-of-voice и стиль) Цикл 2: Проверь принципы группы B (например, фактическая точность и compliance)
Модель лучше справляется с 5-6 принципами за раз, чем с 12 одновременно. После первого цикла ревизии запусти второй — уже на улучшенном тексте.
💡 Адаптация для code review:
Используй Reflect для проверки кода на соблюдение code style guidelines.
Принципы code style для проекта:
1. Имена переменных — существительные, функций — глаголы
2. Максимум 3 уровня вложенности if/for — если глубже, выносить в функции
3. Каждая функция — одна ответственность (Single Responsibility Principle)
4. Комментарии на русском, код на английском
5. Избегай magic numbers — используй named constants
Напиши функцию для {задача}
---
Оцени код по каждому принципу. Укажи строки кода, которые нарушают.
---
КРИТИКА: [что не так, номера строк]
РЕВИЗИЯ: [исправленный код]
🔧 Техника: добавь "покажи примеры нарушений" → точнее критика
В шаге самооценки добавь требование конкретики:
Для каждого принципа с оценкой ниже 4:
- Оценка: [балл]/5
- Что нарушено: [конкретные фразы или фрагменты]
- Почему это проблема: [как это вредит цели текста]
Это даёт модели зацепки для ревизии вместо абстрактной критики "стиль недостаточно живой". Модель увидит "фраза X формальная" → заменит именно её, не переписывая весь текст.
Ресурсы
Reflect: Transparent Principle-Guided Reasoning for Constitutional Alignment at Scale
Henry Bell, Caroline Zhang, Mohammed Mobasserul Haque, Dhaval Potdar, Samia Zaman, Brandon Fain
Duke University, 2026
Связанные концепции: - Constitutional AI (Anthropic, 2022) — оригинальный подход с critique-revision для reward modeling - Chain-of-Thought prompting — структурированные рассуждения улучшают качество - Self-Refine (Madaan et al., 2023) — итеративная самопроверка для улучшения вывода
