Amazon Kendra

機械学習を活用したエンタープライズ検索サービスで、社内ドキュメントに対する自然言語での質問に正確な回答を返す

概要

Amazon Kendra は、機械学習を活用したインテリジェントなエンタープライズ検索サービスです。S3、RDS、SharePoint、Confluence、Salesforce など多様なデータソースからドキュメントを取り込み、自然言語の質問に対して文書内の該当箇所をピンポイントで抽出して回答します。従来のキーワード検索では見つけられなかった意味的に関連する情報を返せる点が最大の特徴で、社内ナレッジベースやヘルプデスクの検索精度を飛躍的に向上させます。

インデックスとデータソースコネクタ

Kendra のインデックスは検索対象ドキュメントを格納する論理的なコンテナです。インデックスの作成時にエディション (Developer または Enterprise) を選択し、ドキュメント数やクエリ頻度に応じたキャパシティを確保します。Developer エディションは最大 10,000 ドキュメント・1 日 4,000 クエリまでの制限があり、検証用途に適しています。データソースコネクタは S3、RDS、SharePoint Online、Confluence、ServiceNow、Google Drive など 40 種類以上が用意されており、各コネクタがデータソース固有の認証・差分同期・メタデータ抽出を自動処理します。同期スケジュールはオンデマンドまたは定期実行 (最短 1 時間間隔) で設定でき、差分同期により変更されたドキュメントのみを再インデックスします。カスタムデータソースとして BatchPutDocument API を使えば、独自システムのデータも取り込めます。ドキュメントにはカスタム属性 (部署名、プロジェクト名、機密レベルなど) を付与でき、ファセット検索やフィルタリングに活用します。

クエリ処理とランキングチューニング

Kendra のクエリ処理は、自然言語理解 (NLU) モデルによるセマンティック検索を基盤としています。ユーザーの質問文から意図を解析し、キーワードの完全一致だけでなく意味的に関連するドキュメントも検索結果に含めます。検索結果は 3 種類に分類されます。Suggested Answer はドキュメント内の該当箇所を抜粋した直接回答、Document は関連度の高いドキュメント全体、FAQ は事前登録した質問と回答のペアからのマッチングです。ランキングの精度を高めるには、Relevance Tuning でフィールドごとの重み付けを調整します。たとえばタイトルフィールドの重要度を上げ、更新日が新しいドキュメントをブーストする設定が有効です。さらに、ユーザーのクリックフィードバックを SubmitFeedback API で送信すると、機械学習モデルが継続的にランキングを改善します。クエリの応答時間は通常 1 秒未満で、大規模なドキュメントセットでも実用的な速度を維持します。

アクセス制御とユーザーコンテキスト

Kendra はドキュメントレベルのアクセス制御 (ACL) をネイティブにサポートしています。データソースコネクタが元システムの権限情報を自動的に取り込み、検索時にユーザーの所属グループに基づいて閲覧可能なドキュメントのみを返します。SharePoint や Confluence のコネクタでは、元システムの ACL がそのまま Kendra に反映されるため、権限設定を二重管理する必要がありません。カスタムデータソースの場合は、Principal オブジェクトでユーザーやグループ単位のアクセス許可・拒否を明示的に設定します。ユーザーコンテキストは、クエリ実行時に UserContext パラメータとしてユーザー ID やグループ情報を渡す仕組みです。IAM Identity Center と統合すれば、SSO のトークンからユーザー情報を自動取得できます。運用上の注意点として、ACL の同期はデータソースの同期タイミングに依存するため、権限変更が即座に反映されない場合があります。機密性の高い環境では同期間隔を短く設定し、権限変更後に手動同期を実行する運用が推奨されます。

共有するXB!