BGE-M3(ビージーイーエムスリー)
Beijing Academy of AI(BAAI)が開発した多機能・多言語・多粒度テキスト埋め込みモデル。Dense/Sparse/ColBERT式の3つの検索方式を1モデルで統合し、8192トークンまでの長文に対応する。
BGE-M3は、Beijing Academy of AI(BAAI)が2024年にリリースした次世代テキスト埋め込みモデルだ。最大の特徴はMulti-Functionality・Multi-Linguality・Multi-Granularityの3つの「Multi」を一つのモデルで実現した点にある。
BGE-M3の3つの革新
BGE-M3が従来モデルと根本的に異なるのは、3種類の検索パラダイムを単一モデルで提供することだ。
- Dense Retrieval(密ベクトル検索): 従来型のコサイン類似度ベース検索。クエリとドキュメントを固定次元(1024次元)のベクトルに変換
- Sparse Retrieval(疎ベクトル検索): BM25に似た語彙ベース重みづけ。キーワードマッチ精度を保ちつつ意味理解も加味
- Multi-Vector/ColBERT式検索: トークンレベルの詳細マッチング。高精度だがコスト大
この3方式を状況に応じて切り替えたり、ハイブリッド検索として組み合わせることができる。
スペック比較
| モデル | 最大トークン | 次元数 | 言語数 | 特徴 |
|---|---|---|---|---|
| BGE-M3 | 8,192 | 1,024 | 100以上 | Dense+Sparse+ColBERT統合 |
| text-embedding-3-large | 8,191 | 3,072 | 多言語 | OpenAI製・高精度 |
| E5-Mistral-7B | 32,768 | 4,096 | 多言語 | 超長文対応 |
| Voyage-3 | 32,000 | 1,024 | 多言語 | 商用高品質 |
| Nomic Embed v1.5 | 8,192 | 768 | 英語主体 | Apache 2.0・軽量 |
多言語・長文対応の詳細
BGE-M3が「Multi-Linguality」と「Multi-Granularity」を謳う理由は具体的なスペックに裏付けられている。
- 対応言語: 100言語以上(日本語含む)
- 最大入力長: 8,192トークン(約6,000日本語文字に相当)
- モデルサイズ: 約570MB(BGE-M3 FP16)
- Hugging Face:
BAAI/bge-m3(2024年時点で月間1M+ダウンロード)
実装例(FlagEmbedding使用)
from FlagEmbedding import BGEM3FlagModel
model = BGEM3FlagModel('BAAI/bge-m3', use_fp16=True)
# Dense検索用エンコード
embeddings = model.encode(
['BGE-M3とは何か?', 'テキスト埋め込みモデルの使い方'],
batch_size=12,
max_length=8192,
)['dense_vecs']
RAGでの活用パターン
BGE-M3はRAG(Retrieval-Augmented Generation)パイプラインでの利用が主な用途だ。
- ドキュメントのインデックス作成: 文書をチャンク分割→BGE-M3でベクトル化→Qdrant/Weaviate等に格納
- ハイブリッド検索: Dense(意味検索)+ Sparse(キーワード検索)を組み合わせてリコール率向上
- リランキング: BGE-Rerankerと組み合わせてTop-Kの精度を更に改善
2025年の位置づけ
2025年時点でBGE-M3はオープンソース埋め込みモデルの事実上の標準の一つになっている。MTEBベンチマーク(Massive Text Embedding Benchmark)での評価では、多言語タスクで商用モデルに匹敵するスコアを記録。Qwen3-Embedding-8B(2025年リリース)との比較では精度で若干劣るケースもあるが、軽量・無料・商用利用可という強みは維持している。
よくある質問
Q1: BGE-M3とBGE-Large-ENの違いは? BGE-Large-ENは英語特化の単機能モデル(Dense Retrievalのみ)。BGE-M3は多言語+3機能統合版でより汎用的だが、英語単一タスクではBGE-Large-ENの方が軽くて速い場合もある。
Q2: OllamaでBGE-M3を動かせる?
動かせる。ollama pull bge-m3でダウンロード可能。ただしColBERT方式はOllamaでは非対応で、Dense出力のみとなる。
Q3: 日本語の精度は十分か? 十分実用的なレベル。日本語のRAGや検索システムでの採用事例も多い。ただし日本語特化モデル(Multilingual-E5等)と比較するとやや劣る場合がある。
まとめ
- Dense/Sparse/ColBERT 3方式を1モデルで提供
- 100言語以上・8,192トークン対応
- Apache 2.0ライセンスで商用利用無料
- RAGとハイブリッド検索の組み合わせで真価を発揮
- HuggingFace:
BAAI/bge-m3