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).

MegaPairs:BGE新推出的多模态向量嵌入模型

 

Список функций

  • Создание больших массивов данных: Предоставляет более 26 миллионов разнородных KNN-тройников для обучения мультимодальных моделей встраивания.
  • Модель встраивания BGE-VL-CLIPВключает базовую и большую версии, генерирует встроенные представления изображений и текста и поддерживает эффективный поиск.
  • Модель встраивания BGE-VL-MLLMДоступны версии S1 и S2, генерирующие высокопроизводительные мультимодальные вкрапления, поддерживающие поиск по нулевой выборке.
  • Поддержка поиска по нулевому образцу: Генерирование вкраплений и выполнение задач поиска изображений и текстов без обучения.
  • Модель с открытым исходным кодом и расширением: Предоставляет предварительно обученные модели Hugging Face, поддерживая их загрузку, использование и тонкую настройку.

 

Использование помощи

MegaPairs распространяет код и модели через GitHub и Hugging Face, позволяя пользователям быстро генерировать мультимодальные вкрапления и выполнять задачи поиска. Ниже приведено подробное руководство, основанное на официальных инструкциях для BGE-VL-MLLM-S1 (Hugging Face).

Приобретение и установка

  1. Доступ к репозиториям GitHub: Открыть https://github.com/VectorSpaceLab/MegaPairsПосмотреть детали проекта.
  2. склад клонов: Выполните следующую команду в терминале, чтобы загрузить код:
git clone https://github.com/VectorSpaceLab/MegaPairs.git
cd MegaPairs
  1. Установка зависимостей: Используя 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.

Выполнив вышеописанные действия, пользователь может сгенерировать мультимодальную вставку и выполнить задачу поиска.

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...