Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Amazon Q BusinessでノーコードでRAGアプリケーションを作成する

はじめに

7月に入り、急に蒸し暑さが増してきたように感じますが、皆さまいかがお過ごしでしょうか。
新人エンジニアの木介です。
今回は先月にAWS公式ブログより紹介のあったAmazon Qサービスの内、フルマネージドで生成AIアシスタントを作成できるAmazon Q Businessの紹介をしていきます。
aws.amazon.com

Amazon Q Businessとは

まずAmazon Q Businessとは、与えられたデータに基づいて質問への回答、要約の提供、コンテンツの生成などを行うように構成できる、フルマネージド型の生成AI搭載アシスタントで、つまり、いくつかの項目を設定していくだけで、簡単にRAGアプリケーションを作成できてしまうサービスになります。

aws.amazon.com

1. Amazon Q Businessの特徴

Amazon Q Businessの機能として公式サイトより主に以下の4点が紹介されていました。
1. 回答に利用された情報源への引用を明示することが可能
2. Amazon Q Appsで簡単にアプリケーションを作成できる
3. さまざまなデータソースを利用可能
 ・ S3やTeams、Webサイトなど、30種類以上のさまざまなデータソースを利用可能
4. アクセス制限によるデータ及びアプリケーションへのセキュリティの保証
 ・ガイドラインに基づいた不要なトピックやキーワードの回答の禁止
 ・アプリケーションへアクセスできるユーザーの制限が可能

本記事ではAmazon Q Businessを使って実際に登録したデータソースから回答を生成するところまでを触ってみようと思います。

2. Amazon Q Businessの料金

料金形態としては以下のサイトにまとめられています。

aws.amazon.com

まずプランとしては以下の二種類があります。

プラン 料金 機能
Amazon Q Business Lite 3 USD/ユーザー/月 基本的な応答のみ
Amazon Q Business Pro 20 USD/ユーザー/月 データソースのインサイトの閲覧やAmazon Q Appsも利用可能

また、上記料金以外にもデータソースを管理する単位であるインデックス単位でも課金が必要となってきます。
こちらについては、以下の二種類のプランが存在します。
本番環境ではEnterprise Indexを、実験やデモ用の環境ではStarter Indexを用いることがベストプラクティスとして紹介されていました。

プラン 料金 AZの数 利用可能なインデックス数
Starter Index 0.140 USD/時間 1AZまで 最大5つ
Enterprise Index 0.264 USD/時間 3AZまで 無制限

以上がAmazon Q Businessの料金形態の説明となります。
60日間の無料トライアルもありますので、一度使ってみたいという方はぜひそちらを利用してみてください。

Amazon Q Businessの使い方

1. アプリケーションの作成

では、早速Amazon Q Businessでアプリケーションの作成を行っていきます。
AWS ConsoleよりAmazon Q Businessで検索し、Amazon Q Businessの管理画面へアクセスします。
「Get started」から遷移すると以下のようなアプリケーション管理画面が表示されます。

「Create application」をクリックすると、新しいアプリケーションが作成されます。
すると以下のようなアプリケーション作成画面が表示されます。
以下が各項目の詳細になります。

  • Application name : アプリケーション名、英数字+ハイフンで命名可能
  • Service access:
    • Create and use a new service-linked role (SLR):Service-Linked Roleで必要な権限を自動的に付与したRoleを作成
    • Create and use a new service role (SR):Service Roleを新規作成
    • Use an existing service-linked role (SLR)/ service role (SR):既存のSLR/SRを利用
  • Encryption:KMSに設定された秘密鍵を用いて暗号化を行う

今回は以下の設定でアプリの作成を行います。


2. retrieverの作成

「Create」を選択するとアプリケーションが作成され、以下のような画面が表示されます。
この画面では回答に必要な情報をデータソースから検索する機能であるretrieverの選択を行います。

Amazon Qから提供されるnative retrieverか、既存のKendraで定義されたretrieverを選択できます。
native retrieverについてはAmazon S3やTeams、Google Driveなどの30種類以上のデータソースを選択することが可能です。
今回はnative retrieverを選択します。


