変更要約: 初版: ドメイン1(FM統合・データ管理・コンプラ)の5節を作成
1.4FM 拡張のための検索機構(RAG)
RAG の検索品質を高める機構を学びます。チャンキング戦略、Titan 埋め込み、ハイブリッド検索、Bedrock reranker、クエリ拡張/分解/変換、function calling/MCP によるアクセスを扱います。
RAG の精度は「何をどう切り、どう埋め込み、どう検索し、どう並べ替えるか」で決まります。検索された文脈が的外れだと、どんな高性能 FM でも誤答します。
1.4.1検索品質を上げる手段
- チャンキング:固定長/階層/意味単位で分割。Bedrock のチャンキング機能や Lambda でのカスタム分割を使う。粒度が粗すぎ/細かすぎると精度低下。
- 埋め込み(Titan 等):次元数・ドメイン適合で選ぶ。Lambda でバッチ埋め込み生成も可能。
- ハイブリッド検索+reranker:キーワード+ベクトルを併用し、Bedrock reranker で関連度順に並べ替えて上位の質を高める。
- クエリ処理:クエリ拡張(Bedrock)・分解(Lambda)・変換(Step Functions)で曖昧/複合クエリの検索効果を上げる。
- 一貫したアクセス:function calling や MCP クライアントでベクトル検索を標準化して FM から呼ぶ。
「上位結果の質を上げる=reranker(再ランク付け)」「キーワードも併用=ハイブリッド検索」「曖昧クエリを言い換え=クエリ拡張」「複合質問を小問に=クエリ分解」「FM からツールとして検索を呼ぶ=function calling/MCP」 は頻出です。検索が外れる問題はまずチャンキングと検索方式を疑います。
高度な RAG は段階的に精度を積み上げます。
①チャンキングを内容構造に合わせる(見出し単位の階層チャンク等)。
②埋め込みは Amazon Titan Text Embeddings など次元/ドメイン適合で選ぶ。
③検索は ハイブリッド検索(BM25+ベクトル)で再現率を確保し、
④Bedrock reranker モデル で適合度順に並べ替えて精度を上げる。
⑤難しいクエリは クエリ拡張(同義語/言い換え)・クエリ分解(複合質問→小問)・クエリ変換で改善。
⑥幻覚対策として、取得した根拠を引用させ、検索ゼロ件時は「分からない」と返す設計にします。
⑦FM からの呼び出しは function calling や MCP でツール化し、エージェントからも再利用できる標準アクセスにします。検索が外れる場合は「チャンク粒度→埋め込み→ハイブリッド/reranker→クエリ前処理」の順に切り分けます。
| 課題 | 対策 | 補足 |
|---|---|---|
| 上位結果が不適切 | reranker で再ランク | ハイブリッド検索の後段 |
| キーワード一致を逃す | ハイブリッド検索 | BM25+ベクトル |
| 曖昧/複合クエリ | クエリ拡張/分解 | Bedrock/Lambda |
| FM からの統一呼び出し | function calling/MCP | ツール標準化 |
ひっかけ: 「reranker は埋め込みの代わりに使う検索エンジン」は誤りです。reranker は検索結果の並べ替え(後段)で、検索そのもの(埋め込み/ベクトル検索)を置き換えません。また「ハイブリッド検索はベクトル検索より常に遅いので避ける」も誤り(再現率向上の標準手法)。
1.4.2この節のまとめ
- 精度の階段=チャンキング→埋め込み→ハイブリッド検索→reranker→クエリ前処理
- 幻覚対策=根拠の引用+ゼロ件時は不明と返す/FM 連携=function calling/MCP
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. RAG の検索で、関連文書は取得できているが上位に不適切なチャンクが混じり回答品質が落ちる。上位結果の適合度を改善する最適な手段は?
Q2. ユーザーが「先月の北米と欧州の売上の違いと要因は?」のような複合質問をする。RAG の検索効果を高める前処理として適切なのは?
Q3. エージェントや複数アプリから、ベクトル検索を一貫した方法で FM に呼び出させたい。標準化された呼び出し手段として適切なのは?

