Простая в использовании система обнаружения мультимодальных галлюцинаций для MLLM
?Благодарность • ?Бенчмарк • ?Демо • ?Обзор • ?ModelZoo • ?Установка • ⏩Краткий старт • Цитирование
Частичная реализация этого проекта была осуществлена при помощи и вдохновении соответствующих наборов инструментов для галлюцинаций, включая FactTool, Woodpecker и другие. Этот репозиторий также использует общедоступный проект mPLUG-Owl, MiniGPT-4, LLaVA, GroundingDINO и MAERec. Мы следуем той же лицензии в отношении открытого исходного кода и благодарим их за вклад в развитие сообщества.
EasyDetect — это систематический пакет, который предлагается в качестве простой в использовании платформы обнаружения галлюцинаций для мультимодальных моделей большого языка (MLLM), таких как GPT-4V, Gemini, LlaVA, в ваших исследовательских экспериментах.
Предпосылкой для унифицированного обнаружения является последовательная категоризация основных категорий галлюцинаций в рамках MLLM. В нашей статье поверхностно рассматривается следующая таксономия галлюцинаций с единой точки зрения:
Рисунок 1. Унифицированное мультимодальное обнаружение галлюцинаций направлено на выявление и обнаружение галлюцинаций, конфликтующих с модальностью, на различных уровнях, таких как объект, атрибут и текст сцены, а также галлюцинации, противоречащие фактам, как при преобразовании изображения в текст, так и при преобразовании текста в изображение. поколение.
Галлюцинация, конфликтующая с модальностью. MLLM иногда генерируют выходные данные, которые конфликтуют с входными данными других модальностей, что приводит к таким проблемам, как неправильные объекты, атрибуты или текст сцены. Пример на приведенном выше рисунке (a) включает MLLM, неточно описывающий форму спортсмена, демонстрируя конфликт на уровне атрибутов из-за ограниченной способности MLLM достигать точного выравнивания текста и изображения.
Галлюцинация, противоречащая фактам. Результаты MLLM могут противоречить установленным фактическим знаниям. Модели преобразования изображения в текст могут создавать повествования, которые отклоняются от фактического содержания, включая нерелевантные факты, в то время как модели преобразования текста в изображение могут создавать визуальные эффекты, которые не отражают фактические знания, содержащиеся в текстовых подсказках. Эти несоответствия подчеркивают борьбу MLLM за поддержание фактической последовательности, что представляет собой серьезную проблему в этой области.
Унифицированное обнаружение мультимодальных галлюцинаций требует проверки каждой пары изображение-текст a={v, x}
, где v
обозначает либо визуальный ввод, предоставляемый MLLM, либо синтезированный им визуальный вывод. Соответственно, x
означает сгенерированный MLLM текстовый ответ на основе v
или текстовый запрос пользователя для синтеза v
. В рамках этой задачи каждый x
может содержать несколько утверждений, обозначаемых как a
определить, является ли оно «галлюцинаторным» или «негаллюцинаторным», предоставив обоснование своих суждений, основанных на предоставленном определении галлюцинации. Обнаружение текстовых галлюцинаций с помощью LLM обозначает подслучай в этой ситуации, где v
равно нулю.
Чтобы продвинуться в этом направлении исследований, мы представляем тест метаоценки MHaluBench, который охватывает контент от преобразования изображения в текст и преобразования текста в изображение, с целью строго оценить достижения в области мультимодальных детекторов галлюцинаций. Дополнительная статистическая информация о MHaluBench представлена на рисунках ниже.
Таблица 1: Сравнение контрольных показателей с учетом существующей проверки фактов или оценки галлюцинаций. "Проверять." указывает на проверку фактической согласованности, «Eval». обозначает оценку галлюцинаций, генерируемых разными LLM, и его ответ основан на разных тестируемых LLM, а «Det.» включает в себя оценку способности детектора идентифицировать галлюцинации.
Рисунок 2. Статистика данных MHaluBench на уровне претензий. «IC» означает субтитры к изображениям, а «T2I» означает синтез текста в изображение соответственно.
Рисунок 3: Распределение категорий галлюцинаций в заявлениях MHaluBench, помеченных галлюцинациями.
Решая ключевые проблемы обнаружения галлюцинаций, мы представляем на рисунке 4 единую структуру, которая систематически решает мультимодальную идентификацию галлюцинаций как для задач преобразования изображения в текст, так и преобразования текста в изображение. Наша система использует сильные стороны различных инструментов, специфичных для конкретной области, для эффективного сбора мультимодальных доказательств для подтверждения галлюцинаций.
Рисунок 4: Конкретная иллюстрация UniHD для унифицированного обнаружения мультимодальных галлюцинаций.
Вы можете загрузить две версии HalDet-LLaVA, 7b и 13b, на трех платформах: HuggingFace, ModelScope и WiseModel.
ОбниматьЛицо | МодельОбъем | Мудраямодель |
---|---|---|
ХалДет-ллава-7б | ХалДет-ллава-7б | ХалДет-ллава-7б |
ХалДет-ллава-13б | ХалДет-ллава-13б | ХалДет-ллава-13б |
Результаты уровня утверждения для набора проверочных данных
тип задачи | модель | Акк | Prec средн. | Напомним, среднее | Mac.F1 |
преобразование изображения в текст | Самопроверка 0shot (GPV-4V) | 75.09 | 74,94 | 75,19 | 74,97 |
Самопроверка, 2 выстрела (GPV-4V) | 79,25 | 79.02 | 79,16 | 79.08 | |
ХалДет (LLAVA-7b) | 75.02 | 75.05 | 74,18 | 74,38 | |
ХалДет (LLAVA-13b) | 78,16 | 78,18 | 77,48 | 77,69 | |
ЮниХД(ГПТ-4В) | 81,91 | 81,81 | 81,52 | 81,63 | |
UniHD(GPT-4o) | 86.08 | 85,89 | 86.07 | 85,96 | |
преобразование текста в изображение | Самопроверка 0shot (GPV-4V) | 76.20 | 79,31 | 75,99 | 75,45 |
Самопроверка, 2 выстрела (GPV-4V) | 80,76 | 81,16 | 80,69 | 80,67 | |
ХалДет (LLAVA-7b) | 67,35 | 69,31 | 67,50 | 66,62 | |
ХалДет (LLAVA-13b) | 74,74 | 76,68 | 74,88 | 74,34 | |
ЮниХД(ГПТ-4В) | 85,82 | 85,83 | 85,83 | 85,82 | |
UniHD(GPT-4o) | 89,29 | 89,28 | 89,28 | 89,28 |
Чтобы просмотреть более подробную информацию о HalDet-LLaVA и наборе данных поезда, обратитесь к файлу readme.
Установка для локальной разработки:
git clone https://github.com/zjunlp/EasyDetect.git
cd EasyDetect
pip install -r requirements.txt
Установка инструментов (GroundingDINO и MAERec):
# install GroundingDINO
git clone https://github.com/IDEA-Research/GroundingDINO.git
cp -r GroundingDINO pipeline/GroundingDINO
cd pipeline/GroundingDINO/
pip install -e .
cd ..
# install MAERec
git clone https://github.com/Mountchicken/Union14M.git
cp -r Union14M/mmocr-dev-1.x pipeline/mmocr
cd pipeline/mmocr/
pip install -U openmim
mim install mmengine
mim install mmcv
mim install mmdet
pip install timm
pip install -r requirements/albu.txt
pip install -r requirements.txt
pip install -v -e .
cd ..
mkdir weights
cd weights
wget -q https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth
wget https://download.openmmlab.com/mmocr/textdet/dbnetpp/dbnetpp_resnet50-oclip_fpnc_1200e_icdar2015/dbnetpp_resnet50-oclip_fpnc_1200e_icdar2015_20221101_124139-4ecb39ac.pth -O dbnetpp.pth
wget https://github.com/Mountchicken/Union14M/releases/download/Checkpoint/maerec_b_union14m.pth -O maerec_b.pth
cd ..
Мы предоставляем пользователям пример кода, чтобы они могли быстро начать работу с EasyDetect.
Пользователи могут легко настроить параметры EasyDetect в файле yaml или просто быстро использовать параметры по умолчанию в предоставленном нами файле конфигурации. Путь к файлу конфигурации: EasyDetect/pipeline/config/config.yaml.
openai :
api_key : Input your openai api key
base_url : Input base_url, default is None
temperature : 0.2
max_tokens : 1024
tool :
detect :
groundingdino_config : the path of GroundingDINO_SwinT_OGC.py
model_path : the path of groundingdino_swint_ogc.pth
device : cuda:0
BOX_TRESHOLD : 0.35
TEXT_TRESHOLD : 0.25
AREA_THRESHOLD : 0.001
ocr :
dbnetpp_config : the path of dbnetpp_resnet50-oclip_fpnc_1200e_icdar2015.py
dbnetpp_path : the path of dbnetpp.pth
maerec_config : the path of maerec_b_union14m.py
maerec_path : the path of maerec_b.pth
device : cuda:0
content : word.number
cachefiles_path : the path of cache_files to save temp images
BOX_TRESHOLD : 0.2
TEXT_TRESHOLD : 0.25
google_serper :
serper_api_key : Input your serper api key
snippet_cnt : 10
prompts :
claim_generate : pipeline/prompts/claim_generate.yaml
query_generate : pipeline/prompts/query_generate.yaml
verify : pipeline/prompts/verify.yaml
Пример кода
from pipeline . run_pipeline import *
pipeline = Pipeline ()
text = "The cafe in the image is named " Hauptbahnhof " "
image_path = "./examples/058214af21a03013.jpg"
type = "image-to-text"
response , claim_list = pipeline . run ( text = text , image_path = image_path , type = type )
print ( response )
print ( claim_list )
Пожалуйста, укажите наш репозиторий, если вы используете EasyDetect в своей работе.
@article { chen23factchd ,
author = { Xiang Chen and Duanzheng Song and Honghao Gui and Chengxi Wang and Ningyu Zhang and
Jiang Yong and Fei Huang and Chengfei Lv and Dan Zhang and Huajun Chen } ,
title = { FactCHD: Benchmarking Fact-Conflicting Hallucination Detection } ,
journal = { CoRR } ,
volume = { abs/2310.12086 } ,
year = { 2023 } ,
url = { https://doi.org/10.48550/arXiv.2310.12086 } ,
doi = { 10.48550/ARXIV.2310.12086 } ,
eprinttype = { arXiv } ,
eprint = { 2310.12086 } ,
biburl = { https://dblp.org/rec/journals/corr/abs-2310-12086.bib } ,
bibsource = { dblp computer science bibliography, https://dblp.org }
}
@inproceedings { chen-etal-2024-unified-hallucination ,
title = " Unified Hallucination Detection for Multimodal Large Language Models " ,
author = " Chen, Xiang and
Wang, Chenxi and
Xue, Yida and
Zhang, Ningyu and
Yang, Xiaoyan and
Li, Qiang and
Shen, Yue and
Liang, Lei and
Gu, Jinjie and
Chen, Huajun " ,
editor = " Ku, Lun-Wei and
Martins, Andre and
Srikumar, Vivek " ,
booktitle = " Proceedings of the 62nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers) " ,
month = aug,
year = " 2024 " ,
address = " Bangkok, Thailand " ,
publisher = " Association for Computational Linguistics " ,
url = " https://aclanthology.org/2024.acl-long.178 " ,
pages = " 3235--3252 " ,
}
Мы предложим долгосрочное обслуживание для исправления ошибок, решения проблем и удовлетворения новых запросов. Поэтому, если у вас есть какие-либо проблемы, пожалуйста, задайте их нам.