AWSの“AI検索”で、社内の「あの資料どこ?」解消 生成AIと連携も 初心者が「Amazon Kendra」を使ってみた「AWSを使ってみたい!」 始めの第一歩

» 2023年08月01日 10時00分 公開
[PR/ITmedia]
PR

 アマゾン ウェブ サービス(AWS)で、機械学習を使ったAI検索サービスが使えるようです!――ITmediaの営業カワバタがこんな情報を持ってきた。AWS初心者ながら、さまざまなAWSサービスを活用して自身の業務課題を解決していく面白さにはまったようだ。

 AI検索とは「Amazon Kendra」というサービスらしい。「あの企画書を見たいけど、社内のどこにあるか分からない」など、クラウドストレージやメールなどに散らばった情報を横断で検索できるので業務効率を上げられるという。大規模言語モデル(LLM)など生成AIとも連携できる。

 今回はAWS歴3カ月の2人、カワバタと編集部のハラダが実際にAmazon Kendraを使ってみた様子をレポートする。

photo Amazon Kendraを使う様子

AWS歴3カ月でも「“AIサービス”を使いたい!」

photo カワバタ

カワバタ 僕たち、これまで複数のAWSサービスを触ってきましたよね。


photo ハラダ

ハラダ そうですね、仮想サーバサービス「Amazon Lightsail」でWebサイトを作ったり、BIツール「Amazon QuickSight」で営業データを分析したり。クラウドストレージ「Amazon Simple Storage Service」(Amazon S3)でデータの保存や活用にもチャレンジしましたね。


カワバタ いろいろ試す中で、いま話題のAIを活用したサービスを使ってみたいと先日思ったんです。

ハラダ AWS体験会の初期からずっと「生成AIとかテキスト分析AIとか使ってみたい」と言っていましたもんね(笑)

カワバタ そうなんですよ。で、見つけちゃいました。機械学習を使った検索システムで社内ファイルを検索できる「Amazon Kendra」というサービスで、しかも今年2023年2月に日本語対応も完了しているサービスのようです!

ハラダ 機械学習も広義ではAIといえますね。日本語の解説動画もありました――なるほど、Amazon S3や外部SaaSサービス内にある文章ファイルなどを自然言語で探せる検索エンジンを作れるようです。

カワバタ 当社の場合、商品の企画書はクラウドストレージに、議事録はナレッジ共有ツールに、その他の情報はメールやチャットツールなどに分散しているので探すのが大変という切実な悩みがありますよね。これを横断で検索できれば業務効率化につながりそうです!

ハラダ いつも通り最初は「AWS Kendra 使い方」で検索してみたら、AWS公式ブログ「Amazon Kendra で簡単に検索システムを作ってみよう!」がヒットしました。サービスの概要や利用手順を日本語で丁寧に説明しているので、参考にできそうです。

カワバタ 最初の30日間、最大750時間分は無料利用枠を使えるようです。まずはやってみましょう!

Amazon Kendraで検索システム構築 資料探しを省力化

 Amazon Kendraは機械学習を使ったドキュメント検索システムを手軽に構築できるサービスだ。社内向け検索システムを作って資料探しやヘルプデスク業務を省力化したり、社外向けにマニュアル検索ページなどを作ったりできる。

 入力した検索文の意味を理解するセマンティック検索に対応しており、例えば「Amazon Kendraの使い方は?」のような会話文に対しても適切な答えを返す。また「よくある質問」をCSVファイルにまとめて読み込ませて、検索内容に応じて表示できる。

 23年7月現在、対応ファイルはPDFファイルやCSVファイル、「Microsoft Excel」「Microsoft Word」「Microsoft PowerPoint」などだ。また「GitHub」「Dropbox」「Gmail」「Salesforce」など多くの外部サービスとも連携できる。

検索サービスの“目録” 「インデックス」を作る

カワバタ まずはAWS公式ブログにある手順に従って進めて、どのようなサービスなのか確かめましょう。

ハラダ そうですね。画像付きなので私たちでもできそうです。

 最初にAmazon Kendraの「インデックス」を作成する。検索する情報を登録して目録化する準備だ。AWSのホーム画面「マネジメントコンソール」でAmazon Kendraを検索してサービスのページに移動し、オレンジ色のボタン「Create Index」を押す。

 インデックス作成画面に移ったら、任意のインデックス名を決める。ここでは「sample-index」とした。続いてIAM roleは「Create a new role(Recommended)」を選び、Role nameを決める。例にならって「AmazonKendra-us-east-1-sample-index-role」にするため、「sample-index-role」と入力すればいい。前半の「AmazonKendra-us-east-1-」は自動的に反映される。リージョンを東京にしている場合は「AmazonKendora-ap-northeast-1-」になる。ここまでできたら次に進む。

