Kerangka Deteksi Halusinasi Multimodal yang Mudah Digunakan untuk MLLM
?Pengakuan • ?Benchmark • ?Demo • ?Ikhtisar • ?ModelZoo • ?Instalasi • ⏩Quickstart • Kutipan
Sebagian implementasi proyek ini dibantu dan terinspirasi oleh perangkat halusinasi terkait termasuk FactTool, Woodpecker, dan lainnya. Repositori ini juga mendapat manfaat dari proyek publik dari mPLUG-Owl, MiniGPT-4, LLaVA, GroundingDINO, dan MAERec . Kami mengikuti lisensi yang sama untuk sumber terbuka dan berterima kasih atas kontribusinya kepada komunitas.
EasyDetect adalah paket sistematis yang diusulkan sebagai kerangka deteksi halusinasi yang mudah digunakan untuk Multimodal Large Language Models (MLLMs) seperti GPT-4V, Gemini, LlaVA dalam eksperimen penelitian Anda.
Prasyarat untuk deteksi terpadu adalah kategorisasi koheren dari kategori utama halusinasi dalam MLLM. Makalah kami secara dangkal mengkaji Taksonomi Halusinasi berikut dari perspektif terpadu:
Gambar 1: Deteksi halusinasi multimodal terpadu bertujuan untuk mengidentifikasi dan mendeteksi halusinasi yang bertentangan dengan modalitas di berbagai tingkatan seperti objek, atribut, dan adegan-teks, serta halusinasi yang bertentangan dengan fakta baik dalam gambar-ke-teks maupun teks-ke-gambar generasi.
Halusinasi yang Bertentangan dengan Modalitas. MLLM terkadang menghasilkan keluaran yang bertentangan dengan masukan dari modalitas lain, yang menyebabkan masalah seperti objek, atribut, atau teks adegan yang salah. Contoh pada Gambar (a) di atas mencakup MLLM yang mendeskripsikan seragam atlet secara tidak akurat, menampilkan konflik tingkat atribut karena terbatasnya kemampuan MLLM untuk mencapai keselarasan teks-gambar yang sangat detail.
Halusinasi yang Bertentangan Fakta. Keluaran dari MLLM mungkin bertentangan dengan pengetahuan faktual yang ada. Model image-to-text dapat menghasilkan narasi yang menyimpang dari konten sebenarnya dengan memasukkan fakta-fakta yang tidak relevan, sedangkan model text-to-image dapat menghasilkan visual yang gagal mencerminkan pengetahuan faktual yang terkandung dalam teks petunjuk. Perbedaan ini menggarisbawahi perjuangan MLLM untuk mempertahankan konsistensi faktual, yang merupakan tantangan signifikan dalam domain tersebut.
Deteksi terpadu halusinasi multimodal memerlukan pemeriksaan setiap pasangan gambar-teks a={v, x}
, di mana v
menunjukkan masukan visual yang diberikan ke MLLM, atau keluaran visual yang disintesis olehnya. Sejalan dengan itu, x
menandakan respons tekstual yang dihasilkan MLLM berdasarkan v
atau permintaan tekstual pengguna untuk mensintesis v
. Dalam tugas ini, setiap x
dapat berisi beberapa klaim, dilambangkan sebagai a
untuk menentukan apakah itu "halusinasi" atau "non-halusinasi", memberikan alasan atas penilaian mereka berdasarkan definisi halusinasi yang diberikan. Deteksi halusinasi teks dari LLM menunjukkan sub-kasus dalam pengaturan ini, di mana v
adalah nol.
Untuk memajukan lintasan penelitian ini, kami memperkenalkan tolok ukur meta-evaluasi MHaluBench, yang mencakup konten dari pembuatan gambar-ke-teks dan teks-ke-gambar, yang bertujuan untuk menilai secara ketat kemajuan dalam detektor halusinasi multimodal. Rincian statistik lebih lanjut tentang MHaluBench disediakan pada Gambar di bawah.
Tabel 1: Perbandingan tolok ukur sehubungan dengan pemeriksaan fakta atau evaluasi halusinasi yang ada. "Memeriksa." menunjukkan verifikasi konsistensi faktual, "Eval." menunjukkan evaluasi halusinasi yang dihasilkan oleh LLM berbeda, dan responsnya didasarkan pada LLM berbeda yang diuji, sedangkan "Det." mewujudkan evaluasi kemampuan detektor dalam mengidentifikasi halusinasi.
Gambar 2: Statistik data Tingkat Klaim MHaluBench. "IC" menandakan Keterangan Gambar dan "T2I" masing-masing menandakan sintesis Teks-ke-Gambar.
Gambar 3: Distribusi kategori halusinasi dalam klaim MHaluBench berlabel halusinasi.
Untuk mengatasi tantangan utama dalam deteksi halusinasi, kami memperkenalkan kerangka kerja terpadu pada Gambar 4 yang secara sistematis menangani identifikasi halusinasi multimodal untuk tugas gambar-ke-teks dan teks-ke-gambar. Kerangka kerja kami memanfaatkan kekuatan spesifik domain dari berbagai alat untuk mengumpulkan bukti multi-modal secara efisien untuk mengonfirmasi halusinasi.
Gambar 4: Ilustrasi spesifik UniHD untuk deteksi halusinasi multimodal terpadu.
Anda dapat mengunduh dua versi HalDet-LLaVA, 7b dan 13b, pada tiga platform: HuggingFace, ModelScope, dan WiseModel.
Memeluk Wajah | Lingkup Model | Model Bijaksana |
---|---|---|
HalDet-llava-7b | HalDet-llava-7b | HalDet-llava-7b |
HalDet-llava-13b | HalDet-llava-13b | HalDet-llava-13b |
Hasil tingkat klaim pada dataset validasi
jenis tugas | model | Acc | Rata-rata sebelumnya | Ingat rata-rata | Mac.F1 |
gambar-ke-teks | Periksa Mandiri 0shot (GPV-4V) | 75.09 | 74,94 | 75.19 | 74,97 |
Periksa Mandiri 2shot (GPV-4V) | 79.25 | 79.02 | 79.16 | 79.08 | |
HalDet (LLAVA-7b) | 75.02 | 75.05 | 74.18 | 74.38 | |
HalDet (LLAVA-13b) | 78.16 | 78.18 | 77.48 | 77.69 | |
UniHD(GPT-4V) | 81.91 | 81.81 | 81.52 | 81.63 | |
UniHD(GPT-4o) | 86.08 | 85,89 | 86.07 | 85,96 | |
teks-ke-gambar | Periksa Mandiri 0shot (GPV-4V) | 76.20 | 79.31 | 75,99 | 75.45 |
Periksa Mandiri 2shot (GPV-4V) | 80,76 | 81.16 | 80,69 | 80,67 | |
HalDet (LLAVA-7b) | 67.35 | 69.31 | 67.50 | 66.62 | |
HalDet (LLAVA-13b) | 74,74 | 76.68 | 74,88 | 74.34 | |
UniHD(GPT-4V) | 85.82 | 85.83 | 85.83 | 85.82 | |
UniHD(GPT-4o) | 89.29 | 89.28 | 89.28 | 89.28 |
Untuk melihat informasi lebih detail tentang HalDet-LLaVA dan dataset kereta api, silakan merujuk ke readme.
Instalasi untuk pengembangan lokal:
git clone https://github.com/zjunlp/EasyDetect.git
cd EasyDetect
pip install -r requirements.txt
Instalasi alat (GroundingDINO dan 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 ..
Kami memberikan contoh kode bagi pengguna untuk memulai EasyDetect dengan cepat.
Pengguna dapat dengan mudah mengonfigurasi parameter EasyDetect di file yaml atau cukup dengan cepat menggunakan parameter default di file konfigurasi yang kami sediakan. Jalur file konfigurasi adalah 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
Contoh Kode
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 )
Silakan kutip repositori kami jika Anda menggunakan EasyDetect dalam pekerjaan Anda.
@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 " ,
}
Kami akan menawarkan pemeliharaan jangka panjang untuk memperbaiki bug, menyelesaikan masalah, dan memenuhi permintaan baru. Jadi jika Anda mempunyai masalah, silakan sampaikan masalahnya kepada kami.