Amazon Web Services ブログ
【開催報告】Amazon Kendra で簡単に自然言語を使った「検索」システムを構築
アマゾン ウェブ サービス ジャパン合同会社 ソリューションアーキテクトの澤です。皆様はもう Amazon Kendra に触れていただけましたか?
2023 年 6 月 7 日に『Amazon Kendra で簡単に自然言語を使った「検索」システムを構築』というイベントを、東京・目黒にあるAWSのオフィスで開催しました。このイベントは、Kendra への事前知識がゼロでも PoC 実施ができるようになることを目指し、座学やハンズオンなどのセッションをお届けしました。
ご参加の皆様には Kendra の概要や活用例などを座学で学び、ハンズオンやネットワーキングを通して本番活用に向けたイメージを深めていただきました。また、US 本社の Amazon Kendra プロダクト担当となる Firaz Akmal が登壇し、Kendra のサービス紹介から最新情報やロードマップ、お客様事例など多岐にわたるアップデートも説明しました。本ブログではイベントの開催報告として、当日の様子を詳細にお伝えします。
Amazon Kendra プロダクト担当からサービスの最新動向を説明
Amazon Web Services, Inc. – Senior Product Manager / Firaz Akmal
( 通訳 ) アマゾン ウェブ サービス ジャパン合同会社 – AI/ML 事業開発マネジャー / 浅倉 靖之
最初のセッションでは、US 本社の Amazon Kendra プロダクト担当となる Firaz Akmal より、サービス最新情報と今後のロードマップ、最新のお客様成功事例をご紹介しました。
企業が持つデータの約 80 %は非構造化データ(マニュアルや電子メールなど)と言われており、貴重なインサイトが得られる対象となります。しかし、これらのデータは構造化されずに大きなストレージへ閉じ込められてしまい、適切にアクセスができない情報となる傾向にあります。従来の検索ソリューションでも非構造化データから答えを見つけることは容易でなく、社員は必要な答えに辿り着けないことも珍しくありませんでした。そこで、この問題を解決してくれるサービスが Amazon Kendra です。
Kendra は高い精度と使いやすさを備えており、豊富なコネクタや安全性も提供します。例えば、特定の専門用語に対応した自然言語による高い読解力、50 以上のサービスへアクセス可能なコネクタによる使い易さ、転送・保存時もデータを暗号化する安全性などが挙げられます。Kendra を用いることで、これまで活用できていなかった社内データを有効活用し、新たな検索を体験することができます。また、学習済みの機械学習モデルを備えたフルマネージドサービスとしてすぐにご利用できることから、インフラ管理や機械学習モデルのメンテナンスなどは一切必要ありません。つまり、Kendra の活用は時間とコストの節約にも繋がります。
昨今、生成系 AI(Gen AI, Generative AI)と大規模言語モデル(LLM, Large Language Model)を導入したインテリジェントな会話型体験も進化しています。しかし、「ハルシネーション(誤った発言) への懸念 」「膨大な社内データへのアクセス」「組織外へデータが流出する危険性」などの心配により、社内ツールへの導入にはハードルがあります。この問題解決にも Kendra が役立ちます。
まず、Kendra を社内のデータソースへ接続します。そして Kendra から得られた検索結果をインプットに LLM で文章要約を行うことで、Gen AI アプリケーションの出力は社内データのみに制限することができます。これは、検索拡張生成 (RAG, Retrieval Augmented Generation) と呼ばれる手法を Kendra で実現した例となります。これにより、先述した懸念が大きく軽減され、社内データに関する会話体験を安全に実現できます。本セッションでは、この Kendra と LLM を用いた Gen AI アプリケーションのデモンストレーションも実施しました。
(AWS で実現する RAG について詳細を知りたい方は、こちらのブログもご覧ください。)
Amazon Kendra を本番活用するための道のりを説明
アマゾン ウェブ サービス ジャパン合同会社 – ソリューションアーキテクト / 関谷 侑希
Gen AI 含め Kendra を本番活用するために何から手をつけるべきか、以下の3ステップで進める実験的なアプローチ例を紹介しました。
Step1: Kendra を社内のデータソースへ接続して文書検索を体験すること
日本語のセマンティック検索機能をサポートしており、日本語のドキュメントへ自由に接続することがすぐに可能です。このステップのみでも、社員やお客様の満足度向上・生産性向上・コスト削減が実現できます。
Step2: AWS コンソールから LLM を実験的に利用してみること
先日発表した Amazon Bedrock や Amazon SageMaker JumpStart を用いることで LLM にアクセスできます。安全に膨大なライブラリへアクセスできるため、データ要約や会話型ボットなどのユースケースにチャレンジしてみましょう。
Step3: 期待するユースケースと適切な LLM を特定して PoC を進めること
新しい対話体験を確立し、ビジネス価値やより良いビジネス成果を得るための取り組みを進めていきます。実際にコールセンターのオペレーター支援や新入社員への情報提供を目的としたチャットボットなど、特定のニーズに合わせた活用例を説明しました。
なぜ、対話型の検索体験が重要かについては、コールセンターのオペレーター支援や新入社員へ情報提供を目的としたチャットボットなど、特定のニーズに合わせた活用方法の例を示しながら説明しました。
また、Kendra と Generative AI を連携した RAG の日本語版サンプルも紹介しました。このサンプルを用いたデモは本イベントが初披露の場となり、どのように機能するかご参加の皆様に Live で体感いただきたきました。サンプルは近日 GitHub で公開予定です。
Kendra での高度な検索をハンズオンで体験
アマゾン ウェブ サービス ジャパン合同会社 – ソリューションアーキテクト / 関谷 侑希
Kendra へ触れていただける環境をAWS でご用意し、ご参加の皆様へハンズオンを実施しました。一般公開済みのコンテンツ「Kendra Essentials+: from zero to POC」に取り組み、Kendra のインデックスを構成したり、S3 へ格納したドキュメントや Web クローラーを使用した検索を実施したりするなど、様々な検索方法で Kendra に触れていただきました。また、今回はユーザーコンテキストフィルタリングのハンズオンもスペシャルコンテンツとして実施し、ドキュメントへの細かなアクセス権限付与がユーザーや部署毎にも行えることを体験いただきました。
ご参加の皆様と AWS の AI/ML 有識者にてネットワーキングを実施
ハンズオン終了後は、ご参加の皆様と AWS の AI/ML 有識者にてネットワーキングを実施しました。
本セミナーでの話を聞いてどのような使い方ができそうか、こんなことはできないだろうかなど、コーヒーを片手に様々な会話が繰り広げられました。私もご参加者様ととあるテーマに対して会話し、どのような実現方法があるか楽しく真剣なディスカッションをさせていただきました。
Kendra は有益なツールですが、あくまで手段です。どのようなことを解決するために何が使えるのかを考えることがとても重要であり、そのような検討段階からご相談させていただくことも我々のご支援領域です。こちらの記事を読んでいただき、こんな課題の解決に Kendra が活用できないかな、他にはどんな手段がありそうかな、と思われましたら是非ご相談ください。
まとめ
今回は、Kendra への事前知識がゼロでも PoC 実施ができるようになることを目指し、座学やハンズオンなどのセッションをお届けしました。Kendra の開発背景からサービス概要、本番活用に向けた道のりをご紹介し、最近話題の Generative AI とKendra を組み合わせた RAG の日本語対応版もデモンストレーションしました。ハンズオンでは Kendra へ実際に触れていただき、活用イメージを更に深めていただきました。今後も、本セミナーのような実務へ活かすためのイベントを開催してまいります。今回ご参加できなかった方も、次の機会に是非ご参加ください。
Q&A
Q. Kendra + LLM で構築する場合、LLM に社内情報が渡ることはないのでしょうか?
LLM をどのようにホストするかによって変わります。例えば 、サードパーティの SaaS として 提供されているLLM を利用し、SaaS 側で記録されるポリシーであれば社内情報が渡ってしまいます。Amazon SageMaker を利用する場合は、 LLM のホスト環境はお客様のものとなり、記録するしないを自由に選択できます。Limited Preview ですが、Bedrock では、お客様の Amazon CloudWatch Logs や AWS CloudTrail に記録を残します。(AWS はその内容に関与しませんし、お客様側で自由に削除できます。)
Q. 旧 AWS SSO と Kendra は接続できる認識です。メールを Kendra で検索する場合は 旧 AWS SSO でログインしたユーザーが自身のメールのみを参照できる認識で良いでしょうか?また、クロール自体は管理者ユーザーで実施する認識ですが、管理者ユーザーは全メールを見ることができますか?
旧 AWS SSO は Open ID ですので、以下の通り Open ID での制御が可能です。
https://docs.thinkwithwp.com/ja_jp/kendra/latest/dg/create-index-access-control.html
User Context での filtering が可能です。以下は MS Exchange/Gmail の例です。
https://docs.thinkwithwp.com/ja_jp/kendra/latest/dg/user-context-filter.html#context-filter-gmail
https://docs.thinkwithwp.com/ja_jp/kendra/latest/dg/user-context-filter.html#context-filter-exchange
全権限を持っている場合は検索できます。
Q. AWS Direct Connect でデータセンターに繋ぎたいのですが、Kendra は VPC 経由で利用することは可能でしょうか?
はい、Kendra は VPC Endpoint をサポートしておりますので可能です。https://docs.thinkwithwp.com/ja_jp/kendra/latest/dg/vpc-interface-endpoints.html
Q. CIFS のファイルサーバーのコンテンツも検索できますか?
はい、CIFS 用のファイルコネクタがございます。https://thinkwithwp.com/kendra/connectors/
Q. Kendra 増分学習は Click も英語のみ対応でしょうか?
2023/06/07時点では英語のみ対応しています。
Q. Web のクロールは対象の Web ページ(一般公開されたページ)は問題なくデータの取り込みができますか? また、クロールは日本語ページも現在は対象になっていますか?
データの取り込みは問題なく実行されます。Web ページの形式によってはエラーとなるページもございますので、実際にご確認ください。日本語ページも対象になっています。
Q. サイズが膨大なマニュアルから LLM に返答を生成させる際、トークン数の問題でドキュメントをある程度の単位に区切る必要があると思います。Kendra ではどのように対応することを想定されていますか?
2023/06/07時点、Kendra の検索結果は Max 750 文字の関連部分の抜粋が取得できます。文書全体ではなく、関連部分のみ LLM に渡すことでトークン数の上限を回避することができます。
Q. SharePoint のコンテンツに対する検索設定を教えてください。
こちらのドキュメントを参照ください。https://docs.thinkwithwp.com/ja_jp/kendra/latest/dg/data-source-sharepoint.html