[アップデート] Amazon Bedrockで簡単にRAGが実現できる、Retrieval Augmented Generation (RAG) with Knowledge BaseがとうとうGAになりました!! #AWSreinvent

2023.11.29

こんちには。

データアナリティクス事業本部 機械学習チームの中村です。

re:Invent2023のキーノートセッションで、Amazon Bedrockで簡単にRAGが実現できる、Retrieval Augmented Generation (RAG) with Knowledge BaseがGAアナウンスされました。

公式ブログは以下のとおりです。

また9月にこちらの機能はプレビューとして紹介されていましたが、この時点では全ユーザは使えない状態でした。

今回GAとなったことによりコンソール画面から見えることも確認できました。

これは待望のアップデートですね!!

対応リージョンは以下となっているのでご注意ください。

  • US East (N. Virginia)
  • US West (Oregon)

公式ドキュメントは以下をご参照ください。

料金

Knowledge baseとして別途かかる料金はなく、その中で使用されるBedrockの埋め込みベクトルモデル、テキスト生成モデルのトークン毎の料金などが価格となると考えれば良さそうです。

また、Vector storeも使用されるのですが、こちらをKnowledge baseで新規作成する場合は、OpenSearch Serverlessの料金も必要となります。

OpenSearch Serverlessの料金については、以下を参照ください。

Knowledge baseを触ってみる

Knowledge baseの作成画面

以下がコンソールとなります。

Overviewとして3つのフローが示されています。

  • Create a knowledge base
    • ソースデータの指定、埋め込みベクトル用のモデルの指定、埋め込みベクトルの保存先(ベクターストアの設定が該当しているようです
  • Test the knowledge base
    • デモ画面で作成したナレッジベースにクエリを実行可能
    • ソースデータのテキストのチャンク(分割されたもの)の取取得や、テキスト生成モデルと連携してチャンクを使用したレスポンスの生成も該当しているようです
  • Use the knowledge base
    • アプリケーションへの統合やAgentへの追加が可能

まずはKnowledge baseを「Create knowledge base」を押下してみます。

名前はデフォルトで進めます。

IAMロールは新規作成とします。

データソースの設定

次にデータソースを設定しますが、S3にデータを準備として配置します。

今回は以下のようにsample_001.txtsample_002.txtの2ファイルを配置しました。

(データは日本語のデータで昨年のre:invent2022のYouTube動画の文字起こしデータです)

そしてデータソースとして作成したS3バケットを指定します。

Vector storeの設定

次にVector storeを設定します。まずはEmbeddings modelを設定します。

(ここは現在利用可能なTitan Embeddingsが設定済みとなります)

次にVector databaseを設定します。ここは新規作成と既にあるVector storeの指定の2種類が選択できます。

新規作成する場合、OpenSearch ServerlessによるVector storeが構築されるようです。

Vector databaseを既にあるものから指定する場合は、以下の3つから選択ができるようです。

  • OpenSearch Serverless
  • Pinecone
  • Redis Enterprise Cloud

今回は新規作成となる「Quick create a nw vector store」を選択して、「Next」を押下します。

確認画面

最後に確認画面に遷移しますので、「Create knowledge base」を押下して作成します。

しばらく待つとKnowledge baseのStatsuがReadyとなるのを待ちます。

データソースのSyncを忘れずに

注意すべきなのはこの時点ではまだ使えず、その下部のData sourceの設定に移動して、「Sync」を押下する必要があります。

コンソールからKnowledge baseを使ったテスト

Syncが終わった後、ページ右上の「Test」からKnowlege baseを試すことができるようになります。

「Test」を押下するとチャットウィンドウが立ち上がります。

テキスト生成するモデルが別途必要ですので、日本語が扱えるClaude v2を選択して質問してみました。

データソースで指定したテキストの内容に沿った回答が返ってくることが確認できました。

回答の根拠となっている部分(チャンク)も「Show resuilt details」を押下することで確認ができます。

検証時はリソース削除漏れにご注意

作成したKnowledge baseはコンソールから削除できます。

選択して「Delete」を押下すると、以下のような注意事項がでてきます。

Agents using this knowledge base will experience runtime errors. If you delete this knowledge base, you must remove it from the agent's list of Knowledge bases. The embeddings for this knowledge base will still be available in the vector database. Navigate to the vector database to delete the embeddings yourself.

特に2点目ですが、Vector storeは自分で削除する必要があるので注意が必要です。

OpenSearchのコンソールから削除しましょう。

まとめ

いかがでしたでしょうか。今回はGAとなったBedrockのKnowledge baseについてご紹介致しました。

本記事が、今後Bedrockを活用されようとする方の一助となれば幸いです。