MLLM을 위한 사용하기 쉬운 다중 모드 환각 감지 프레임워크
?승인 • ?벤치마크 • ?데모 • ?개요 • ?ModelZoo • ?설치 • ⏩빠른 시작 • 인용
이 프로젝트의 일부 구현은 FactTool, Woodpecker 등을 포함한 관련 환각 툴킷의 도움과 영감을 받았습니다. 이 저장소는 mPLUG-Owl, MiniGPT-4, LLaVA, GroundingDINO 및 MAERec의 공개 프로젝트의 이점도 제공합니다. 우리는 오픈 소스에 대해서도 동일한 라이센스를 따르며 커뮤니티에 대한 기여에 감사드립니다.
EasyDetect는 연구 실험에서 GPT-4V, Gemini, LlaVA와 같은 다중 모드 대형 언어 모델(MLLM)을 위한 사용하기 쉬운 환각 감지 프레임워크로 제안된 체계적인 패키지입니다.
통합 탐지를 위한 전제 조건은 MLLM 내 환각의 주요 범주를 일관되게 분류하는 것입니다. 우리 논문은 통일된 관점에서 다음과 같은 환각 분류를 피상적으로 조사합니다.
그림 1: 통합 다중 모드 환각 감지는 객체, 속성, 장면-텍스트 등 다양한 수준에서 양상이 충돌하는 환각과 이미지-텍스트 및 텍스트-이미지 모두에서 사실 상충 환각을 식별하고 감지하는 것을 목표로 합니다. 세대.
양식 충돌 환각. MLLM은 때때로 다른 양식의 입력과 충돌하는 출력을 생성하여 잘못된 개체, 속성 또는 장면 텍스트와 같은 문제를 야기합니다. 위 그림 (a)의 예에는 운동 선수의 유니폼을 부정확하게 설명하는 MLLM이 포함되어 있으며 MLLM의 세밀한 텍스트-이미지 정렬 능력 제한으로 인해 속성 수준 충돌이 발생함을 보여줍니다.
사실과 모순되는 환각. MLLM의 결과는 확립된 사실 지식과 모순될 수 있습니다. 이미지-텍스트 모델은 관련 없는 사실을 통합하여 실제 콘텐츠에서 벗어나는 내러티브를 생성할 수 있는 반면, 텍스트-이미지 모델은 텍스트 프롬프트에 포함된 사실 지식을 반영하지 못하는 시각적 자료를 생성할 수 있습니다. 이러한 불일치는 사실적 일관성을 유지하려는 MLLM의 노력을 강조하며, 이는 해당 영역에서 중요한 과제를 나타냅니다.
다중 모드 환각의 통합 감지에는 각 이미지-텍스트 쌍 a={v, x}
의 확인이 필요합니다. 여기서 v
MLLM에 제공된 시각적 입력 또는 MLLM에 의해 합성된 시각적 출력을 나타냅니다. 이에 따라 x
v
또는 v
합성을 위한 텍스트 사용자 쿼리를 기반으로 MLLM이 생성한 텍스트 응답을 나타냅니다. 이 작업 내에서 각 x
에는 다음과 같이 표시되는 여러 클레임이 포함될 수 있습니다. a
의 각 주장을 평가하여 "환각"인지 "환각이 아닌"지 결정하고, 제공된 환각 정의를 기반으로 판단에 대한 근거를 제공하는 것입니다. LLM의 텍스트 환각 감지는 이 설정의 하위 사례를 나타냅니다. 여기서 v
null입니다.
이 연구 궤적을 발전시키기 위해 우리는 다중 모드 환각 탐지기의 발전을 엄격하게 평가하는 것을 목표로 이미지에서 텍스트로, 텍스트에서 이미지로 생성하는 콘텐츠를 포함하는 메타 평가 벤치마크 MHaluBench를 소개합니다. MHaluBench에 대한 추가 통계 세부 정보는 아래 그림에 나와 있습니다.
표 1: 기존 사실 확인 또는 환각 평가에 대한 벤치마크 비교. "확인하다." 사실적 일관성을 확인하는 "Eval"을 나타냅니다. 는 다양한 LLM에서 생성된 환각 평가를 나타내며 해당 응답은 테스트 중인 다양한 LLM을 기반으로 하며 "Det." 환각을 식별하는 탐지기의 능력에 대한 평가를 구체화합니다.
그림 2: MHaluBench의 클레임 수준 데이터 통계. "IC"는 이미지 캡션을 나타내고 "T2I"는 각각 텍스트-이미지 합성을 나타냅니다.
그림 3: MHaluBench의 환각 라벨이 붙은 주장 내 환각 카테고리 분포.
환각 감지의 주요 과제를 해결하기 위해 이미지-텍스트 및 텍스트-이미지 작업 모두에 대한 다중 모드 환각 식별을 체계적으로 다루는 통합 프레임워크를 그림 4에 소개합니다. 우리의 프레임워크는 환각 확인을 위한 다양한 증거를 효율적으로 수집하기 위해 다양한 도구의 영역별 강점을 활용합니다.
그림 4: 통합 다중 모드 환각 감지를 위한 UniHD의 구체적인 그림.
HuggingFace, ModelScope 및 WiseModel의 세 가지 플랫폼에서 HalDet-LLaVA의 두 가지 버전인 7b 및 13b를 다운로드할 수 있습니다.
포옹얼굴 | 모델 범위 | 현명한 모델 |
---|---|---|
HalDet-llava-7b | HalDet-llava-7b | HalDet-llava-7b |
HalDet-llava-13b | HalDet-llava-13b | HalDet-llava-13b |
검증 데이터 세트에 대한 클레임 수준 결과
작업 유형 | 모델 | Acc | 예측 평균 | 평균 회상 | 맥.F1 |
이미지를 텍스트로 | 자가진단 0shot (GPV-4V) | 75.09 | 74.94 | 75.19 | 74.97 |
자가진단 2샷(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 | |
유니HD(GPT-4V) | 81.91 | 81.81 | 81.52 | 81.63 | |
유니HD(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 | |
HalDet(LLAVA-7b) | 67.35 | 69.31 | 67.50 | 66.62 | |
HalDet (LLAVA-13b) | 74.74 | 76.68 | 74.88 | 74.34 | |
유니HD(GPT-4V) | 85.82 | 85.83 | 85.83 | 85.82 | |
유니HD(GPT-4o) | 89.29 | 89.28 | 89.28 | 89.28 |
HalDet-LLaVA 및 열차 데이터세트에 대한 자세한 정보를 보려면 추가 정보를 참조하세요.
로컬 개발을 위한 설치:
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를 빠르게 시작할 수 있도록 예제 코드를 제공합니다.
사용자는 yaml 파일에서 EasyDetect 매개변수를 쉽게 구성하거나 우리가 제공하는 구성 파일에서 기본 매개변수를 빠르게 사용할 수 있습니다. 구성 파일의 경로는 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 " ,
}
버그 수정, 문제 해결, 새로운 요청 충족을 위해 장기 유지 관리를 제공할 예정입니다. 따라서 문제가 있으면 우리에게 문제를 제기하십시오.