翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ナレッジベースを作成するには、ナレッジベースがアクセスできるようにする、サポートされているデータソースに接続します。ナレッジベースは、ユーザークエリに応答したり、取得したデータに基づいてレスポンスを生成したりできます。
Amazon Bedrock ナレッジベースは、テキスト、イメージ、またはテーブル、チャート、図、その他のイメージを含むマルチモーダルドキュメントなど、さまざまなドキュメントをサポートしています。マルチモーダルデータとは、テキストデータとビジュアルデータの組み合わせを指します。非構造化データを含むファイルタイプの例は、テキスト、マークダウン、HTML、PDFs。
以下のセクションでは、Amazon Bedrock ナレッジベースがサポートするデータのタイプと、各タイプのデータについてナレッジベースを接続できるサービスについて説明します。
Unstructured data (非構造化データ)
非構造化データとは、事前定義された構造に強制されないデータを指します。Amazon Bedrock ナレッジベースは、以下のサービスに接続してナレッジベースに非構造化データを追加することをサポートしています。
Amazon S3
Confluence (プレビュー)
Microsoft SharePoint (プレビュー)
Salesforce (プレビュー)
Web Crawler (プレビュー)
カスタムデータソース (同期しなくてもナレッジベースへのデータの直接取り込みが可能)
データソースには、ドキュメントの raw 形式が含まれています。クエリプロセスを最適化するために、ナレッジベースは raw データをベクトル埋め込みに変換します。これはデータの数値表現であり、ベクトル埋め込みに変換されるクエリとの類似性を定量化します。Amazon Bedrock ナレッジベースは、データソースの変換プロセスで次のリソースを使用します。
-
埋め込みモデル – データをベクトル埋め込みに変換する基盤モデル。
-
ベクトルストア – データのベクトル表現を保存するサービス。次のベクトルストアがサポートされています。
-
Amazon OpenSearch Serverless
-
Amazon Neptune
-
Amazon Aurora (RDS)
-
Pinecone
-
Redis Enterprise Cloud
-
MongoDB Atlas
-
データをベクトル埋め込みに変換するプロセスは、取り込みと呼ばれます。データをナレッジベースに変換する取り込みプロセスには、次のステップが含まれます。
取り込み
-
データは、選択したパーサーによって解析されます。解析の詳細については、「」を参照してくださいデータソースの解析オプション。
-
データソース内の各ドキュメントは、トークンの数やその他のパラメータで定義できるデータのチャンク、サブディビジョンに分割されます。チャンキングの詳細については、「」を参照してくださいナレッジベースでのコンテンツチャンキングの仕組み。
-
選択した埋め込みモデルは、データをベクトル埋め込みに変換します。
-
ベクトル埋め込みは、選択したベクトルストアのベクトルインデックスに書き込まれます。
取り込みプロセスが完了すると、ナレッジベースにクエリを実行する準備が整います。ナレッジベースから情報をクエリおよび取得する方法については、「」を参照してくださいAmazon Bedrock ナレッジベースを使用してデータソースから情報を取得する。
データソースに変更を加える場合は、変更を同期して、追加、変更、削除をナレッジベースに取り込む必要があります。一部のデータソースでは、ナレッジベースへのファイルの直接取り込みまたは削除がサポートされているため、データソースの変更と取り込みを個別のステップとして扱う必要がなくなり、常に完全な同期を実行する必要がなくなります。ナレッジベースとそれをサポートするデータソースにドキュメントを直接取り込む方法については、「」を参照してくださいナレッジベースに直接変更を取り込む。
Amazon Bedrock ナレッジベースには、データの取り込み方法をカスタマイズするためのさまざまなオプションが用意されています。このプロセスのカスタマイズの詳細については、「」を参照してくださいナレッジベースのカスタマイズ。
構造化データ
構造化データとは、存在するデータストアによって事前定義された形式の表形式データを指します。Amazon Bedrock ナレッジベースは、Amazon Redshift クエリエンジンを介してサポートされている構造化データストアに接続します。Amazon Bedrock ナレッジベースは、クエリパターン、クエリ履歴、スキーマメタデータを分析して自然言語クエリを SQL クエリに変換するフルマネージドメカニズムを提供します。これらの変換されたクエリは、サポートされているデータソースから関連情報を取得するために使用されます。
Amazon Bedrock ナレッジベースは、次のサービスに接続してナレッジベースに構造化データストアを追加することをサポートしています。
Amazon Redshift
AWS Glue Data Catalog (AWS Lake Formation)
ナレッジベースを構造化データストアに接続する場合、データをベクトル埋め込みに変換する必要はありません。代わりに、Amazon Bedrock ナレッジベースは構造化データストアに直接クエリを実行できます。クエリ中、Amazon Bedrock ナレッジベースはユーザークエリを SQL クエリに変換して、ユーザークエリに関連するデータを取得し、より正確なレスポンスを生成できます。また、データを取得せずに SQL クエリを生成し、他のワークフローで使用することもできます。
例えば、データベースリポジトリには、顧客とその購入に関する情報を含む次の表が含まれています。
カスタマー ID | 2020 年に購入した金額 | 2021 年に購入した金額 | 2022 年に購入した金額 | 現在までに購入した合計金額 |
---|---|---|---|---|
1 | 200 | 300 | 500 | 1,000 |
2 | 150 | 100 | 120 | 370 |
3 | 300 | 300 | 300 | 900 |
4 | 720 | 180 | 100 | 900 |
5 | 500 | 400 | 100 | 1,000 |
6 | 900 | 800 | 1,000 | 2700 |
7 | 470 | 420 | 400 | 1290 |
8 | 250 | 280 | 250 | 780 |
9 | 620 | 830 | 740 | 2190 |
10 | 300 | 200 | 300 | 800 |
ユーザークエリが「上位 5 件の支出顧客の概要を教えてください」と言った場合、ナレッジベースは以下を実行できます。
-
クエリを SQL クエリに変換します。
-
以下を含むテーブルから抜粋を返します。
-
関連するテーブルの列「顧客 ID」と「合計購入金額累計」
-
支出額が最も高い 10 人の顧客の合計購入額を含むテーブル行
-
-
支出額上位 5 位の顧客である顧客とその購入額を示すレスポンスを生成します。
ナレッジベースがテーブルの抜粋を生成できるクエリのその他の例は次のとおりです。
-
「2020 年の支出額で上位 5 位の顧客」
-
「2020 年の購入額で上位の顧客」
-
「2020-2022 からの購入金額で上位 5 の顧客」
-
「2020-2022 年の支出額上位 5 社」
-
「合計購入金額が 10 USD 未満の顧客」
-
「支出額が最も低い顧客上位 5 社」
クエリがより具体的または詳細であればあるほど、ナレッジベースは返す正確な情報を絞り込むことができます。例えば、「2020 年の支出で上位 10 の顧客」というクエリの代わりに、より具体的なクエリは「2020 年の顧客について現在までに購入した合計金額の最大値を 10 個見つける」です。特定のクエリは、データベーステーブルで消費する顧客の「合計購入金額の日付」という列名を参照し、データが「最高」でソートされる必要があることも示します。