またIndex ProvisioningとしてEnterpriseとStarterを選ぶことができます。
以下のサイトに違いやベストプラクティスについて詳しくまとまっています。
簡単に違いを述べると、Starterは1AZでindexが作成されるのに対して、Enterpriseは3AZの冗長構成でindexが作成されるので、本番稼働などにはEnterpriseが推奨されています。
今回はデモとして動かすことを目的としているため、Starterプランで作成をします。

docs.aws.amazon.com


上記設定をした後、「Create」を選択することでretrieverが作成されます。

3. データソースの作成

Retrieverを作成後、以下のようなデータソース作成を行う画面が表示されます。
データソースとしては以下のようにS3といったAmazonのサービスや、Google Drive等のサードパーティー製のものまで約30種から選択することが可能です。
今回は直接PDFをアップロードする方法を試すので、「Upload files」を選択します

すると以下の画面が表示されるので「Choose File」より選択し、アップロードします。
アップロードするファイルとしては今回は厚生労働省より発行されている労働条件ハンドブックの英語版を用います。


アップロードが完了すると、以下のようにファイルを追加する画面が表示され、ファイルがアップロードされていることを確認できます。


4. ユーザー/グループの設定

IAM Identity Centerで作成したユーザーをAmazon Q Applicationの利用者として登録することができます。
Application画面の下部にあるGroup and users画面から登録が可能です。
「Manage access and subscriptions」を選択しましょう。

すると以下のような画面が表示されるので、「Add groups and users」を選択。


以下の画面が表示され、新しいユーザーを作成するか、既存のユーザーやグループを用いるかを選択できます。
今回は予めIAM Identity Centerで作成したユーザーを使用します。

以下の画面が表示されますのでユーザーやグループを追加し、アサインします。


追加したユーザーのサブスクリプションはデフォルトではNo subscriptionになっています。

subscription としてはQAのみに機能を限定したAmazon Q Business Liteと、QA以外にもAmazon Q Apps でアプリを作成できるなどさまざまな機能が使えるAmazon Q Business Proの二種類があります。

aws.amazon.com

「Change Subscription」でサブスクリプションを追加します。

今回はAmazon Q Business Proで作成をしました。


5. Applicationの実行

以上でApplicationの作成が完了しました。
では早速作成したApplicationを使っていきたいと思います。
Amazon Q BusinessのApplications画面に移ると以下のように作成したApplicationが表示されます。
右下のWeb experiment URLよりApplicationを利用することができます。


以下のような画面が表示されればOKです。
では早速使っていきましょう。

今回は厚生労働省より発行されている労働条件ハンドブックの英語版のPDFをデータソースとして与えていますので、以下の質問で試してみます。
引用付きでデータソースからの回答を行えていることが分かります。

では次に与えるデータソースとして、日本語のものを与えてみましょう。
同じく、厚生労働省より発行されている労働条件ハンドブックの日本語版を代わりにアップロードしました。
以下が同様の質問をした時の回答です。

回答自体は同じ内容が返ってきていることを確認することが出来ました。
ただし、Amazon Q では現在英語のみが最適化を施されているためか、英語での回答となっており、かつ引用付きでデータソースからの回答を行えていません。

また、日本語で回答するように指示した場合の結果が以下になります。
日本語での回答自体は出来ているようですが、やはり文章に対する引用が出来ていませんでした。

現状ではAmazon Q Businessを利用しての英語と同精度での引用付きの日本語でのQAはまだ難しそうです。

以上でAmazon Q Businessにより、RAGアプリケーションを作成することができました。
ノーコードで独自のデータソースによりカスタマイズした生成AIアシスタントが作成でき、IAM Identity Centerにより利用者を制限することもできるので実務へのLLMサービスの導入に活用できそうです。

まとめ

今回はノーコードでRAGを使った生成AIアシスタントシステムを構築可能なAmazon Q Businessを試してみました。
現状日本語には完全に対応していませんでしたが、簡単にデータソースからのQAを作成できるサービスとなっていました。
次回はS3などのその他のデータソースの利用とguardrailsにより回答を制限できる点について触れていきたいと思います。


Acroquest Technologyでは、キャリア採用を行っています。
  • Azure OpenAI/Amazon Bedrock等を使った生成AIソリューションの開発
  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • マイクロサービス、DevOps、最新のOSSクラウドサービスを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
www.wantedly.com