GoogleはVertex AI RAG EngineのRAG Cross Corpus Retrievalを公開プレビューとして提供した。AsyncRetrieveContextsは複数コーパスから関連文脈を取得する長時間処理、AskContextsは複数コーパスを検索して回答を同期生成するAPIである。
単一コーパスの検索から、ルーターと計画エージェントがコーパスを選ぶ構成へ変わる。検索対象が広がる一方、誤ったコーパス選択、権限境界の混在、検索ループによる遅延を管理する必要がある。
何が変わったか
質問ごとに複数のRAG-managed corpusを指定し、横断検索できるようになった。バックエンドではコーパスのdescriptionを使って候補を選び、取得文脈が不十分なら追加検索を行うAgentic Retrievalが使われる。
変更前後の差
| 項目 | 単一コーパス検索 | Cross Corpus Retrieval |
|---|---|---|
| 検索範囲 | 1コーパス | 複数コーパス |
| 選択 | アプリが固定 | descriptionを使う計画 |
| API | 通常の取得 | AsyncRetrieveContexts / AskContexts |
| 処理 | 比較的単純 | 追加検索ループあり |
| 権限 | 単一境界 | 境界横断を検討 |
| 地域 | 構成依存 | 現時点でus-central1 |
誰に影響するか
部門ごとに規程を分ける企業、製品別マニュアル、国別法令、顧客テナント別文書、買収後の複数ナレッジ基盤を横断したい組織に影響する。強いテナント分離が必要な用途では、横断対象を無条件にまとめるべきではない。
期限
公開プレビュー機能であり強制期限はない。現時点で利用地域はus-central1に限定されるため、地域要件を満たさない環境では導入を保留する。
必要な対応
コーパスのdescriptionを検索用メタデータとして設計する。公式文書ではdescriptionは作成後に編集できず、コーパス選択へ重要だとされる。機密区分、対象ユーザー、有効期間をdescriptionだけに頼らず、IAMとアプリ側の許可リストでも制御する。
実装・移行手順
- 横断してよいコーパスと禁止する組み合わせを整理する。
- 各コーパスへ具体的で重複の少ないdescriptionを設定する。
- RAG Engineサービスアカウントへ必要なVertex AI Userロールを付与する。
- 非同期取得はoperation IDを保存し、ポーリングとタイムアウトを実装する。
- 回答用途はAskContexts、証拠取得用途はAsyncRetrieveContextsを使い分ける。
- attributionを無効化せず、文書・コーパス単位で記録する。
- 問題時に単一コーパス検索へ戻せるルートを残す。
失敗しやすい点
曖昧なdescriptionを付ける、作成後に編集できると誤認する、サービスアカウント権限を広く付ける、同期APIへ長い調査を集中させる、回答だけ保存して選択されたコーパスと文脈を残さないことが問題になる。
リスク
別テナント文書の混入、古いコーパス選択、検索ループによる遅延・費用増加、公開プレビューの仕様変更、us-central1へのデータ配置がある。コーパス選択の精度が低い場合、生成モデルが正しくても回答は誤る。
評価方法
- 正しいコーパスが選ばれた率
- 権限外コーパス選択件数
- 正答根拠のRecall@K
- attributionが主張を支持する率
- 追加検索ループ数
- Async操作の完了時間と失敗率
- AskContextsのP95レイテンシー
- 単一コーパス方式との差分
ロールバック
新規の横断ルートを停止し、質問分類に基づく単一コーパス検索へ戻す。IAM権限を必要最小限へ縮小し、進行中のoperationを確認する。誤選択した質問を評価セットへ追加し、descriptionを変更できない場合は新コーパス作成を検討する。
編集部分析
Cross Corpus Retrievalの価値は、検索先を増やすことではなく、質問に応じて適切な知識境界を選べることにある。最重要の設計対象はモデルではなく、コーパスの意味、権限、更新責任、評価可能性である。
実務チェックリスト
- [ ] 横断可能なコーパス組み合わせを定義した
- [ ] descriptionを作成前にレビューした
- [ ] us-central1の地域要件を確認した
- [ ] サービスアカウント権限を最小化した
- [ ] operation IDと取得文脈を保存した
- [ ] attributionを評価している
- [ ] 単一コーパスへのフォールバックがある