はじめに
MegaPairsはVectorSpaceLabチームによるGitHub上のオープンソースプロジェクトで、大規模なデータ合成技術によって画像-テキスト-画像検索タスクのためのマルチモーダル埋め込みモデルを生成する。このプロジェクトは、2,600万以上の異種KNNトライアッドデータセットと、BGE-VL-CLIP(ベースバージョンとラージバージョン)、BGE-VL-MLLM(S1バージョンとS2バージョン)を含むBGE-VLシリーズモデルの学習に基づいています。このうち、BGE-VL-MLLM-S1は、CIRCOゼロサンプル画像検索ベンチマーク(mAP@5)で8.1%の性能向上を示し、MMEBマルチモーダル埋め込みベンチマークでも良好な結果を示しています。コードとモデルはGitHubとHugging Faceからオープンソースで提供されており、データセットはMITライセンスの下でリリースされる予定である。
機能一覧
- 大規模データセットの生成マルチモーダル埋め込みモデルの学習に2,600万以上の異種KNNトリプルを提供。
- BGE-VL-CLIP埋め込みモデル画像やテキストの埋め込み表現を生成し、効率的な検索をサポートします。
- BGE-VL-MLLM埋め込みモデルゼロサンプル検索をサポートする高性能なマルチモーダル埋め込みを生成します。
- ゼロサンプル検索をサポート埋め込みを生成し、学習なしで画像-テキスト検索タスクを実行します。
- オープンソースと拡張モデル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を入手:
- https://huggingface.co/BAAI/BGE-VL-MLLM-S1
- Pythonスクリプトによる自動ダウンロード(下記参照)。
主要機能の使用
1.データセットの使用
MegaPairsデータセットは、マルチモーダル埋め込みモデルを学習するための2,600万トリプルを含むが、まだ完全にはリリースされていない。 ハグする顔 オファー
- 取得方法公式アップデートに注目し、ダウンロードしてモデルのトレーニングや検証に使ってください。
- データ形式(クエリ画像、テキスト記述、ターゲット画像) 埋め込み生成と検索をサポート。
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はゼロサンプル動作をサポートしています:
- 画像やテキストを入力し、埋め込みを生成し、学習なしで直接検索します。
- CIRCOで8.1%のmAP@5をアップグレード。
高性能とスケーラビリティ
- パフォーマンスMMEB 上で優れたマルチモーダル埋め込みを生成し、S2 用にさらに最適化。
- スケーラビリティエンベッディングの品質は、データ量が増えるにつれて向上し、50万サンプルはすでに従来のモデルを凌駕しています。
ほら
- ハードウェア要件推奨GPU(16GB以上のビデオメモリ)。
- 依存バージョン使用
transformers==4.41.2
歌で応えるsentencepiece
. - ドキュメンテーション・サポートGitHubとHugging Faceのページをチェックしてください。
- コミュニティ・ヘルプGitHub IssuesまたはHugging Face Discussionsで質問してください。
以上の手順で、ユーザーはマルチモーダル埋め込みを生成し、検索タスクを完了することができる。