AI Personal Learning
und praktische Anleitung
CyberKnife-Zeichenspiegel

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

Allgemeine Einführung

MegaPairs 是 VectorSpaceLab 团队在 GitHub 上开源的项目,通过大规模数据合成技术生成多模态嵌入模型,用于图像-文本到图像的检索任务。项目基于超过2600万个异构 KNN 三元组数据集,训练了 BGE-VL 系列模型,包括 BGE-VL-CLIP(base 和 large 版本)和 BGE-VL-MLLM(S1 和 S2 版本)。其中,BGE-VL-MLLM-S1 在 CIRCO 零样本图像检索基准上提升了 8.1% 的性能(mAP@5),在 MMEB 多模态嵌入基准中也表现出色。代码和模型已开源于 GitHub 和 Hugging Face,数据集计划后续发布,采用 MIT 许可证,数据源自 Recap-Datacomp(CC BY 4.0 许可)。

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


 

Funktionsliste

  • 生成大规模数据集: 提供超过2600万个异构 KNN 三元组,用于训练多模态嵌入模型。
  • BGE-VL-CLIP 嵌入模型: 包括 base 和 large 版本,生成图像和文本的嵌入表示,支持高效检索。
  • BGE-VL-MLLM 嵌入模型: 提供 S1 和 S2 版本,生成高性能多模态嵌入,支持零样本检索。
  • 支持零样本检索: 无需训练即可生成嵌入并完成图像-文本检索任务。
  • 模型开源与扩展: 在 Hugging Face 提供预训练模型,支持下载、使用和微调。

 

Hilfe verwenden

MegaPairs 通过 GitHub 和 Hugging Face 分发代码和模型,用户可以快速生成多模态嵌入并完成检索任务。以下是详细操作指南,基于 BGE-VL-MLLM-S1 的官方说明(Hugging Face)。

Anschaffung und Installation

  1. Zugriff auf GitHub-Repositories: 打开 https://github.com/VectorSpaceLab/MegaPairs,查看项目详情。
  2. Klon-Lager: 在终端运行以下命令下载代码:
git clone https://github.com/VectorSpaceLab/MegaPairs.git
cd MegaPairs
  1. Installation von Abhängigkeiten: 使用 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

Hugging Face 要求 transformers==4.41.2 im Gesang antworten sentencepiece.
4. Modelle herunterladen: 从 Hugging Face 获取 BGE-VL-MLLM-S1:

  • 访问 https://huggingface.co/BAAI/BGE-VL-MLLM-S1
  • 通过 Python 脚本自动下载(见下文)。

Verwendung der Hauptfunktionen

1. 数据集使用

MegaPairs 数据集包含 2600 万个三元组,用于训练多模态嵌入模型,目前尚未完全发布,计划通过 Gesicht umarmen 提供。

  • 获取方式: 关注官方更新,下载后可用于模型训练或验证。
  • 数据格式: 三元组(查询图像、文本描述、目标图像),支持嵌入生成和检索。

2. 生成多模态嵌入(BGE-VL-MLLM-S1)

BGE-VL-MLLM-S1 是核心嵌入模型,用于生成图像和文本的嵌入表示并完成检索。以下是官方代码:

  • Modelle laden:
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 Abruf 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)  # 输出相似度得分
    
    • Auswertung der Ergebnissescores 表示查询嵌入与候选嵌入的相似度,得分越高匹配度越高。

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. 模型微调

用户可利用数据集微调模型:

  • Vorbereitung der Daten: 准备图像-文本对或三元组。
  • 微调流程: 微调代码待发布,可参考 Transformatoren (in Form eines Nominalausdrucks) Trainer API。
  • validieren (eine Theorie): 使用 CIRCO 或 MMEB 基准测试效果。

Featured Function Bedienung

零样本嵌入生成与检索

BGE-VL-MLLM-S1 支持零样本操作:

  • 输入图像和文本,生成嵌入后直接检索,无需训练。
  • 在 CIRCO 上提升 8.1% 的 mAP@5。

高性能与可扩展性

  • Leistungen: 在 MMEB 上生成优异的多模态嵌入,S2 版本进一步优化。
  • Skalierbarkeit: 数据量增加时嵌入质量提升,50 万样本已超越传统模型。

caveat

  • Hardware-Voraussetzung: 推荐 GPU(16GB 显存以上)。
  • abhängige Version: Verwendung transformers==4.41.2 im Gesang antworten sentencepiece.
  • Unterstützung der Dokumentation: 查看 GitHub 和 Hugging Face 页面。
  • 社区帮助: 在 GitHub Issues 或 Hugging Face Discussions 中提问。

通过以上步骤,用户可以生成多模态嵌入并完成检索任务。

CDN1
Darf nicht ohne Genehmigung vervielfältigt werden:Chef-KI-Austauschkreis " MegaPairs:BGE新推出的多模态向量嵌入模型

Chef-KI-Austauschkreis

Der Chief AI Sharing Circle konzentriert sich auf das KI-Lernen und bietet umfassende KI-Lerninhalte, KI-Tools und praktische Anleitungen. Unser Ziel ist es, den Nutzern dabei zu helfen, die KI-Technologie zu beherrschen und gemeinsam das unbegrenzte Potenzial der KI durch hochwertige Inhalte und den Austausch praktischer Erfahrungen zu erkunden. Egal, ob Sie ein KI-Anfänger oder ein erfahrener Experte sind, dies ist der ideale Ort für Sie, um Wissen zu erwerben, Ihre Fähigkeiten zu verbessern und Innovationen zu verwirklichen.

Kontaktieren Sie uns
de_DE_formalDeutsch (Sie)