홈페이지 | ? 데이터세트(M-BEIR 벤치마크) | ? 체크포인트( UniIR 모델) | arXiv | GitHub
이 저장소에는 ECCV-2024 논문 " UniIR : 범용 다중 모드 정보 검색기 교육 및 벤치마킹"에 대한 코드베이스가 포함되어 있습니다.
우리는 모든 검색 작업을 수행하기 위해 단일 검색기를 학습하는 UniIR (Universal multimodal Information Retrieval) 프레임워크를 제안합니다. 기존 IR 시스템과 달리 UniIR 지침에 따라 다양한 양식의 수백만 명의 후보자가 포함된 이질적인 후보자 풀에서 검색하기 위해 이질적인 쿼리를 수행해야 합니다.
UniIR Teaser" style="너비: 80%; 최대 너비: 100%;">
범용 다중 모드 검색 모델을 훈련하고 평가하기 위해 M-BEIR (Multimodal BEnchmark for Instructed Retrieval)이라는 대규모 검색 벤치마크를 구축했습니다.
우리는 M-BEIR 데이터세트를 제공합니다 . 데이터세트 . HF 페이지에 제공된 지침에 따라 데이터세트를 다운로드하고 교육 및 평가용 데이터를 준비하세요. GiT LFS를 설정하고 저장소를 직접 복제해야 합니다.
git clone https://huggingface.co/datasets/TIGER-Lab/M-BEIR
우리는 UniIR CLIP-ScoreFusion, CLIP-FeatureFusion, BLIP-ScoreFusion 및 BLIP-FeatureFusion 모델을 훈련하고 평가하기 위한 코드베이스를 제공합니다.
다음 명령을 사용하여 UniIR 프로젝트 및 Conda 환경의 코드베이스를 준비합니다.
git clone https://github.com/TIGER-AI-Lab/UniIR
cd UniIR
cd src/models/
conda env create -f UniIR _env.yml
사전 훈련된 CLIP 및 BLIP 체크포인트에서 UniIR 모델을 훈련하려면 아래 지침을 따르십시오. 스크립트는 사전 학습된 CLIP 및 BLIP 체크포인트를 자동으로 다운로드합니다.
M-BEIR 섹션의 지침에 따라 M-BEIR 벤치마크를 다운로드하세요.
cd src/models/ UniIR _clip/clip_scorefusion/configs_scripts/large/train/inbatch/
하이퍼파라미터 튜닝을 위해 inbatch.yaml
수정하고 자신의 환경과 경로에 맞게 run_inbatch.sh
수정하세요.
run_inbatch.sh
의 UniIR _DIR
체크포인트를 저장할 디렉터리로 수정하세요.run_inbatch.sh
의 MBEIR_DATA_DIR
을 M-BEIR 벤치마크를 저장하는 디렉터리로 수정합니다.run_inbatch.sh
의 SRC_DIR
UniIR 프로젝트(이 저장소)의 코드베이스를 저장하는 디렉터리로 수정하세요.WANDB_API_KEY
, WANDB_PROJECT
및 WANDB_ENTITY
가 포함된 .env
환경이 설정되어 있는지 확인하세요.그런 다음 다음 명령을 실행하여 UniIR CLIP_SF Large 모델을 훈련할 수 있습니다.
bash run_inbatch.sh
cd src/models/ UniIR _blip/blip_featurefusion/configs_scripts/large/train/inbatch/
하이퍼파라미터 튜닝을 위해 inbatch.yaml
수정하고 자신의 환경과 경로에 맞게 run_inbatch.sh
수정하세요.
bash run_inbatch.sh
우리는 M-BEIR 벤치마크에서 UniIR 모델에 대한 평가 파이프라인을 제공합니다.
FAISS 라이브러리에 대한 환경을 생성하십시오:
# From the root directory of the project
cd src/common/
conda env create -f faiss_env.yml
M-BEIR 섹션의 지침에 따라 M-BEIR 벤치마크를 다운로드하세요.
Model Zoo 섹션의 지침에 따라 UniIR 모델을 처음부터 훈련하거나 사전 훈련된 UniIR 체크포인트를 다운로드할 수 있습니다.
cd src/models/ UniIR _clip/clip_scorefusion/configs_scripts/large/eval/inbatch/
자신의 환경, 경로 및 평가 설정에 맞게 embed.yaml
, index.yaml
, retrieval.yaml
및 run_eval_pipeline_inbatch.sh
수정하세요.
run_eval_pipeline_inbatch.sh
의 UniIR _DIR
체크포인트, 임베딩, 인덱스 및 검색 결과를 포함한 대용량 파일을 저장할 디렉터리로 수정하세요. 그런 다음 clip_sf_large.pth
파일을 다음 경로에 배치할 수 있습니다. $ UniIR _DIR /checkpoint/CLIP_SF/Large/Instruct/InBatch/clip_sf_large.pth
embed.yaml
파일의 model.ckpt_config
에 의해 지정된 기본 경로입니다.run_eval_pipeline_inbatch.sh
의 MBEIR_DATA_DIR
M-BEIR 벤치마크를 저장하는 디렉터리로 수정합니다.run_eval_pipeline_inbatch.sh
의 SRC_DIR
UniIR 프로젝트(이 저장소)의 코드베이스를 저장하는 디렉터리로 수정합니다. 기본 구성은 M-BEIR(560만 이종 후보 풀) 및 M-BEIR_local(동종 후보 풀) 벤치마크 모두에서 UniIR CLIP_SF Large 모델을 평가합니다. yaml 파일의 UNION
M-BEIR(560만 이종 후보 풀)을 나타냅니다. yaml 파일의 설명을 따르고 구성을 수정하여 M-BEIR_local 벤치마크에서만 모델을 평가할 수 있습니다.
bash run_eval_pipeline_inbatch.sh
embed
, index
, logger
및 retrieval_results
$ UniIR _DIR
디렉터리에 저장됩니다.
cd src/models/unii_blip/blip_featurefusion/configs_scripts/large/eval/inbatch/
마찬가지로 사전 학습된 UniIR 모델을 다운로드하는 경우 blip_ff_large.pth
파일을 다음 경로에 배치할 수 있습니다.
$ UniIR _DIR /checkpoint/BLIP_FF/Large/Instruct/InBatch/blip_ff_large.pth
기본 구성은 M-BEIR 및 M-BEIR_local 벤치마크 모두에서 UniIR BLIP_FF Large 모델을 평가합니다.
bash run_eval_pipeline_inbatch.sh
UniRAG 평가는 다음과 같은 차이점을 제외하고 기본 평가와 매우 유사합니다.
retrieval_results
아래에 저장합니다. 이는 검색된 결과가 RAG와 같은 다운스트림 애플리케이션에서 사용될 때 유용합니다.retrieval.yaml
의 retrieve_image_text_pairs
True
로 설정되면 text
또는 image
전용 양식을 사용하여 각 후보에 대해 보완 후보를 가져옵니다. 이 설정을 사용하면 후보와 그 보완물은 항상 image, text
양식을 갖게 됩니다. 보완 후보는 원본 후보를 쿼리로 사용하여 가져옵니다(예: 쿼리 텍스트 -> 후보 이미지 -> 보완 후보 텍스트 ).InBatch
및 inbatch
각각 UniRAG
및 unirag
로 바꾸십시오. 우리는 UniIR 모델 체크포인트를 ? 체크포인트 . 검색 작업을 위해 체크포인트를 직접 사용하거나 자체 검색 작업을 위해 모델을 미세 조정할 수 있습니다.
모델명 | 버전 | 모델 크기 | 모델 링크 |
---|---|---|---|
UniIR (CLIP-SF) | 크기가 큰 | 5.13GB | 다운로드 링크 |
UniIR (BLIP-FF) | 크기가 큰 | 7.49GB | 다운로드 링크 |
다음을 통해 다운로드할 수 있습니다.
git clone https://huggingface.co/TIGER-Lab/UniIR
BibTeX:
@article { wei2023 UniIR ,
title = { UniIR : Training and benchmarking universal multimodal information retrievers } ,
author = { Wei, Cong and Chen, Yang and Chen, Haonan and Hu, Hexiang and Zhang, Ge and Fu, Jie and Ritter, Alan and Chen, Wenhu } ,
journal = { arXiv preprint arXiv:2311.17136 } ,
year = { 2023 }
}