English translation is not available yet. Showing Russian content.
Как вы оцениваете мультимодальную модель на галлюцинации (POPE, MMHal-Bench)?
Краткий тезис
Оценка галлюцинаций в мультимодальных моделях (VLM) критична для их безопасного применения. Основные методы: POPE (Polling-based Object Probing Evaluation) — бинарные вопросы о наличии объектов с подсчётом точности/полноты; MMHal-Bench — LLM-as-Judge, оценивающий ответы VLM по 8 категориям от 0 до 10; CHAIR — метрики для задач описания изображений. Каждый метод выявляет разные типы галлюцинаций и требует отдельного подхода к интерпретации.
1. Термин: галлюцинации в мультимодальных моделях
Галлюцинация — это генерация моделью фактов, не соответствующих входному изображению или контексту. В VLM различают:
- Object hallucination: модель утверждает, что на изображении есть объект, которого нет.
- Attribute hallucination: неверно описывает цвет, размер, положение объекта.
- Relation hallucination: искажает пространственные или логические связи между объектами.
- Text hallucination: неправильно читает или интерпретирует текст на изображении.
Почему это важно: галлюцинации подрывают доверие к модели, особенно в приложениях RAG|Agentic RAG, где VLM может принимать решения на основе визуальной информации.
2. Обзор методов оценки
| Метод | Тип задачи | Принцип | Метрики |
|---|---|---|---|
| POPE | VQA (Visual Question Answering) | Бинарные вопросы о наличии объектов | Accuracy, Precision, Recall, F1 |
| MMHal-Bench | VQA / диалог | LLM-as-Judge оценивает ответ по шкале 0-10 | Средний балл, распределение по категориям |
| CHAIR | Captioning | Сравнение упомянутых объектов с ground truth | CHAIRi (item), CHAIRs (sentence) |
| FaithScore | VQA | Оценка фактологической согласованности с изображением | Средняя точность по утверждениям |
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 Процесс оценки
- Для каждого вопроса генерируется ответ VLM.
- Судья (например, GPT-4) получает изображение, вопрос и ответ.
- Судья ставит балл от 0 до 10, где:
- 0–3: грубая галлюцинация (факты не соответствуют изображению).
- 4–6: частично верно, но есть неточности.
- 7–10: полностью верно, детально и без ошибок.
- Итоговый балл — среднее по всем вопросам.
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. Сравнение методов
| Характеристика | POPE | MMHal-Bench | CHAIR |
|---|---|---|---|
| Тип задачи | 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).
Шаги:
- Загрузите COCO val2017 с аннотациями объектов.
- Реализуйте POPE:
- Реализуйте MMHal-Bench (упрощённо):
- Выберите 50 вопросов из 8 категорий (можно взять из оригинального бенчмарка).
- Сгенерируйте ответы VLM.
- Используйте GPT-4 как судью (через API) для оценки каждого ответа.
- Вычислите средний балл по категориям.
- Реализуйте CHAIR:
- Сравните результаты: какая метрика показала наибольшее количество галлюцинаций? Согласуются ли выводы?
Ожидаемый результат: Скрипт, который выводит таблицу с метриками для трёх методов, и краткий анализ сильных и слабых сторон VLM.
Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 5 | Как оценивать качество retrieval в RAG? |
| 12 | Что такое faithfulness и как его измерять? |
| 45 | Как бороться с галлюцинациями в LLM? |
| 132 | Как устроена мультимодальная RAG? |
| 210 | Какие метрики качества для VQA существуют? |
| 389 | Как тестировать AI-агентов на безопасность? |
Навигация
- Предыдущий: 546
- Следующий: 548
- Индекс: 00. Индекс разборов