Как вы оцениваете мультимодальную модель на галлюцинации (POPE, MMHal-Bench)?

Краткий тезис

Оценка галлюцинаций в мультимодальных моделях (VLM) критична для их безопасного применения. Основные методы: POPE (Polling-based Object Probing Evaluation) — бинарные вопросы о наличии объектов с подсчётом точности/полноты; MMHal-BenchLLM-as-Judge, оценивающий ответы VLM по 8 категориям от 0 до 10; CHAIR — метрики для задач описания изображений. Каждый метод выявляет разные типы галлюцинаций и требует отдельного подхода к интерпретации.


1. Термин: галлюцинации в мультимодальных моделях

Галлюцинация — это генерация моделью фактов, не соответствующих входному изображению или контексту. В VLM различают:

  • Object hallucination: модель утверждает, что на изображении есть объект, которого нет.
  • Attribute hallucination: неверно описывает цвет, размер, положение объекта.
  • Relation hallucination: искажает пространственные или логические связи между объектами.
  • Text hallucination: неправильно читает или интерпретирует текст на изображении.

Почему это важно: галлюцинации подрывают доверие к модели, особенно в приложениях RAG|Agentic RAG, где VLM может принимать решения на основе визуальной информации.


2. Обзор методов оценки

МетодТип задачиПринципМетрики
POPEVQA (Visual Question Answering)Бинарные вопросы о наличии объектовAccuracy, Precision, Recall, F1
MMHal-BenchVQA / диалогLLM-as-Judge оценивает ответ по шкале 0-10Средний балл, распределение по категориям
CHAIRCaptioningСравнение упомянутых объектов с ground truthCHAIRi (item), CHAIRs (sentence)
FaithScoreVQAОценка фактологической согласованности с изображениемСредняя точность по утверждениям

3. POPE (Polling-based Object Probing Evaluation)

POPE — это метод, при котором модели задают серию бинарных вопросов вида «Есть ли на изображении [объект]?». Ответ модели сравнивается с ground truth (разметкой объектов на изображении).

3.1 Настройки POPE

  • Random: объекты выбираются случайно из всего словаря (лёгкий сценарий).
  • Popular: выбираются часто встречающиеся объекты (например, «человек», «машина»).
  • Adversarial: выбираются объекты, похожие на присутствующие (например, если на фото есть «собака», то adversarial объект — «кошка»).

3.2 Метрики

  • Accuracy: доля правильных ответов (Yes/No).
  • Precision: среди ответов «Yes» — доля действительно присутствующих объектов.
  • Recall: среди действительно присутствующих объектов — доля тех, на которые модель ответила «Yes».
  • F1-score: гармоническое среднее precision и recall.

3.3 Пример кода (упрощённый)

import json

def evaluate_pope(model, images, questions, ground_truth):
    """
    model: функция, принимающая (image, question) -> "yes"/"no"
    images: список PIL.Image
    questions: список строк вида "Is there a car?"
    ground_truth: список списков объектов, присутствующих на каждом изображении
    """
    tp, fp, fn, tn = 0, 0, 0, 0
    for img, q_list, gt in zip(images, questions, ground_truth):
        for q in q_list:
            obj = q.split("Is there a ")[1].rstrip("?")
            pred = model(img, q)
            actual = obj in gt
            if pred == "yes" and actual:
                tp += 1
            elif pred == "yes" and not actual:
                fp += 1
            elif pred == "no" and actual:
                fn += 1
            else:
                tn += 1
    precision = tp / (tp + fp) if (tp + fp) > 0 else 0
    recall = tp / (tp + fn) if (tp + fn) > 0 else 0
    accuracy = (tp + tn) / (tp + fp + fn + tn)
    f1 = 2 * precision * recall / (precision + recall) if (precision + recall) > 0 else 0
    return {"accuracy": accuracy, "precision": precision, "recall": recall, "f1": f1}

3.4 Интерпретация

  • Высокий recall, низкий precision → модель склонна «видеть» объекты, которых нет (галлюцинирует).
  • Низкий recall, высокий precision → модель консервативна, пропускает реальные объекты.
  • Adversarial настройка — самый строгий тест: если модель легко обманывается похожими объектами, это признак слабой визуальной дискриминации.

4. MMHal-Bench

MMHal-Bench — это бенчмарк, где ответы VLM на открытые вопросы оцениваются другим LLM (судьёй) по шкале от 0 (полная галлюцинация) до 10 (идеально). Оценка проводится по 8 категориям:

КатегорияПример вопроса
Object«Что находится слева от стула?»
Attribute«Какого цвета платье?»
Relation«Кто стоит позади мужчины?»
Text«Что написано на вывеске?»
Counting«Сколько людей на фото?»
Spatial«Где находится мяч?»
Action«Что делает женщина?»
Reasoning«Почему человек улыбается?»

4.1 Процесс оценки

  1. Для каждого вопроса генерируется ответ VLM.
  2. Судья (например, GPT-4) получает изображение, вопрос и ответ.
  3. Судья ставит балл от 0 до 10, где:
    • 0–3: грубая галлюцинация (факты не соответствуют изображению).
    • 4–6: частично верно, но есть неточности.
    • 7–10: полностью верно, детально и без ошибок.
  4. Итоговый балл — среднее по всем вопросам.

