Amazon BedrockのKnowledge BaseをPinecone無料枠で構築してみた

おはようございます。ベンジャミンの木村です! 突然ですがみなさん、BedrockのRAG機能のKnowledge Baseを使っていますか? 「Knowledge Baseを試しに使おうと思っているが、コストがかからないか心配…」という方も多いのではないでしょうか? 今回、一番コストがかかる部分であるベクトルデータベースをOpenSearch Serverlessを使用する方法ではなく、無料枠のPineconeを使って構築する方法を紹介させていただきます! ベクトルデータベースとは? ベクトルデータベースとは、生成AIが扱う非構造化データ(テキスト、画像、音声など)を数値として格納できるデータベースのことで、意味的に近いデータをベクトルの近さで表現し格納できます。 下記の図は”犬”に分類されるワード、”猫”に分類されるワードをそれぞれ、「意味の近さ」を数値的な「位置の近さ」で表現している例になります。 ※下記は2次元ベクトルで表現しておりますが、実際はもっと多次元の数値になっています。 Bedrock Knowledegeは「埋め込みモデル(Cohere Embed v3等)」を使うことで、S3に格納しているドキュメントをベクトル数値に変化し、その数値をベクトルデータベースに格納してくれます。 1. Pineconeの準備をする Pineconeのアカウントを作成し、indexを作成する手順になります。indexとは何かというと、他のDBで言うところのtableのことだと思ってください。 ちなみに無料枠ではindexは、1アカウントにつき、1 indexまでしか作れませんので、複数のindexを使用するような複雑なことはできないことを想定してください。 1-1以下URLより、Pineconeのトップページに移動し、サインアップする https://www.pinecone.io/ 1-2. ログイン後、左ペインの「INDEXS」→「Create index」ボタンをクリックする 1-3. 以下値を入力し、「Create index」ボタンをクリックする ※上記以外はデフォルト値です※無料枠の場合はリージョンがus-east-1しか選べないので、これ以降のaws作業はバージニア北部(us-east-1)を選択する必要があります 1-4. 「Host」をコピーし、値を控える 1-5. 左ペインより「API KEYS」を選択し、表示画面の「Value」を控える 2. Secrets ManagerにAPI KEYSを登録する PineconeのAPI KEYSをSecrets Managerに登録する手順になります。 ※Secrets Managerはバージニア北部で作成お願いします 2-1. 以下URLよりSecrets Managerのコンソール画面へ移動する https://us-east-1.console.aws.amazon.com/secretsmanager/listsecrets?region=us-east-1# 2-2. 「新しいシークレットを保存する」ボタンをクリックする 2-3. 以下値を入力し、「次」のボタンをクリックする 2-4. 以下値を入力し、「次」のボタンをクリックする ※他はデフォルトでOK 2-5. デフォルト値のまま、「次」のボタンをクリックする 2-6. 値に間違いが無いか確認し、「保存」のボタンをクリックする 2-7. 作成したSecrets ManagerのARNを控える 3. S3の作成 Bedrock KnowledgeBaseに読み込ませるドキュメントをS3に格納する手順になります。 3-1. 下記URLよりS3のコンソール画面へ移動する https://s3.console.aws.amazon.com/s3 3-2. 「バケットの作成」をクリックする 3-3. 以下の通り入力し、「バケットを作成」をクリックする ※他はデフォルト 3-4.作成したS3に、Bedrock KnowledgeBase … Continue reading Amazon BedrockのKnowledge BaseをPinecone無料枠で構築してみた