埋め込みモデルの選択

dify-docs-choose-embedding-model

埋め込みモデルとは

Notion image

埋め込みモデル(Embedding Model)は、テキストを固定長の数値ベクトル(埋め込みベクトル)に変換するAIモデルです。ベクトル同士の距離(コサイン類似度など)を計算することで、テキスト間の意味的な近さを定量的に比較できます。

埋め込みのイメージ

埋め込みとは、テキストの意味を捉えた高次元(数百〜数千次元)の数値ベクトルです。

例えば、

  • 「犬」と「猫」→ どちらもペット・動物なので、ベクトル空間上で近い位置に配置
  • 「犬」と「自動車」→ 意味的に関連が薄いため、遠い位置に配置

このベクトル化により、単純なキーワード一致だけでなく、意味的に類似した文書の検索(セマンティック検索)が可能になります。

主な用途

  • RAG(検索拡張生成):生成AIが回答するための関連文書検索
  • セマンティック検索:表記揺れや同義語に対応した情報検索
  • 分類・クラスタリング:文書の自動分類やグルーピング
  • レコメンデーション:類似記事や類似商品の提案

代表的な埋め込みモデルの候補

現在主流のモデルは以下の通りです。用途とコストに合わせて選定してください。

1. OpenAI (text-embedding-3 シリーズ)

業界標準として広く利用されています。前世代(ada-002)と比較して性能が向上し、コストが低下しています。

  • text-embedding-3-small
    • 特徴: 高速かつ非常に低コスト、一般的な用途には十分な性能
    • 次元数: 1536
  • text-embedding-3-large 
    • 特徴: 高精度、多言語や複雑なタスクでより良い性能発揮、smallより高価
    • 次元数: 3072

2. Cohere (Embed v3 シリーズ)

検索品質(Rerank等との組み合わせ)や多言語対応に強みを持ちます。

  • embed-multilingual-v3.0 
    • 特徴: 100以上の言語対応、日本語の精度高、検索用途に特化した学習
    • 次元数: 1024

3. Google (Vertex AI text-embedding シリーズ)

Google Cloud環境を利用している場合に親和性が高いモデルです。

  • text-embedding-004 (Gecko系)
    • 特徴: 多言語対応(日本語含む)、タスクタイプ(検索クエリ、文書、分類など)を指定して埋め込みを生成できる機能搭載
    • 次元数: 768

4. オープンソース / ローカルモデル

Hugging Face等で公開されているモデルを自社サーバーで運用する場合です。

  • 代表例: E5 (multilingual-e5)、BGE (BAAI General Embedding) シリーズ
  • メリット: データが外部に出ない、ランニングコストが計算リソースのみ
  • デメリット: インフラ構築・保守の手間が発生

モデル選定のポイント

1. 言語対応能力

日本語特有の文脈理解が必要な場合、多言語モデル(Multilingual)の性能評価(MTEBリーダーボードの日本語スコアなど)を確認するか、実データで検証することが推奨されます。

2. 精度・速度・コストのバランス

高精度なモデル(次元数が大きいモデル)は、ベクトルDBのストレージ容量と検索計算コストを増加させます。大規模なナレッジベース(数百万件以上)の場合、保存コストとレイテンシへの影響が大きくなるため、smallモデルや量子化技術の検討が必要です。

3. ベクトルDBとの適合性

利用するベクトルデータベースが推奨する次元数や距離関数(コサイン類似度、ドット積など)を確認してください。OpenAIの新しいモデルなどは次元数を短縮(短縮しても性能劣化が少ない)する機能を持つものもあります。

導入・運用上の注意

一度選定したモデルは変更が困難

埋め込みモデルを変更する場合、データベース内の全ドキュメントを新しいモデルで再度ベクトル化(Re-indexing)する必要があります。運用途中での変更はコストと時間がかかるため、初期の選定と小規模なPoC(概念実証)が重要です。

ハイブリッド検索の推奨

ベクトル検索だけでは「品番」や「固有名詞」の完全一致検索に弱い場合があります。実運用では、ベクトル検索(意味)+キーワード検索(語句)を組み合わせたハイブリッド検索の実装を強く推奨します。

設定手順(一般的な流れ)

  1. モデル選定: 要件(精度・コスト・言語)に基づきモデルを決定
  1. チャンク化: 文書を適切な長さ(例: 500~1000文字)に分割
  1. 埋め込み生成: API等を通じてベクトルデータを取得
  1. DB保存: ベクトルDBにメタデータと共に保存
  1. 検索テスト: 想定される質問で検索精度を確認し、必要に応じてチャンクサイズや検索パラメータ(TopK, 閾値)を調整

埋め込みモデルの設定

設定手順

Notion image
  1. ナレッジベース作成時に埋め込みモデルを選択
  1. またはドキュメント追加時に選択

注意事項

  • 一度設定した埋め込みモデルは後から変更不可
  • 変更する場合はナレッジベースの再作成が必要
  • 同じアプリ内で異なる埋め込みモデルのナレッジを混在可能
お役に立ちましたか?
😞
😐
🤩

最終更新日 February 20, 2026