4.2 Преимущества и недостатки

  • Плюсы: оценивает не только наличие объектов, но и атрибуты, отношения, рассуждения.
  • Минусы: зависимость от судьи (LLM может сам галлюцинировать), дороговизна, субъективность шкалы.

5. CHAIR (Caption Hallucination Assessment)

CHAIR — метрика для задачи image captioning (описание изображения). Оценивает, сколько объектов в сгенерированном описании отсутствуют на изображении.

5.1 Метрики

  • CHAIRi (item-level): доля галлюцинированных объектов среди всех упомянутых объектов.
    CHAIRi = (количество упомянутых объектов, которых нет на изображении) / (общее количество упомянутых объектов)
    
  • CHAIRs (sentence-level): доля предложений, содержащих хотя бы одну галлюцинацию.
    CHAIRs = (количество предложений с галлюцинациями) / (общее количество предложений)
    

5.2 Пример

  • Изображение: собака и мяч.
  • Сгенерированное описание: «Собака играет с мячом и кошкой».
  • CHAIRi: упомянуты объекты {собака, мяч, кошка}. На изображении есть {собака, мяч}. Галлюцинация: кошка. CHAIRi = 1/3 ≈ 0.33.
  • CHAIRs: одно предложение, содержит галлюцинацию → CHAIRs = 1.0.

6. Сравнение методов

ХарактеристикаPOPEMMHal-BenchCHAIR
Тип задачиVQA (бинарный)VQA (открытый)Captioning
ОценкаАвтоматическая (по ground truth)LLM-as-JudgeАвтоматическая (по ground truth)
Категории галлюцинацийТолько объектыОбъекты, атрибуты, отношения, текст и др.Только объекты
Сложность реализацииНизкаяСредняя (нужен судья)Низкая
Чувствительность к adversarialЕсть (настройки)НетНет
ЗатратыНизкиеВысокие (API судьи)Низкие

7. Практические рекомендации

  • Для быстрой итерации при обучении VLM используйте POPE (adversarial настройка) — он дёшев и выявляет грубые object hallucinations.
  • Для финальной оценки перед релизом применяйте MMHal-Bench — он покрывает больше типов ошибок и ближе к реальному использованию.
  • Для задач captioning используйте CHAIR как стандартную метрику.
  • Комбинируйте: ни один метод не идеален. Например, модель может хорошо проходить POPE, но галлюцинировать атрибуты, что покажет MMHal-Bench.

8. Ограничения и вызовы

  • Ground truth bias: POPE и CHAIR требуют качественной разметки объектов. Если разметка неполная, метрики могут быть неточными.
  • Субъективность судьи: MMHal-Bench зависит от выбранного LLM-судьи. Разные судьи могут давать разные баллы.
  • Не учитывают контекст: все методы оценивают отдельные ответы, но не учитывают, как галлюцинации влияют на downstream-задачи (например, в Agentic RAG).
  • Языковой дисбаланс: большинство бенчмарков на английском, что ограничивает оценку мультиязычных VLM.

9. Связь с Agentic RAG

В Agentic RAG мультимодальные модели могут использоваться для:

  • Извлечения информации из изображений (документы, скриншоты).
  • Принятия решений на основе визуальных данных (например, «какой объект на фото?»).
  • Генерации действий (например, «нажми на кнопку, изображённую на экране»).

Галлюцинации в таких сценариях могут привести к неверным действиям агента. Поэтому оценка VLM на галлюцинации — обязательный этап перед интеграцией в агентную систему. Рекомендуется проводить POPE и MMHal-Bench на датасетах, релевантных домену агента.


Пет-проект для закрепления

Задача: Разработать пайплайн оценки галлюцинаций для VLM (например, LLaVA или BLIP-2) на датасете COCO.

Инструменты: Python, Hugging Face Transformers, PyTorch, COCO API, OpenAI API (для MMHal-Bench).

Шаги:

  1. Загрузите COCO val2017 с аннотациями объектов.
  2. Реализуйте POPE:
    • Для каждого изображения сгенерируйте 10 бинарных вопросов (5 с присутствующими объектами, 5 с отсутствующими — random и adversarial).
    • Получите ответы VLM.
    • Посчитайте accuracy, precision, recall, F1.
  3. Реализуйте MMHal-Bench (упрощённо):
    • Выберите 50 вопросов из 8 категорий (можно взять из оригинального бенчмарка).
    • Сгенерируйте ответы VLM.
    • Используйте GPT-4 как судью (через API) для оценки каждого ответа.
    • Вычислите средний балл по категориям.
  4. Реализуйте CHAIR:
    • Для 100 изображений сгенерируйте caption.
    • Сравните упомянутые объекты с ground truth.
    • Посчитайте CHAIRi и CHAIRs.
  5. Сравните результаты: какая метрика показала наибольшее количество галлюцинаций? Согласуются ли выводы?

Ожидаемый результат: Скрипт, который выводит таблицу с метриками для трёх методов, и краткий анализ сильных и слабых сторон VLM.


Связь с другими вопросами

ВопросТема
5Как оценивать качество retrieval в RAG?
12Что такое faithfulness и как его измерять?
45Как бороться с галлюцинациями в LLM?
132Как устроена мультимодальная RAG?
210Какие метрики качества для VQA существуют?
389Как тестировать AI-агентов на безопасность?

Навигация