Amazon Bedrock Knowledge bases とは
Amazon Bedrock Knowledge bases という AWS のサービスを使うと、S3 に保存されている文書をもとに、大規模言語モデル (LLM) による検索ができます。
https://dev.classmethod.jp/articles/amazon-bedrock-knowledge-bases-opensearch-cluster-vector-storage/ の例だと、まず桃太郎の物語のデータを S3 に突っ込んでおき、それをもとに Amazon Bedrock を使って検索をしています。
RAG とは
このような検索のことを RAG (Retrieval Augmented Generation) といいます。日本語だと「検索拡張生成」と呼びます。
LLM は基本的に、事前に大量のデータを学習しておき、それをもとに質問に答えます。基本的には事前に学習したデータに無い質問には答えられないのですが、これを改良し、後からデータを追加できるようにしたようなイメージです。クラスメソッドの例では桃太郎の物語のデータを後から追加しています。
桃太郎のデータの代わりに社内の就業規則を入れれば、就業規則に関する質問に答えてくれたりします。
Amazon Bedrock Knwoledge bases の使い方
この Amazon Bedrock Knwoledge bases を使うためには、「検索対象の文章(今回の場合は桃太郎の文章)」と、「ベクトルデータベース」が必要になります。
ベクトルデータベースって?
ざっくり説明すると、S3 に保存された文章を LLM から利用できるように変換してくれるのがベクトルデータベースです。
普段我々が「キーワード検索」をする時に裏で動いているのがベクトルデータベースです。 Amazon Bedrock では、我々が LLM に指令を出すと、LLM がベクトルデータベースから回答を検索して我々に返してくれるのです。
この記事が非常にわかりやすかったです
Amazon Bedrock で Amazon OpenSearch Managed Cluster がサポートされた
冒頭にクラスメソッドの記事がありました。この記事は、 Amazon Bedrock Knowledge bases のベクトルデータベースとして「Amazon OpenSearch Managed Cluster」が使えるようになりました、というニュースでした。
これまでは「Amazon OpenSearch Serverless」しか使えず、最低月額2〜3万円くらいかかるものでしたが、「OpenSearch Managed Cluster」 だと 6000円くらいで使えます。この価格差は結構でかいです。もちろん、価格差があるということは、基本的には Amazon OpenSearch Serverless が簡単で便利に使えるので、どちらを使うかはプロダクトの状況によります。