TL;DR
Reflective Translation — промпт-техника где модель делает черновик, критикует его по структурированным критериям и генерирует улучшенную версию. Работает в обычном чате через два запроса: сначала черновик, потом критика + ревизия.
Модели плохо ловят свои ошибки "на лету" во время генерации — они движутся вперёд по тексту, не возвращаясь назад. Как писатель, который пишет без черновика: упустил деталь, исказил смысл, не заметил несоответствие — и текст уже поехал дальше. Если попросить модель сначала выдать результат, потом отдельно его покритиковать, она переключается в режим анализа и видит то, что пропустила при генерации.
Метод даёт модели структуру для критики: (1) найди ошибки (пропуски, искажения, неточности), (2) сформулируй исправления (что конкретно поправить), (3) выдели критический контент (что обязательно сохранить). На основе этой критики модель генерирует улучшенную версию. Исследование показало стабильный прирост качества во втором проходе с высокой статистической значимостью (p < 10⁻⁴⁴).
Схема метода
ШАГ 1: Генерация черновика
→ первая версия текста
ШАГ 2: Структурированная критика (в отдельном запросе)
→ (1) список ошибок
→ (2) инструкции для исправления
→ (3) ключевые элементы которые нужно сохранить
ШАГ 3: Генерация ревизии на основе критики
→ улучшенная версия
Три отдельных запроса к модели.
Пример применения
Задача: Написать пост в телеграм-канал про новую фичу вашего SaaS-продукта. Нужно попасть в тон (не корпоративно, но профессионально) и не упустить ключевые выгоды.
Промпт 1 (черновик):
Напиши пост для телеграм-канала SaaS-сервиса Кабинет.ру (управление подписками).
Новая фича: автоматическое продление со скидкой 15% для клиентов которые платят больше года.
Тон: дружелюбный профи, не корпорат, без восклицательных знаков и "мы рады".
Длина: 3-4 предложения.
[текст поста]
Промпт 2 (критика):
Исходная задача: [скопируй промпт 1]
Черновик:
[вставь результат из промпта 1]
Проанализируй черновик по структуре:
1. ОШИБКИ — что упущено, искажено или лишнее
2. ИСПРАВЛЕНИЯ — конкретные инструкции что поправить
3. КРИТИЧЕСКИЙ КОНТЕНТ — ключевые элементы которые обязательно сохранить
Выдай только анализ, без нового текста.
Промпт 3 (ревизия):
Исходная задача: [скопируй промпт 1]
На основе этой критики:
[вставь результат из промпта 2]
Напиши улучшенную версию поста.
[улучшенный текст]
Результат:
Модель в промпте 2 покажет что увидела: возможно черновик слишком формальный, не подчеркнул выгоду ("меньше платишь" важнее чем "автопродление"), или пропустил что фича работает с сегодняшнего дня. В промпте 3 выдаст версию где эти моменты исправлены — тон точнее, акценты на месте, детали сохранены.
Почему это работает
LLM генерирует текст последовательно — токен за токеном вперёд. Модель не "видит весь текст сразу" как человек при редактуре. Она движется линейно и не возвращается назад чтобы проверить соответствие частей друг другу. Отсюда пропуски деталей, смещение тона по ходу текста, несоответствия между началом и концом.
Когда модель анализирует готовый текст, она переключается в другой режим. Весь черновик в контексте, можно сравнить с исходной задачей, проверить целостность, заметить что выпало. Критика легче генерации — найти проблемы в готовом тексте проще чем выдать идеальный текст с первого раза.
Структура критики (ошибки → исправления → критический контент) даёт модели чёткие рельсы для анализа. Без структуры модель может выдать общее "неплохо, но можно лучше". Со структурой она обязана назвать конкретные ошибки, сформулировать конкретные исправления, выделить что нельзя потерять. Это превращает расплывчатую саморефлексию в инструкцию для ревизии.
Рычаги управления:
- Критерии в блоке "Ошибки" — добавь свои: "проверь фактуру", "найди канцелярит", "оцени эмоциональный тон". Чем конкретнее критерий, тем точнее поиск проблем.
- Маскирование ключевых слов — если модель копирует черновик почти напрямую, замени в критике конкретные слова/фразы на
. Заставит модель применить критику семантически, а не скопировать текст. - Число итераций — для простых задач хватит одной пары (черновик → ревизия). Для сложных можно сделать второй круг: ревизия → критика ревизии → третья версия.
Шаблон промпта
Промпт 1 — Черновик:
{описание_задачи}
{критерии_качества}
Выдай результат в формате:
[текст]
Промпт 2 — Критика:
Исходная задача: {описание_задачи}
Черновик:
{результат_из_промпта_1}
Проанализируй черновик по структуре:
1. ОШИБКИ — что упущено, искажено, лишнее или не соответствует задаче
2. ИСПРАВЛЕНИЯ — конкретные инструкции что и как поправить
3. КРИТИЧЕСКИЙ КОНТЕНТ — ключевые элементы которые обязательно сохранить
Выдай только структурированный анализ. Не пиши новый вариант текста.
Промпт 3 — Ревизия:
Исходная задача: {описание_задачи}
На основе этой критики:
{результат_из_промпта_2}
Напиши улучшенную версию.
[улучшенный текст]
Где заполнять:
- {описание_задачи} — что нужно сделать + контекст
- {критерии_качества} — тон, длина, обязательные элементы, ограничения
- {результат_из_промпта_1} и {результат_из_промпта_2} — копируй ответы модели из предыдущих шагов
Опционально:
- Добавь свои критерии в блок "ОШИБКИ" (фактчек, эмоциональный тон, структура)
- Если модель копирует черновик почти дословно — замени ключевые слова в черновике на перед промптом 2
Ограничения
⚠️ Три запроса вместо одного: Метод требует три отдельных обращения к модели. Для быстрых задач ("переведи фразу") это избыточно. Работает там где качество важнее скорости.
⚠️ Не для всех задач: Если задача простая и чёткая ("составь список из 5 пунктов"), модель справится с первого раза. Рефлексия полезна там где есть субъективные критерии (тон, стиль, баланс деталей) или сложные ограничения (сохранить факты + упростить язык + сократить вдвое).
⚠️ Модель видит только то что вы указали: Если в промпте 1 не прописали критерии качества явно — модель не угадает их при критике. Структура помогает, но базовое описание задачи должно быть полным.
Как исследовали
Команда проверила метод на машинном переводе с английского на африканские языки (isiZulu и isiXhosa) — это низкоресурсные языки где мало параллельных текстов для обучения, и модели часто ошибаются. Тестировали на GPT-3.5 и Claude Haiku 3.5.
Логика простая: взяли пары предложений (английский → целевой язык) из датасетов OPUS-100 и NTREX-African. Модель переводит дважды: первый раз напрямую, второй раз — после саморефлексии (черновик → критика → ревизия). Сравнивали качество первого и второго перевода по двум метрикам: BLEU (совпадение слов с эталоном) и COMET (семантическая точность, оценивает смысл, не только слова).
Результат: второй перевод стабильно лучше первого. Причём COMET (смысловая точность) вырос сильнее чем BLEU (точное совпадение слов) — это значит метод улучшает понимание смысла, а не просто подгоняет слова под эталон. Статистически улучшение очень сильное: p-value для BLEU = 1.45×10⁻⁴⁴, для COMET = 1.10×10⁻⁶⁵ (вероятность что это случайность — почти нулевая). Эффект размера ~0.95 по rank-biserial корреляции — это практически значимое улучшение, не просто статистический артефакт.
Проверили три стратегии промптинга (zero-shot, chain-of-thought, few-shot) — рефлексия работает во всех, но few-shot + рефлексия даёт самые стабильные результаты. In-context примеры помогают модели лучше калибровать критику.
Интересная деталь: тестировали порог уверенности — если отбирать для ревизии только те переводы где модель неуверена, средний прирост качества выше (но покрытие меньше). Это подтверждает что рефлексия работает как целевая коррекция, а не универсальное улучшение всего подряд.
Адаптации и экстраполяции
🔧 Техника: Убрать структуру критики → свободная саморефлексия
Если задача творческая (сторителлинг, креативный текст), жёсткая структура (ошибки → исправления → контент) может ограничить. Попробуй свободную саморефлексию:
Промпт 2 (свободная критика):
Прочитай черновик как редактор. Что работает? Что нет? Что усилить, что убрать?
Черновик:
{текст}
Дай честную редакторскую оценку.
Модель выдаст менее структурированный, но более холистичный анализ — может поймать вещи которые не попадают в рамки "ошибки/исправления".
🔧 Техника: Маскирование ключевых слов → принудительная переформулировка
Исследование использовало RAKE для автоматического извлечения ключевых слов и замены их на . В ручном режиме это можно сделать проще:
Промпт 2 (с маскированием):
Черновик:
"Наша новая позволяет экономить до в месяц"
[Критика]
Важно: восстанови по смыслу, не копируй из черновика.
Это заставляет модель применить критику семантически, а не просто подправить пару слов в готовом тексте. Полезно если модель слишком консервативна в ревизии.
🔧 Комбинация: Рефлексия + A/B-варианты
Промпт 3 (множественная ревизия):
Критика:
{анализ_из_промпта_2}
На основе критики создай ДВА варианта улучшенного текста:
Вариант А — минимальные правки, сохрани структуру черновика
Вариант Б — радикальная переработка, приоритет на критику
[текст]
[текст]
Получаешь два подхода к ревизии: консервативный и смелый. Можешь выбрать или скомбинировать лучшее.
Ресурсы
Reflective Translation: Improving Low-Resource Machine Translation via Structured Self-Reflection
Nicholas Cheng (Independent Researcher), 2026
Код и данные: github.com/Nickcheng123/reflective-translation-mt
Исследование опирается на: - Reflexion (Shinn et al., 2023) — verbal reinforcement learning через рефлексию - Self-Refine (Madaan et al., 2023) — итеративная доработка через внутренний фидбек - Chain-of-Verification (Creswell & Shanahan, 2023) — улучшение фактуальности через верификацию
Датасеты: OPUS-100 (Tiedemann, 2012), NTREX-African (Nekoto et al., 2023)
Метрики: BLEU (Papineni et al., 2002), COMET (Rei et al., 2020)
