Gemini と Vertex AI を使って RAG を構築している場合、新しいドキュメントが引き当てられない問題を解決するためには、Google Cloud の検索機能や Embedding モデルの調整が重要になります。以下のアプローチを試してください。
1. Vertex AI Search (旧: Enterprise Search) の利用
Gemini API で新しい情報を適切に引き当てるには、Google Cloud の Vertex AI Search を活用すると精度が向上する可能性があります。
✅ 対応策
- Vertex AI Search にインデックスを作成し、新しいドキュメントを含めた検索結果を取得できるか確認。
vector search
とtext search (BM25)
を組み合わせ、新しい情報にスコアブーストをかける。- 検索クエリに
filter
を追加して、最近追加・更新されたデータを優先。
2. 埋め込みモデルの最適化
現在の Vertex AI の埋め込み (Embedding) モデルが新しい情報を適切に特徴量化できていない可能性があります。
✅ 対応策
- 最新の Vertex AI Embedding モデル (
textembedding-gecko
など) を使用textembedding-gecko-multilingual
など、最適なモデルを選択。
- Embedding のリフレッシュ
- 新しいデータを定期的に再埋め込みして、最新の情報が反映されるようにする。
- 類似度の閾値 (
similarity threshold
) を調整similarity score
のしきい値を調整することで、新しい情報をより取得しやすくする。
3. 検索アルゴリズムの調整
現在の検索方法が古い情報を優先的に引き当てる設定になっている可能性があります。
✅ 対応策
- BM25 と Vector Search のハイブリッド検索
full_text_search
(BM25) とvector_search
を組み合わせて、新しい情報に対してスコアをブースト。
- 時間的な重み付け (Temporal Re-ranking)
created_at
やupdated_at
のフィールドを考慮し、新しいドキュメントにスコアボーナスを付与。
- フィルタを追加
"updated_at > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)"
などのフィルタを適用し、最新情報の優先度を上げる。
4. Gemini API のプロンプト最適化
Gemini の Retrieval 部分で、検索クエリが適切に処理されているかを確認。
✅ 対応策
- プロンプトに
"最新の情報を優先的に取得する"
という指示を明示的に記述。 "最新のデータを含めて検索し、過去のデータが不要なら省略する"
などの追加指示を試す。- Google Cloud の
function calling
機能を活用して、Vertex AI Search との統合を強化。
5. Vertex AI Matching Engine の活用
Vertex AI の Matching Engine
を使うと、スケーラブルなベクトル検索が可能になります。
✅ 対応策
- 既存の検索に
Matching Engine
を組み込む- より高速でスケーラブルなベクトル検索が可能。
- Hybrid Search を試す
BM25 + Vector Search + Matching Engine
の組み合わせを導入し、検索精度を向上。
6. データのインデックス更新
現在のインデックスが古いデータで固定されている可能性があるため、新しいデータの追加を確実に行う。
✅ 対応策
Google Cloud Storage (GCS) + Vertex AI
を利用し、新しいドキュメントの更新をリアルタイムでインデックスする。Cloud Functions
やCloud Scheduler
を活用し、定期的にデータをインデックスに反映。"cron job"
を使ってGCS → Vertex AI Index
への更新を自動化。
まとめ
📌 最優先で試すべきこと
- Vertex AI Search を有効活用して、新しい情報を優先的に取得
- 埋め込みモデル (
textembedding-gecko
) の更新と最適化 - BM25 + Vector Search のハイブリッド検索を導入
- Gemini API のプロンプトを最適化し、最新情報を優先するよう指示
- Vertex AI Matching Engine を活用し、高精度な検索を実現
- Cloud Scheduler + Cloud Functions で定期的にデータ更新
現在の実装状況を詳しく教えてくれれば