photo インデックス作成の画面

 次のアクセスコントロールの設定は何も変えず「Next」をクリックし、続くエディション設定は「Developer Edition」を選ぶ。これは開発者版で、本番実装する場合には「Enterprise Edition」を選べばいい。違いは読み込めるドキュメント数や処理可能な1日のクエリ数、価格などだ。

 そして「Create」を押すとインデックスの作成が始まる。10〜30分ほど時間がかかるため、待ち時間に次の工程に進んでおくとスムーズだ。

Amazon Kendraのインデックスを作る

検索用データを準備 Amazon S3に格納する

カワバタ ここまで手順通り進めるだけなのでサクサクでしたね! いつも初心者のつまずきポイントに引っ掛かっていましたが、今日は快調ですね。

ハラダ 次は検索用データソースを用意するために、Amazon S3でバケットを作成するようです。

カワバタ 以前使ったものと一緒ですね! AWSを使っていると、前にやったことがつながってくるので、学びと成長を実感しますね。

 ここからは検索の基になるドキュメントをAmazon S3に格納していく。Amazon S3ページに移動せず、Amazon Kendraのページ内で完結する。ページ上部にある通知マーク横の「>_」と書かれたボタンを押して、コマンド入力画面「AWS CloudShell」を起動する。

 起動したら手順ページにあるコマンドをコピーして一度メモ帳に貼り付け、2行目の「<バケット名>」を自分が希望する名称に変更する。今回は社内ファイルを管理しているITmediaアラオカの名前から、バケット名を「araoka1」と名付け、AWS CloudShellに入力してコマンドを実行した。このときアラート文面が表示される場合があるが、そのまま「貼り付け」で進めて問題ない。

# S3 バケット名を設定
BUCKET_NAME=<バケット名>
# S3 バケットを作成
aws s3 mb s3://${BUCKET_NAME}
# AWS の公式ドキュメントの PDF ファイルをダウンロード
mkdir awsdoc
pushd awsdoc
wget https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/dynamodb-dg.pdf -O DynamoDB.pdf
wget https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/lambda-dg.pdf -O Lambda.pdf
wget https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-ug.pdf -O VPC.pdf
wget https://docs.aws.amazon.com/ja_jp/kendra/latest/dg/kendra-dg.pdf -O Kendra.pdf
wget https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/route53-dg.pdf -O Route53.pdf
popd
# S3 バケットに PDF ファイルをアップロード
aws s3 cp awsdoc s3://${BUCKET_NAME}/awsdoc/ --recursive

 赤字の「<バケット名>」が変更する部分

photo AWS CloudShellは画面上のボタンから開ける

ハラダ コマンドの実行が終わったようなので、Amazon S3にバケットができているか確認してみましょう。

カワバタ そうですね。Amazon S3のマネジメントコンソールから確認すると――ありました! バケット「araoka1」内に「awsdoc」というフォルダがあり、その中にAWSサービス関連のPDFファイルが格納されています。

Amazon Kendra用のデータを準備する

Amazon Kendraでデータを検索する

 Amazon S3内にデータを用意したら、Amazon Kendraで作成したインデックスにデータソースを追加する。インデックス作成が完了したら画面上に次のステップが表示されるので、それに従って進んでいく。

 Step 2.の「Add data sources」ボタンをクリックすると、連携できるサービスが一覧で表示される。ここから「Amazon S3 connector」を探して「Add connector」を押す。ロゴマークが同じ「Sample AWS documentation」を選ばないよう要注意だ。

 次ページの設定画面でデータソース名を任意の名前にし、言語を日本語にしてNextを押す。続いてIAM roleはCreate a new role(Recommended)を選び、Role nameを設定したらNextを押して、データの同期画面に移る。「Enter the data source location」の枠でAmazon S3のバケットを指定するためアドレス「s3://<バケット名>」を入力するか、右側の「Browse S3」ボタンで検索する。後者のほうが入力ミスを減らせるはずだ。

 次にバケット内のフォルダを指定するため、「Additional configuration - Optional」をクリックしてタブを開き、Prefixに「awsdoc」を入力し、すぐ右側の「Add」を押す。最下部のデータ同期スケジュール「Frequency」は「Run on demand」を選び、Nextを押す。

photo データソースと同期頻度の設定画面

 遷移先のページ「Set field mappings」は何も変えずに進み、最後の確認画面をチェックしたら「Add data source」をクリック。データソースの追加が終わって画面上部に緑色のバーが表示されたら、忘れずに「Sync now」を押すと、再びデータの同期が開始され、ページ上部のバーが青色に変わり、10〜30分ほどで同期が問題なく完了すると緑色に変わる。

いよいよ検索! 果たして結果は?

カワバタ データの同期が終わったようなので、検索を試してみましょう!

ハラダ Amazon Kendraの画面左にある「Search indexed content」から検索できるようです。検索ページが表示されたら、右側のレンチが描かれた設定ボタンを押して、言語を日本語にして保存すれば準備は完了ですね。

カワバタ では「IP アドレス」と入力して検索してみます――「Route53」「VPC」などドキュメントがヒットしました!

ハラダ 会話文でも試してみましょう。「Lambda 関数で使用できるメモリの最大値は?」と入力しても、しっかり検索結果が表示されますね。

