Домашняя страница | ? Набор данных (тест M-BEIR) | ? Контрольно-пропускные пункты (модели UniIR ) | arXiv | GitHub
Этот репозиторий содержит кодовую базу для документа ECCV-2024 « UniIR : обучение и сравнительный анализ универсальных мультимодальных средств извлечения информации».
Мы предлагаем структуру UniIR (универсальный мультимодальный поиск информации), чтобы научиться одному ретриверу выполнять (возможно) любую задачу поиска. В отличие от традиционных систем IR, UniIR необходимо следовать инструкциям, чтобы принять гетерогенный запрос и извлечь его из гетерогенного пула кандидатов с миллионами кандидатов в различных модальностях.
UniIR Teaser" style="width: 80%; максимальная ширина: 100%;">
Для обучения и оценки универсальных моделей мультимодального поиска мы создаем крупномасштабный тест поиска под названием M-BEIR (Мультимодальный тест для инструктированного поиска).
Мы предоставляем набор данных 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
Чтобы обучить модели UniIR на основе предварительно обученных контрольных точек CLIP и BLIP, следуйте инструкциям ниже. Сценарии автоматически загрузят предварительно обученные контрольные точки CLIP и BLIP.
Загрузите тест M-BEIR, следуя инструкциям в разделе M-BEIR .
cd src/models/ UniIR _clip/clip_scorefusion/configs_scripts/large/train/inbatch/
Измените inbatch.yaml
для настройки гиперпараметров и run_inbatch.sh
для вашей собственной среды и путей.
UniIR _DIR
в файле run_inbatch.sh
указав каталог, в котором вы хотите хранить контрольные точки.MBEIR_DATA_DIR
в run_inbatch.sh
на каталог, в котором вы храните тест M-BEIR.SRC_DIR
в run_inbatch.sh
на каталог, в котором вы храните кодовую базу проекта UniIR (этот репозиторий)..env
с WANDB_API_KEY
, WANDB_PROJECT
и WANDB_ENTITY
.Затем вы можете запустить следующую команду для обучения большой модели UniIR CLIP_SF.
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
Мы предоставляем конвейер оценки моделей UniIR на тесте M-BEIR.
Пожалуйста, создайте среду для библиотеки FAISS:
# From the root directory of the project
cd src/common/
conda env create -f faiss_env.yml
Загрузите тест M-BEIR, следуя инструкциям в разделе M-BEIR .
Вы можете обучить модели 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
в соответствии с вашей собственной средой, путями и настройками оценки.
UniIR _DIR
в run_eval_pipeline_inbatch.sh
на каталог, в котором вы хотите хранить большие файлы, включая контрольные точки, внедрения, индексирование и результаты извлечения. Затем вы можете поместить файл clip_sf_large.pth
по следующему пути: $ UniIR _DIR /checkpoint/CLIP_SF/Large/Instruct/InBatch/clip_sf_large.pth
model.ckpt_config
в файле embed.yaml
.MBEIR_DATA_DIR
в файле run_eval_pipeline_inbatch.sh
на каталог, в котором вы храните тест M-BEIR.SRC_DIR
в run_eval_pipeline_inbatch.sh
на каталог, в котором вы храните кодовую базу проекта UniIR (этот репозиторий). Конфигурация по умолчанию будет оценивать модель UniIR CLIP_SF Large как по тестам M-BEIR (5,6 млн гетерогенных кандидатов), так и по M-BEIR_local (однородный пул кандидатов). UNION
в файлах yaml относится к M-BEIR (5,6 млн гетерогенных кандидатов). Вы можете следить за комментариями в файлах 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
Конфигурация по умолчанию будет оценивать модель UniIR BLIP_FF Large как по тестам M-BEIR, так и по M-BEIR_local.
bash run_eval_pipeline_inbatch.sh
Оценка UniRAG очень похожа на оценку по умолчанию со следующими отличиями:
retrieval_results
. Это полезно, когда полученные результаты будут использоваться в последующих приложениях, таких как RAG.retrieve_image_text_pairs
в файле retrieval.yaml
установлено значение True
, для каждого кандидата будет выбран дополнительный кандидат с модальностью только text
или image
. При такой настройке кандидат и его дополнение всегда будут иметь модальность image, text
. Дополняющие кандидаты выбираются с использованием исходных кандидатов в качестве запросов (например, текст запроса -> изображение кандидата -> дополняющий текст кандидата ).InBatch
и inbatch
на UniRAG
и unirag
соответственно. Мы предоставляем контрольные точки модели UniIR в формате ? Контрольно-пропускные пункты . Вы можете напрямую использовать контрольные точки для задач поиска или точно настроить модели для собственных задач поиска.
Название модели | Версия | Размер модели | Ссылка на модель |
---|---|---|---|
UniIR (CLIP-SF) | Большой | 5,13 ГБ | Ссылка для скачивания |
UniIR (БЛИП-ФФ) | Большой | 7,49 ГБ | Ссылка для скачивания |
Вы можете скачать их по
git clone https://huggingface.co/TIGER-Lab/UniIR
БибТекс:
@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 }
}