TL;DR
InEx — метод борьбы с галлюцинациями в мультимодальных LLM (которые работают с текстом и изображениями). Состоит из двух этапов: внутренняя интроспекция (модель детектирует свою неуверенность и усиливает визуальную информацию) + внешняя кросс-модальная проверка (несколько агентов итеративно проверяют ответ через текст и визуал до достижения консенсуса).
Галлюцинация — когда модель генерирует правдоподобный текст про изображение, но фактически неверный. Проблема: модель может быть уверена в неверном ответе. Существующие методы либо требуют дообучения с разметкой, либо работают только после генерации (поздно), либо регулируют токены на лету но без понимания визуального контекста. Ни один не использует полноценно автономную способность агентов проверять и исправлять себя.
InEx работает в два шага: (1) Интроспекция — модель детектирует неуверенность через метрику TVER (соотношение энтропии текста и визуала в attention), когда неуверена — усиливает визуальные сигналы в рассуждениях. (2) Кросс-модальная верификация — текстовый агент проверяет ответ на соответствие детальному описанию изображения, визуальный агент генерирует изображение по ответу и сравнивает с оригиналом, агенты дают обратную связь, модель уточняет — циклы продолжаются до кросс-модального консенсуса или лимита итераций.
Схема метода
ВНУТРЕННЯЯ ИНТРОСПЕКЦИЯ (In):
├─ Модель генерирует ответ
├─ Вычисляет TVER для каждого токена
├─ Если TVER высокий (неуверенность) → усиливает визуальную информацию
└─ Генерирует более обоснованный ответ
ВНЕШНЯЯ КРОСС-МОДАЛЬНАЯ ПРОВЕРКА (Ex):
ИТЕРАЦИЯ 1..N (пока не консенсус или лимит):
├─ Текстовый агент проверяет → согласуется ли с описанием изображения?
│ ├─ ДА → возвращаем ответ ✓
│ └─ НЕТ → даёт текстовую обратную связь
├─ Модель уточняет ответ на основе текстовой обратной связи
├─ Агент редактирования генерирует изображение по уточнённому ответу
├─ Визуальный агент сравнивает сгенерированное с оригиналом
│ ├─ Похожи → возвращаем ответ ✓
│ └─ Не похожи → даёт визуальную обратную связь
└─ Модель уточняет ответ на основе визуальной обратной связи
Все шаги выполняются автоматически в исследовании через код и API.
Пример применения
⚠️ Ограничение метода: Оригинальная реализация требует программирование и API-доступ. Однако принципы метода можно адаптировать для ручного применения в чатах.
Задача: Проверяешь визуал для карточки товара в интернет-магазине. Дизайнер прислал баннер с акцией "Скидка 30% на зимнюю коллекцию". На изображении — куртки, шапки, шарфы. Нужно убедиться, что AI правильно "видит" все элементы для alt-текста и описания.
Упрощённый промпт (адаптация принципов InEx):
Загружаю изображение баннера с акцией.
ШАГ 1 — Детальное описание:
Опиши изображение максимально подробно: что изображено, какие цвета,
сколько предметов, их расположение, текст на изображении.
ШАГ 2 — Генерация ответа:
На основе изображения напиши: что пользователь видит на баннере,
какие товары представлены.
ШАГ 3 — Текстовая проверка:
Сравни своё описание из Шага 1 с ответом из Шага 2.
Всё ли согласуется? Есть ли противоречия?
Если есть несоответствия — укажи и исправь ответ.
ШАГ 4 — Визуальная проверка (если есть доступ к генерации):
Опиши как должно выглядеть изображение, если мой ответ из Шага 2 верен.
Сравни это описание с реальным изображением. Совпадает?
Если нет — что не так?
ШАГ 5 — Финальный ответ:
На основе всех проверок дай итоговое описание элементов баннера.
Укажи уровень уверенности: высокий/средний/низкий.
Результат: Модель пройдёт через несколько раундов самопроверки: сначала детальное описание, потом генерация ответа, затем текстовая проверка на соответствие описанию, визуальная проверка через описание "как должно выглядеть", итоговый ответ с указанием уверенности. Ты увидишь все этапы рассуждения и противоречия, если модель их обнаружила. Финальный ответ будет более надёжным, чем простой "опиши изображение".
Почему это работает
Корень проблемы: Мультимодальные LLM могут быть уверены в неверном ответе про изображение. Модель "смотрит" на картинку через attention механизм — распределяет внимание между визуальными и текстовыми токенами. Когда на текстовой части высокая неуверенность (энтропия), а на визуальной низкая (модель "уверена" в том что видит) — это красный флаг: модель опирается на уверенные, но возможно ложные визуальные сигналы. TVER (соотношение энтропии текст/визуал) детектирует такие моменты.
Сильная сторона LLM: Модели хорошо следуют структурированным инструкциям и могут симулировать разные роли для самопроверки. Если явно попросить проверить через разные модальности — модель это сделает.
Механика InEx: 1. Интроспекция — когда TVER сигналит о неуверенности, модель усиливает визуальные сигналы в своих внутренних представлениях (через модификацию attention и добавление визуальной информации в FFN слой). Это как "ещё раз внимательнее посмотреть на картинку".
Кросс-модальная проверка — ответ проверяется через независимые источники: текстовое описание изображения (детальный caption) и визуальную обратную генерацию (сгенерируй изображение по ответу → похоже на оригинал?). Если обе модальности согласны — кросс-модальный консенсус — ответ надёжен.
Итеративное уточнение — модель получает конкретную обратную связь ("ты написал 3 куртки, но в описании 2" или "сгенерированное изображение не содержит красный шарф") и уточняет ответ. Цикл продолжается до согласованности.
Рычаги управления в адаптированном промпте: - Число итераций — сколько раундов проверки делать (в оригинале лимит _I_, у тебя — число шагов в промпте) - Порог консенсуса — когда считать ответ надёжным (в оригинале γ_CLIP для визуального сходства, у тебя — "укажи уровень уверенности") - Типы проверки — можно убрать визуальную проверку (Шаг 4) если нет доступа к генерации изображений, оставив только текстовую самопроверку - Детализация описания — в Шаге 1 можно указать конкретные аспекты: цвета, количество, текст, расположение — чем подробнее описание, тем строже проверка
Шаблон промпта
Загружаю изображение: {описание_задачи}
ШАГ 1 — Детальное описание изображения:
Опиши изображение максимально детально по этим аспектам:
- Объекты: что изображено, сколько
- Цвета: основные цвета объектов
- Расположение: где что находится
- Текст: если есть текст на изображении
- Дополнительно: {специфические_аспекты_для_задачи}
ШАГ 2 — Генерация ответа на вопрос:
{твой_вопрос_про_изображение}
ШАГ 3 — Текстовая самопроверка:
Сравни ответ из Шага 2 с детальным описанием из Шага 1.
Проверь по каждому аспекту:
- Соответствует ли количество объектов?
- Соответствуют ли цвета?
- Соответствует ли расположение?
- Есть ли противоречия?
Если нашёл несоответствия:
ОБРАТНАЯ СВЯЗЬ: [укажи что не согласуется]
УТОЧНЁННЫЙ ОТВЕТ: [исправленная версия]
Если всё согласуется:
✓ Текстовая проверка пройдена
ШАГ 4 — Визуальная самопроверка (опционально):
Если мой ответ из Шага 2 верен, изображение должно содержать:
[перечисли ключевые визуальные элементы из ответа]
Сравни этот список с реальным изображением:
- Всё перечисленное присутствует?
- Нет ли лишнего в моём ответе?
Если нашёл расхождения:
ОБРАТНАЯ СВЯЗЬ: [что не совпадает]
УТОЧНЁННЫЙ ОТВЕТ: [исправленная версия]
Если всё совпадает:
✓ Визуальная проверка пройдена
ШАГ 5 — Итоговый ответ:
[финальный ответ после всех проверок и уточнений]
УВЕРЕННОСТЬ: [высокая/средняя/низкая — на основе количества найденных противоречий]
Плейсхолдеры:
- {описание_задачи} — контекст: "баннер для сайта", "фото товара", "слайд презентации"
- {специфические_аспекты_для_задачи} — что важно именно для твоей задачи: "бренды", "люди", "эмоции" и т.д.
- {твой_вопрос_про_изображение} — что нужно узнать: "Какие товары изображены?", "Сколько людей на фото?", "Какой текст на баннере?"
Упрощённая версия (только текстовая самопроверка): Если нет доступа к генерации изображений или задача не требует визуальной проверки — убери Шаг 4. Три шага (детальное описание → ответ → проверка на соответствие описанию) уже значительно снижают галлюцинации.
Ограничения
⚠️ Требует мультимодальную модель: Работает только с моделями, которые понимают изображения (GPT-4V, Claude 3, Gemini с vision). Обычный текстовый ChatGPT не подойдёт.
⚠️ Итеративный процесс увеличивает время и стоимость: Каждая проверка — дополнительный запрос. В оригинале InEx делает несколько итераций (обычно 2-3), что увеличивает токены и время ответа. В упрощённой версии ты платишь за один промпт со всеми шагами, но он длинный.
⚠️ Визуальная проверка ограничена в чатах: Оригинальный InEx программно генерирует изображение по ответу и сравнивает с оригиналом. В чате ты можешь попросить описать как должно выглядеть изображение и проверить логически, но не получишь числового сходства. Для полноценной визуальной проверки нужен API генерации изображений (DALL-E, Midjourney) и программное сравнение (CLIP).
⚠️ Эффективно для сложных изображений: Если изображение простое ("красное яблоко на столе"), галлюцинаций мало и без InEx. Метод раскрывается на сложных сценах: много объектов, мелкие детали, текст на изображении, пространственные отношения.
⚠️ Не устраняет все галлюцинации: InEx снижает галлюцинации на 5-9%, но не до нуля. Модель всё ещё может ошибаться, особенно на деталях которые требуют специальных знаний (редкие объекты, специфические бренды, сложный контекст).
Как исследовали
Исследователи протестировали InEx на двух типах бенчмарков: специализированные по галлюцинациям (POPE, CHAIR, HallusionBench) и общего назначения (VizWiz, MME, MMBench, LLaVA-Bench). Идея простая: проверить работает ли метод именно против галлюцинаций, но не ломает ли при этом общую производительность модели.
На POPE (Polling-based Object Probing Evaluation) — бенчмарке где задают вопросы "Есть ли X на изображении?" с разной сложностью (random, popular, adversarial) — InEx повысил точность LLaVA-1.5-7B с 79.8% до 88.7% (+8.9%) в среднем по трём подкатегориям. Самый сильный прирост на adversarial сете (+9.9%), где специально подобраны сложные случаи для обмана модели.
На CHAIR (Caption Hallucination Assessment with Image Relevance) — метрике галлюцинаций в генерации описаний — InEx снизил CHAIR_S (процент предложений с галлюцинациями) с 50.0% до 45.1% и CHAIR_I (процент объектов-галлюцинаций) с 15.4% до 13.3%, одновременно повысив recall (полноту описания) с 77.1% до 83.2%. Это ключевая находка: обычно методы борьбы с галлюцинациями делают модель осторожнее, она называет меньше объектов (снижается recall). InEx же снизил галлюцинации И повысил полноту — модель стала одновременно точнее и смелее в правильных утверждениях.
Что удивило: другие методы (OPERA, ICD, VCD) на некоторых бенчмарках ухудшали результаты относительно baseline модели. Например, ICD на LLaVA-Bench снизил accuracy с 63.4% до 49.8% (-13.6%). InEx был единственным методом, который стабильно улучшал результаты на всех бенчмарках без деградации.
Проверили на трёх архитектурах моделей разных размеров: LLaVA-1.5 (7B), Qwen-VL (7B), GLM-4V (9B). InEx показал прирост на всех, что подтверждает универсальность подхода.
Логика выводов: Кросс-модальная верификация работает потому что разные модальности ошибаются по-разному. Текстовый агент может поймать галлюцинацию которую пропустил визуальный, и наоборот. Когда обе модальности согласны — вероятность галлюцинации резко падает. Итеративное уточнение с конкретной обратной связью (не просто "неверно", а "ты сказал 3, но в описании 2") даёт модели точку опоры для исправления, в отличие от абстрактного "попробуй ещё раз".
Адаптации и экстраполяции
🔧 Техника: Упрощённая двухшаговая проверка → экономия токенов
Полный цикл InEx (детальное описание → ответ → текстовая проверка → визуальная проверка → итерации) может быть избыточным для простых задач. Упрости до базовой схемы:
1. Опиши изображение детально по аспектам: {объекты, цвета, количество, расположение}
2. Ответь на вопрос: {твой_вопрос}
3. Проверь: ответ согласуется с описанием? Если нет — исправь.
Финальный ответ: [после проверки]
Этого достаточно для большинства случаев в чатах. Сэкономишь токены, но сохранишь суть — явная самопроверка через детальное описание.
🔧 Техника: Мультиперспективная проверка → адаптация для текстовых задач
Принцип InEx о проверке с разных точек зрения работает не только для изображений. Адаптируй для проверки чисто текстовых ответов:
Задача: {твоя_задача}
ШАГ 1 — Первичный ответ:
[генерирую ответ]
ШАГ 2 — Проверка с разных позиций:
Проверяющий 1 (Фактология):
Все ли факты в ответе корректны? Нет ли противоречий?
Проверяющий 2 (Логика):
Логично ли построена аргументация? Нет ли пропущенных шагов?
Проверяющий 3 (Полнота):
Отвечает ли ответ на все аспекты вопроса? Что упущено?
ШАГ 3 — Уточнённый ответ:
На основе трёх проверок — финальная версия.
Это экстраполяция мультиагентной проверки InEx на текстовый домен. Разные "роли" ловят разные типы ошибок, повышая надёжность.
Ресурсы
InEx: Hallucination Mitigation via Introspection and Cross-Modal Multi-Agent Collaboration Zhongyu Yang, Yingfang Yuan, Xuanming Jiang, Baoyi An, Wei Pang Xi'an Jiyun Technology Co., Xi'an, China; BCML, Heriot-Watt University, Edinburgh, UK
Оригинал использует: - TVER (Text-to-Visual Entropy Ratio) — метрика для детекции неуверенности - POPE, CHAIR, HallusionBench — бенчмарки для оценки галлюцинаций - VE-MHA (Vision-Enhanced Multi-Head Attention) — модификация attention механизма - Cross-modal consensus — принцип согласованности между модальностями