カワバタ すごい! ものの40〜50分で社内文書の検索サービスを作れてしまいました。これを横展開できれば業務の効率化につながりそうです。

Amazon Kendraでデータ検索をする

Amazon Kendraで自社データを検索 ITmediaのプレスリリース原稿を登録してみた

 Amazon S3にデータを追加する場合、Amazon Kendraのインデックスを新規に作る方法と、カワバタが行ったようにAmazon S3のバケットに新規フォルダを作る方法の2つがある。後者の場合、1つのインデックス内にITmediaのプレスリリースと先に登録したAWSドキュメントの両方が含まれるため横断的に検索できる。次はそれを試してみよう。

カワバタ AWSの手順では成功したので、次は社内の情報で試してみませんか?

ハラダ そうですね! プレスリリースの原稿があるので、それをAmazon S3に格納して検索してみましょう。

カワバタ 方法は同じですね。データの追加はコマンドではなく、Amazon S3に直接アップロードします。さきほどのバケット「araoka1」内に、フォルダ名「ITmediaINFO」を作ってMicrosoft Wordファイルを格納しました。

 ここからの工程は先ほどと変わらない。Amazon Kendra内のAdd data sourcesボタンから進んでAmazon S3のバケットを選択し、Prefixに「ITmediaINFO」と入力したらデータ同期まで終わらせる。インデックスにITmediaのプレスリリースが登録されているはずだ。

カワバタ まずは「ねとらぼ」と検索してみます。お! きちんと「ねとらぼ生物部」「ねとらぼ調査隊」などのプレスリリースが出ました。

photo 「ねとらぼ」で検索した様子

ハラダ 「どのようなデジタルイベントを実施していますか」と聞いても、しっかり「ITmedia DX」などを表示しますね。

カワバタ これは実際の業務に取り入れたいですね! Amazon Kendraを本格的に使いこなして、社内のデータや情報を一括検索できるようになればとても便利になるかもしれませんね。

ハラダ 社外情報を連携することになるので、上長や技術部などとの連携は必要ですね。部門横断の社内プロジェクトとして動かしたい!

 Amazon Kendraは検索するだけではなく、管理者は検索トレンドも確認できる。いまどのような検索ワードの入力が多いか、どのドキュメントを見ているかなどを把握可能だ。例えば今年度実施のイベント情報を検索する人が多ければ、イベント情報の集約ページを作るなど「検索が多い=困っている人が多い」など予想して対策の先手を打つこともできる。

 また、LLMと連携して「生成系AIコンシェルジュ」を作るなどの使い方も可能という。

Amazon Kendraで自社のデータを検索する

 今回記事内で紹介したAmazon Kendraの使い方動画は、以下にまとめている(7分48秒)。掲載している動画を一気に視聴可能だ。

掲載した動画を一気に視聴する場合はこちら

AWSは「取りあえずやってみよう」が大切

ハラダ 今日までさまざまなAWSサービスを触って、ついにAI関連のサービスも使いましたね。私としては、そもそもAWS初心者がパブリッククラウドをうまく使えるのかと気になっていましたが、しっかり活用できると知れたのが大きな収穫でした。ここまでいかがでしたか?

カワバタ 何よりもまず「取りあえずやってみよう」が大切だと思いました。専門用語が多くて難しいこともありましたが、使っていくうちにコツをつかめましたし、分からなくても参考情報や手順ドキュメントなどを検索して確認すれば解決することが多かったです。もし身近に知っている人がいたら、聞いてみるのも一つの手ですね。

ハラダ 手軽に試すために無料枠もありますもんね。

カワバタ そうですね。自分で見て、実際使うことで、多彩なサービスが用意されていて、それらを組み合わせて業務課題を解決できることを実感したし楽しかったです。慣れればもっと使い勝手がよくなると思いましたね。きっとAWSは今後もサービスを展開していくでしょうから、気になるサービスがあったら試してみるのが大事な気がします。

photo

 AWSはIT部門がインフラとして使うだけでなく、営業など事業部門が活用することで業務の効率化やイノベーションの創出に役立てられる。エンジニアしか使えないといった先入観を払って、実際に触って機能や効果を体験することが大切だ。

 初心者向けにポイントをまとめたページ無料のハンズオンもそろっている。関心がある人はまずは気軽に試してみてはいかがだろうか。

AWS re:Post

photo

 AWS re:Postは、アマゾン ウェブ サービス(AWS)コミュニティー向けのクラウドナレッジ共有サービスです。re:Postの使命は、AWSを利用する全てのユーザーが、AWSサービスに関する質問をしたり、知識を共有したりすることを歓迎する環境の提供です。re:Postには誰でもアクセスできますが、コミュニティーと交流するには、AWS認証情報を使用してサインインする必要があります。(詳細はこちら

Copyright © ITmedia, Inc. All Rights Reserved.


提供:アマゾン ウェブ サービス ジャパン合同会社
アイティメディア営業企画/制作:ITmedia NEWS編集部/掲載内容有効期限:2023年12月19日