Amazon Kendra で構築するエンタープライズ検索 - 自然言語クエリと FAQ 自動抽出

社内ドキュメントを自然言語で検索できるエンタープライズ検索基盤を構築する。データソースコネクタの設定と検索精度のチューニング、RAG 統合を紹介します。

Kendra の概要

Kendra は ML を活用したエンタープライズ検索サービスです。従来のキーワード検索とは異なり、自然言語で「有給休暇の申請方法は?」と質問すると、社内規程ドキュメントから該当箇所を抽出して直接回答します。検索結果はドキュメントの関連箇所をハイライト表示し、40 以上のデータソースコネクタで社内システムと接続し、14 言語の自然言語クエリに対応します。RAG のリトリーバーとしても活用できます。

データソースと精度チューニング

データソースコネクタで S3、SharePoint、Confluence、ServiceNow などの社内システムと接続し、定期的にクロール・インデックス化します。ACL 対応のコネクタでは、ユーザーの閲覧権限に基づいて検索結果がフィルタリングされます。検索精度のチューニングでは、カスタム同義語辞書の登録、重要度ブースト (特定フィールドの重み付け)、ユーザーフィードバックの活用が有効です。

RAG と生成 AI 統合

Kendra は RAG (Retrieval-Augmented Generation) のリトリーバーとして、生成 AI アプリケーションに高精度な検索結果を提供します。 Amazon Bedrock の基盤モデルと Kendra を組み合わせ、社内ドキュメントに基づく正確な回答を生成するチャットボットを構築できます。 Kendra の Retrieve API で関連ドキュメントの抜粋を取得し、プロンプトのコンテキストとして基盤モデルに渡します。 ACL ベースのアクセス制御により、ユーザーの権限に応じた検索結果のみが返されるため、機密情報の漏洩を防止します。カスタムドキュメントエンリッチメントで、インデックス登録前に Lambda でメタデータの追加やテキストの前処理を実行できます。 Kendra のモデル設計を理解するうえで関連書籍 (Amazon)が参考になります。

Kendra の料金と最適化

Kendra の料金はインデックスのエディション (Developer または Enterprise) と、コネクタの同期頻度、ドキュメント数で決まります。Developer エディションは月額約 810 ドルで、最大 10,000 ドキュメントと 4,000 クエリ/日に対応します。Enterprise エディションは月額約 1,008 ドルで、最大 100,000 ドキュメントと 8,000 クエリ/日です。追加のドキュメントストレージとクエリキャパシティユニットで拡張できます。コネクタの同期スケジュールをデータ更新頻度に合わせて最適化し、不要な再インデックスを避けます。FAQ データソースを活用して、よくある質問への回答を直接返すことで、検索精度とユーザー体験を向上させます。

まとめ

Kendra は ML ベースのエンタープライズ検索サービスで、自然言語クエリによる質問応答と RAG のリトリーバーとしての活用を提供します。40 以上のデータソースコネクタで社内システムと接続し、ACL ベースのアクセス制御でユーザー権限に応じた検索結果を返します。カスタムドキュメントエンリッチメントと FAQ データソースで検索精度を向上させます。