埋め込みモデルの選定が検索品質を決める
RAGシステムの品質はLLMの性能よりも検索精度に依存する。検索精度の根幹を成すのが埋め込みモデルだ。不適切な埋め込みモデルを選ぶと、どれほど優秀なLLMを使っても「関連性の低いドキュメントに基づくハルシネーション」が頻発する。
評価対象モデル
OpenAI text-embedding-3-large: 3072次元、Matryoshka表現学習で任意次元に縮小可能。API経由のみ、$0.13/100万トークン。Cohere embed-v3: 1024次元、search_document/search_queryの入力タイプ指定が特徴。$0.10/100万トークン。BGE-M3(BAAI): 1024次元、MITライセンス。Dense、Sparse、Multi-Vector(ColBERT)を同時生成。Jina Embeddings v3: 1024次元、8192トークンコンテキスト長、$0.02/100万トークン。
多言語性能ベンチマーク
日本語ドキュメント10,000件でのRecall@10。日本語→日本語: OpenAI 91.2%、Cohere 89.5%、BGE-M3 92.8%、Jina 90.1%。英語→日本語(クロスリンガル): OpenAI 84.3%、Cohere 82.1%、BGE-M3 88.5%、Jina 85.7%。日本語→英語: OpenAI 86.1%、Cohere 83.8%、BGE-M3 87.2%、Jina 84.9%。
BGE-M3が日本語タスクで一貫して最高性能。CJKのトークナイゼーション効率が他モデルより優れている。
実務評価とHybrid Search
KGAのRAGシステム(技術文書15,000件)での「正解ドキュメントTop-5含有率」(500クエリ): OpenAI 78%、Cohere 74%、BGE-M3 82%、Jina 76%。Cohereはinput_typeの指定を怠ると性能が10-15%低下するため注意。
BGE-M3の最大の強みは1回のモデル呼び出しでDense+Sparse+Multi-Vector embeddingを同時生成できる点。KGAではDense + SparseのHybrid検索をRRFで統合し、Dense単独比でRecall@10が8.4%向上。「エラーコード E-1234 の対処法」のようなキーワード依存クエリで特に効果大。
コスト分析と推奨
月間1,000万件(平均500トークン)のコスト: OpenAI $650、Cohere $500、BGE-M3セルフホスト(A10G 1台)$380、Jina $100。
KGAの結論: 日本語RAG → BGE-M3セルフホスト一択。英語中心+手軽さ → OpenAI text-embedding-3-large。コスト最優先 → Jina v3。エンタープライズ要件 → Cohere embed-v3。BGE-M3のセルフホストにはTEI(Hugging Face製、Rust実装)を推奨。A10G 1台で秒間800リクエスト処理可能。