MegaPairs: новая мультимодальная модель встраивания векторов от BGE
Общее введение
MegaPairs - это проект с открытым исходным кодом на GitHub, созданный командой VectorSpaceLab с целью создания мультимодальных моделей встраивания для задач поиска "текст-изображение" с помощью методов синтеза крупномасштабных данных. Проект основан на более чем 26 миллионах разнородных KNN-триадных датасетов, обученных моделям серии BGE-VL, включая BGE-VL-CLIP (базовая и большая версии) и BGE-VL-MLLM (версии S1 и S2). Среди них BGE-VL-MLLM-S1 улучшает производительность на 8.1% в эталоне поиска изображений с нулевой выборкой CIRCO (mAP@5), а также демонстрирует хорошие результаты в эталоне мультимодального встраивания MMEB. Код и модель были опубликованы на GitHub и Hugging Face, а набор данных планируется к последующему выпуску под лицензией MIT, с данными, полученными от Recap-Datacomp (лицензия CC BY 4.0).

Список функций
- Создание больших массивов данных: Предоставляет более 26 миллионов разнородных KNN-тройников для обучения мультимодальных моделей встраивания.
- Модель встраивания BGE-VL-CLIPВключает базовую и большую версии, генерирует встроенные представления изображений и текста и поддерживает эффективный поиск.
- Модель встраивания BGE-VL-MLLMДоступны версии S1 и S2, генерирующие высокопроизводительные мультимодальные вкрапления, поддерживающие поиск по нулевой выборке.
- Поддержка поиска по нулевому образцу: Генерирование вкраплений и выполнение задач поиска изображений и текстов без обучения.
- Модель с открытым исходным кодом и расширением: Предоставляет предварительно обученные модели Hugging Face, поддерживая их загрузку, использование и тонкую настройку.
Использование помощи
MegaPairs распространяет код и модели через GitHub и Hugging Face, позволяя пользователям быстро генерировать мультимодальные вкрапления и выполнять задачи поиска. Ниже приведено подробное руководство, основанное на официальных инструкциях для BGE-VL-MLLM-S1 (Hugging Face).
Приобретение и установка
- Доступ к репозиториям GitHub: Открыть
https://github.com/VectorSpaceLab/MegaPairs
Посмотреть детали проекта. - склад клонов: Выполните следующую команду в терминале, чтобы загрузить код:
git clone https://github.com/VectorSpaceLab/MegaPairs.git
cd MegaPairs
- Установка зависимостей: Используя Python 3.10, создайте виртуальную среду и установите необходимые библиотеки:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
pip install torch transformers==4.41.2 sentencepiece
Запрос на обнимающееся лицо transformers==4.41.2
ответить пением sentencepiece
.
4. Скачать модели: Получите BGE-VL-MLLM-S1 от Hugging Face:
- Посетите сайт https://huggingface.co/BAAI/BGE-VL-MLLM-S1
- Автоматическая загрузка с помощью скрипта Python (см. ниже).
Использование основных функций
1. использование наборов данных
Набор данных MegaPairs, содержащий 26 миллионов триплов для обучения моделей мультимодального встраивания, еще не полностью выпущен и планируется к выпуску через Обнимающееся лицо Предложение.
- Метод приобретения: Следите за официальным обновлением, загружайте его и используйте для обучения или проверки модели.
- формат данных: троичный (изображение запроса, текстовое описание, целевое изображение) с поддержкой генерации и поиска вкраплений.
2. генерация мультимодальных вкраплений (BGE-VL-MLLM-S1)
BGE-VL-MLLM-S1 - это основная модель встраивания для генерации встраиваемых представлений изображений и текста и завершения поиска. Ниже приведен официальный код:
- Модели для погрузки:
import torch
from transformers import AutoModel, AutoProcessor
model_name = "BAAI/BGE-VL-MLLM-S1"
processor = AutoProcessor.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(model_name, trust_remote_code=True)
model.eval()
model.cuda() # 使用 GPU 加速
- Генерировать встраивание и извлекать:
from PIL import Image # 准备输入 query_image = Image.open("./cir_query.png").convert("RGB") query_text = "Make the background dark, as if the camera has taken the photo at night" candidate_images = [Image.open("./cir_candi_1.png").convert("RGB"), Image.open("./cir_candi_2.png").convert("RGB")] # 处理查询数据 query_inputs = processor( text=query_text, images=query_image, task_instruction="Retrieve the target image that best meets the combined criteria by using both the provided image and the image retrieval instructions: ", return_tensors="pt", q_or_c="q" ) query_inputs = {k: v.cuda() for k, v in query_inputs.items()} # 处理候选数据 candidate_inputs = processor( images=candidate_images, return_tensors="pt", q_or_c="c" ) candidate_inputs = {k: v.cuda() for k, v in candidate_inputs.items()} # 生成嵌入并计算相似度 with torch.no_grad(): query_embs = model(**query_inputs, output_hidden_states=True).hidden_states[-1][:, -1, :] candi_embs = model(**candidate_inputs, output_hidden_states=True).hidden_states[-1][:, -1, :] query_embs = torch.nn.functional.normalize(query_embs, dim=-1) candi_embs = torch.nn.functional.normalize(candi_embs, dim=-1) scores = torch.matmul(query_embs, candi_embs.T) print(scores) # 输出相似度得分
- Интерпретация результатов:
scores
обозначает сходство между вкраплениями запроса и вкраплениями кандидата, чем выше балл, тем выше совпадение.
- Интерпретация результатов:
3. Генерация вкраплений с помощью BGE-VL-CLIP
BGE-VL-CLIP (base/large) также может генерировать мультимодальные вкрапления:
- Загрузите и запустите:
from transformers import AutoModel model_name = "BAAI/BGE-VL-base" model = AutoModel.from_pretrained(model_name, trust_remote_code=True) model.set_processor(model_name) model.eval() with torch.no_grad(): query = model.encode(images="./cir_query.png", text="Make the background dark") candidates = model.encode(images=["./cir_candi_1.png", "./cir_candi_2.png"]) scores = query @ candidates.T print(scores)
4. Тонкая настройка модели
Пользователи могут точно настроить модель с помощью набора данных:
- Подготовка данных: Подготовьте пары или тройки изображений и текстов.
- процесс тонкой настройки: Будет выпущен доработанный код, доступный по адресу
transformers
(используется в форме номинального выражения)Trainer
API. - подтвердить (теорию): Проверьте эффект, используя эталоны CIRCO или MMEB.
Функциональное управление
Генерация и поиск вкраплений нулевых образцов
BGE-VL-MLLM-S1 поддерживает работу с нулевым образцом:
- Вводите изображения и текст, генерируйте вкрапления и извлекайте их напрямую без обучения.
- Обновление 8.1%'s mAP@5 на CIRCO.
Высокая производительность и масштабируемость
- спектакли: Генерируем отличные мультимодальные вкрапления на MMEB, дополнительно оптимизированные для версии S2.
- масштабируемостьКачество встраивания улучшается по мере увеличения объема данных, а 500 000 образцов уже превосходят традиционные модели.
предостережение
- требования к оборудованию: Рекомендуемый графический процессор (16 ГБ видеопамяти или больше).
- версия зависимости: Использование
transformers==4.41.2
ответить пениемsentencepiece
. - Поддержка документации: Загляните на страницы GitHub и Hugging Face.
- Помощь сообществу: Задайте вопрос в GitHub Issues или Hugging Face Discussions.
Выполнив вышеописанные действия, пользователь может сгенерировать мультимодальную вставку и выполнить задачу поиска.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...