TL;DR
HalluClean — промпт-техника для обнаружения и исправления галлюцинаций в ответах LLM. Суть: вместо прямого вопроса «есть ли тут ошибка?» модель проходит четыре явных шага — составляет план проверки, выполняет его пошагово, выносит вердикт и исправляет проблемные места. Всё это работает в одном диалоге без внешних источников.
Главная проблема: когда просишь LLM напрямую проверить текст на ошибки, она часто пропускает неточности. GPT-3.5 при прямом вопросе «есть ли галлюцинация?» ловит только 33% ошибок в вопросах-ответах. Модель «смотрит», но не «анализирует» — как человек, который читает текст по диагонали и не замечает подвоха.
Как решает: HalluClean заставляет модель сначала составить план проверки (что именно проверять?), потом выполнить его пошагово (показывая рассуждения), и только после этого делать вывод. Добавляется «маршрутизатор задачи» — короткая инструкция, которая говорит модели, что именно она проверяет (ответ на вопрос, саммари, диалог). Результат: F1 вырастает с 33% до 68% на том же GPT-3.5.
Схема метода
ШАГ 1: ПЛАН → "Что буду проверять и как"
↓
ШАГ 2: ВЫПОЛНЕНИЕ → Пошаговый анализ с рассуждениями
↓
ШАГ 3: ВЕРДИКТ → "Да, есть галлюцинация" / "Нет"
↓
ШАГ 4: ИСПРАВЛЕНИЕ → Переписать проблемные места (если нужно)
💡 Все 4 шага выполняются в ОДНОМ диалоге последовательно
Пример применения
Задача: Ты маркетолог, получил от ChatGPT описание конкурента для аналитического отчёта. Нужно проверить — не выдумала ли модель детали.
Промпт:
Ты проверяешь текст на фактические ошибки и галлюцинации.
ТЕКСТ ДЛЯ ПРОВЕРКИ:
"Ozon был основан в 1998 году Александром Еременко. Компания первой в России запустила маркетплейс в 2018 году и сейчас занимает второе место по обороту после Wildberries."
ШАГ 1: Составь план проверки. Какие факты нужно верифицировать? Какие могут быть источники ошибок?
ШАГ 2: Выполни план пошагово. Проверь каждый факт и покажи рассуждения.
ШАГ 3: Сделай вывод — содержит ли текст галлюцинации? Да или Нет.
ШАГ 4: Если да — перепиши текст, исправив ошибки.
Результат: Модель выдаст структурированный анализ: сначала план (проверить дату основания, имя основателя, факт о маркетплейсе, позицию на рынке), потом пошаговую проверку каждого факта с рассуждениями, затем вердикт с указанием конкретных ошибок, и в конце — исправленную версию текста.
Почему это работает
Слабость LLM: при прямом вопросе «есть ли ошибка?» модель даёт поверхностный ответ. Она не декомпозирует задачу — просто генерирует первое, что приходит в голову. Это как спросить эксперта на бегу — он ответит что-то, но не подумает глубоко.
Сильная сторона LLM: модель отлично следует пошаговым инструкциям. Если сказать «сначала составь план, потом выполни его» — она действительно структурирует работу. Каждый шаг становится «якорем» для следующего.
Как метод это использует: HalluClean добавляет метакогнитивный слой — модель сначала думает о том, КАК проверять, и только потом проверяет. Плюс «маршрутизатор задачи» — короткая фраза типа «Ты проверяешь ответ на вопрос» — помогает модели понять контекст. Исследователи показали, что одно только добавление маршрутизатора улучшает F1 на саммаризации с 25% до 60%.
Рычаги управления:
- Детальность плана — для простых проверок достаточно «что проверить», для сложных — добавь «какие источники ошибок возможны»
- Глубина рассуждений — можно попросить «покажи рассуждения кратко» для экономии токенов
- Тип задачи в маршрутизаторе — «ответ на вопрос», «саммари документа», «ответ в диалоге» — меняй под контекст
Шаблон промпта
Ты проверяешь {тип_контента} на фактические ошибки и галлюцинации.
{ТИП_КОНТЕНТА} ДЛЯ ПРОВЕРКИ:
{текст_для_проверки}
ШАГ 1: Составь план проверки. Какие факты нужно верифицировать? Какие могут быть источники ошибок?
ШАГ 2: Выполни план пошагово. Проверь каждый факт и покажи рассуждения.
ШАГ 3: Сделай вывод — содержит ли текст галлюцинации? Да или Нет.
ШАГ 4: Если да — перепиши текст, исправив ошибки.
Плейсхолдеры:
{тип_контента}— что проверяешь: «ответ на вопрос», «саммари документа», «реплику в диалоге», «описание продукта»{текст_для_проверки}— текст, который нужно проверить
Варианты маршрутизатора по типу задачи
| Задача | Маршрутизатор |
|---|---|
| QA | «Ты проверяешь ответ на вопрос» |
| Саммари | «Ты проверяешь, соответствует ли саммари исходному документу» |
| Диалог | «Ты проверяешь реплику на соответствие истории диалога» |
| Математика | «Ты проверяешь, решаема ли задача с данными условиями» |
Ограничения
⚠️ Зависимость от базовой модели: метод усиливает способности модели, но не создаёт новые. Если GPT-3.5 не знает факт — она не сможет его проверить. Для фактчекинга в специализированных областях (медицина, право) лучше комбинировать с веб-поиском.
⚠️ Три типа ошибок сохраняются: (1) непонимание языка — модель неправильно интерпретирует вопрос, (2) отсутствие знаний — модель не знает нужный факт, (3) ошибки в рассуждениях — правильно поняла, но неправильно сделала вывод.
⚠️ Больше токенов: четырёхшаговый процесс генерирует больше текста, чем прямой вопрос. Для массовой проверки — учитывай стоимость.
Как исследовали
Команда из Харбинского технологического института проверила HalluClean на пяти типах задач: вопросы-ответы, диалоги, саммаризация, математические задачи, самопротиворечия. Использовали четыре готовых бенчмарка с размеченными данными — всего около 2000 примеров с балансом «галлюцинация / нет галлюцинации».
Сравнивали с прямым вопросом «есть ли галлюцинация?» и с другими промпт-методами: Step-by-Step, Plan-and-Solve, SelfCheckGPT, ChatProtect. Тестировали на пяти моделях: GPT-3.5, GPT-4o-mini, Llama-3-70B, DeepSeek-V3, DeepSeek-R1.
Главный инсайт: прямой вопрос даёт F1 около 33% на QA, а HalluClean — 68% на том же GPT-3.5. Но интересно: каждый компонент добавляет своё. Просто маршрутизатор задачи поднимает F1 на саммаризации с 25% до 60%. Добавление структурированного рассуждения — ещё до 66%. Эффект аддитивный, не одна серебряная пуля.
Отдельно проверили на доменных задачах (медицина, финансы) — метод работает ещё лучше: F1 вырос с 9% до 92% на CovidQA. Это логично: в специализированных областях модели ещё чаще выдумывают, и структурированная проверка ловит больше.
Оригинал из исследования
Контекст: Четырёхшаговый промпт для задачи Question Answering (дословно из статьи):
Step-1: You are provided with a question and its corresponding answer.
Your task is to determine whether the answer contains hallucinated content.
Let's understand the task and devise a plan to solve the task.
[Task Input]
Step-2: Let's carry out the plan and solve the task step by step.
Show the reasoning process.
[Task Input; Result from Step-1]
Step-3: Please conclude whether the answer contains hallucinated content
with Yes or No.
[Task Input; Result from Step-2]
Step-4: Given a question, its corresponding hallucinated answer, and an
analysis explaining why the answer contains hallucinated content.
Your task is to answer the question without introducing any hallucinations.
[Task Input; Result from Step-2]
Маршрутизаторы задач (дословно):
| Task Type | Task Routing Prompt |
|---|---|
| Question Answering | You are provided with a question and its corresponding answer. Your task is to determine whether the answer contains hallucinated content. |
| Dialogue Systems | You are provided with a dialogue history and its corresponding response. Your task is to determine whether the response contains hallucinated content. |
| Summarization | You are provided with a document and its corresponding summary. Your task is to determine whether the summary contains hallucinated content. |
Адаптации и экстраполяции
💡 Адаптация для проверки своих текстов перед отправкой
Метод работает не только для проверки ответов LLM, но и для самопроверки — когда ты сам написал текст и хочешь поймать ошибки:
Ты редактор-фактчекер. Проверь мой текст на фактические ошибки.
МОЙ ТЕКСТ:
{твой_текст}
ШАГ 1: Какие факты в тексте можно проверить? Составь список утверждений.
ШАГ 2: Проверь каждое утверждение. Покажи рассуждения.
ШАГ 3: Какие утверждения точно верны, какие сомнительны, какие ошибочны?
ШАГ 4: Предложи исправления для сомнительных и ошибочных.
🔧 Техника: добавить веб-поиск для фактчекинга
Исследователи показали, что HalluClean + retrieval даёт F1 80% вместо 68%. В чате с Claude или ChatGPT:
Ты проверяешь ответ на вопрос на галлюцинации.
При проверке фактов — ищи в интернете.
ВОПРОС: {вопрос}
ОТВЕТ: {ответ}
ШАГ 1: Какие факты нужно проверить через поиск?
ШАГ 2: Найди информацию и сравни с ответом.
ШАГ 3: Вердикт — есть галлюцинация? Да/Нет.
ШАГ 4: Если да — исправь.
🔧 Техника: сократить для простых проверок
Если проверяешь что-то простое (дату, имя, одну цифру) — можно убрать детальный план:
Проверь факт: {утверждение}
Покажи рассуждение и дай вердикт: верно или нет?
Если нет — исправь.
Ресурсы
Работа: "HalluClean: A Unified Framework to Combat Hallucinations in LLMs"
Авторы: Yaxin Zhao, Yu Zhang — Harbin Institute of Technology, Harbin, China
Код: https://github.com/tingmuor/HalluClean
Бенчмарки: HaluEval, UMWP, ChatProtect, HaluBench
