AI・機械学習
上級

BGE-M3(ビージーイーエムスリー)

BAAI(北京智源人工知能研究院)が開発した多言語・多粒度・多機能の埋め込みモデル。Dense・Sparse・ColBERT の3種類のベクトルを同時生成し、100言語以上に対応する2024年公開のオープンソース Embedding モデル。

0 回閲覧
0 いいね
2026/6/20 更新
関連タグ
埋め込みモデル
Embedding
BAAI
多言語
RAG
ベクトル検索

BGE-M3とは

BGE-M3は、中国の北京智源人工知能研究院(BAAI)が2024年1月に公開したオープンソースのテキスト埋め込みモデルである。名称の「M3」は Multi-linguality(多言語)、Multi-functionality(多機能)、Multi-granularity(多粒度)の3つの「M」に由来する。1つのモデルで Dense・Sparse・ColBERT の3種類のベクトル表現を同時生成でき、100言語以上・最大8,192トークンの入力に対応する。

主な特徴

  • Multi-linguality(多言語): 100言語以上をサポート。英語・中国語・日本語・韓国語はもちろん、アラビア語・ヒンディー語・スワヒリ語等の低リソース言語でも高品質な埋め込みを生成
  • Multi-functionality(多機能): 1モデルで3種類の検索方式を同時サポート
    • Dense retrieval: 1024次元の密ベクトルによるセマンティック検索
    • Sparse retrieval(Lexical): 学習済みの疎ベクトルでBM25相当のキーワードマッチングを実現
    • Multi-vector(ColBERT): トークンレベルの細粒度マッチングで高精度なリランキング
  • Multi-granularity(多粒度): 短文(クエリ)から長文(最大8,192トークン)まで対応。文・段落・文書レベルの検索に使える
  • パラメータ数: 568M(XLM-RoBERTa-largeベース)
  • ライセンス: MIT(商用利用可)
  • 学習データ: RetroMAE前訓練 → 対照学習 → Self-Knowledge Distillation の3段階で訓練

Dense・Sparse・ColBERT の違い

方式ベクトル形状得意な場面速度
Dense1024次元の1ベクトルセマンティック類似検索高速
Sparse語彙サイズの疎ベクトルキーワード完全一致・専門用語高速
ColBERTトークン数×1024の行列高精度リランキング低速

実用的には Dense + Sparse のハイブリッド検索でリコール率を最大化し、ColBERT でリランキングする3段階パイプラインが推奨される。

ベンチマーク性能

ベンチマークBGE-M3E5-MistralVoyage-3
MIRACL(多言語検索)71.8 nDCG@1064.2—
MTEB Retrieval(英語)58.4 nDCG@1056.967.3
BEIR(英語14タスク平均)51.8 nDCG@1050.1—
最大入力長8,192 tokens4,096 tokens16,000 tokens

多言語検索(MIRACL)では圧倒的な強さを見せるが、英語単一ではVoyage-3等のクローズドモデルに劣る場面もある。

利用方法

from FlagEmbedding import BGEM3FlagModel

model = BGEM3FlagModel('BAAI/bge-m3', use_fp16=True)

sentences = ["BGE-M3は多言語埋め込みモデルです", "RAGパイプラインで使用されます"]
embeddings = model.encode(sentences, return_dense=True, return_sparse=True, return_colbert_vecs=True)

# Dense vector: embeddings['dense_vecs']   → shape (2, 1024)
# Sparse vector: embeddings['lexical_weights']  → list of dict
# ColBERT vector: embeddings['colbert_vecs']  → list of (seq_len, 1024)

Sentence Transformers・LlamaIndex・LangChain等の主要フレームワークでも対応済み。

RAGでの活用パターン

  1. インデックス構築: ドキュメントを BGE-M3 で Dense + Sparse ベクトル化し、Qdrant・Milvus・Weaviate に格納
  2. ハイブリッド検索: クエリの Dense ベクトルと Sparse ベクトルを同時検索し、RRF(Reciprocal Rank Fusion)でスコア統合
  3. ColBERT リランキング: 上位候補を ColBERT のトークンレベルマッチングで再順位付け
  4. LLM 入力: リランキング後の上位文書をコンテキストとして LLM に渡す

関連モデルとの違い

BGE-M3の独自性は「1モデル3方式」のマルチ機能性にある。E5-MistralはLLMベースの高品質Dense埋め込み、Voyage-3はAPIサービスとしての利便性、GTE-Qwen2はQwen2ベースの軽量高性能、Jina Embeddings v3はタスク別LoRAアダプタでそれぞれ差別化する。多言語RAGではBGE-M3が第一選択。

よくある質問(FAQ)

Q1: BGE-M3はGPU必須? A: 推論はCPUでも可能だが、568Mパラメータのため実用的にはGPU推奨。FP16で約1.1GB VRAM消費。バッチ推論ではRTX 3060以上で快適に動作する。

Q2: OpenAI text-embedding-3-smallと比べてどう? A: OpenAIはAPI経由で手軽だが多言語性能でBGE-M3に劣る(特に日本語・中国語)。Sparse/ColBERT非対応のため検索精度の上限もBGE-M3が上。ただしOpenAIの方がインフラ管理不要。

Q3: LM StudioやOllamaで動かせる? A: BGE-M3はLM Studioで対応済み(GGUF形式)。Ollamaでも ollama pull bge-m3 でローカル実行可能。量子化版(Q4_K_M等)ならVRAM 600MB程度で動作。

まとめ

  • BGE-M3はDense・Sparse・ColBERTの3方式を1モデルで提供する多言語埋め込みモデル
  • 100言語以上対応・最大8,192トークン入力で多言語RAGの第一選択
  • MITライセンスで商用利用可能、主要フレームワーク対応済み
  • ハイブリッド検索+ColBERTリランキングで検索精度を最大化できる
この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/20