View a markdown version of this page

Amazon Neptune Analytics グラフを使用して Amazon Bedrock ナレッジベースを作成する - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Neptune Analytics グラフを使用して Amazon Bedrock ナレッジベースを作成する

GraphRAG は Amazon Bedrock ナレッジベースに完全に統合されており、グラフとベクトルストレージに Amazon Neptune Analytics を使用します。 AWS マネジメントコンソール、、または AWS SDK を使用して AWS CLI、ナレッジベースで GraphRAG の使用を開始できます。

GraphRAG の使用を開始するために、既存のグラフインフラストラクチャは必要ありません。Amazon Bedrock ナレッジベースは、Amazon Neptune からのグラフの作成とメンテナンスを自動的に管理します。システムは、Amazon S3 バケットにアップロードされたドキュメントからエンティティ、事実、関係を抽出することで、グラフを自動的に作成および更新します。そのため、グラフモデリングに関する事前の知識なしに、関連するレスポンスをエンドユーザーに提供できます。グラフは Amazon Neptune Analytics に保存されます。

ナレッジベースを作成するときは、以下を設定または指定します。

  • ナレッジベースを定義および識別する一般的な情報。

  • ナレッジベースへのアクセス許可を持つサービスロール。

  • データソースから、データを変換するときに使用する埋め込みモデルや、埋め込みを保存するサービスのストレージ設定など、ナレッジベースの設定。

注記

ルートユーザーを使用してナレッジベースを作成することはできません。これらのステップを開始する前に、IAM ユーザーでログインします。

以下は、コンソールから Neptune GraphRAG を使用し、CLI を使用するためのナレッジベースを作成する方法を示しています。

Console
コンソールから Neptune Analytics のナレッジベースを作成するには
  1. Amazon Bedrock コンソールを使用するアクセス許可を持つ IAM ID AWS マネジメントコンソール を使用して にサインインします。Amazon Bedrock コンソール (https://console.aws.amazon.com/bedrock) を開きます。

  2. 左側のナビゲーションペインで [ナレッジベース] を選択します。

  3. [ナレッジベース] セクションで [作成] を選択し、[ベクトルストアを含むナレッジベース] を選択します。

  4. (オプション) [ナレッジベースの詳細] で、デフォルトの名前を変更し、ナレッジベースの説明を入力します。

  5. [IAM アクセス許可] で、IAM ロールを選択します。このロールは、他の必要な AWS のサービスにアクセスするためのアクセス許可を Amazon Bedrock に付与します。Amazon Bedrock にサービスロールを作成させるか、Neptune Analytics 用に作成した独自のカスタムロールを使用するかを選択できます。例については、Amazon Neptune Analytics でベクトルデータベースにアクセスするためのアクセス許可を参照してください。

  6. データソースとして [Amazon S3] を選択し、[次へ] を選択してデータソースを設定します。

  7. ナレッジベースを接続するためのデータソースとして使用され、Amazon Neptune Analytics と統合するために使用されるファイルの S3 URI を指定します。提供できる追加の手順とオプション情報については、「データソースをナレッジベースと接続する」を参照してください。

  8. [埋め込みモデル] セクションで、埋め込みモデルを選択してデータをベクトル埋め込みに変換します。必要に応じて、[追加設定] セクションを使用してベクトルディメンションを指定できます。埋め込みタイプには、浮動小数点ベクトル埋め込みを使用することをお勧めします。

    注記

    埋め込みモデルのベクトルディメンションは、Neptune Analytics グラフの作成時に指定したベクトルディメンションと一致している必要があります。

  9. [ベクトルデータベース] セクションで、ベクトルストアを作成する方法を選択し、クエリに使用される埋め込みを保存するベクトルストアとして [Amazon Neptune Analytics (GraphRAG)] を選択します。ベクトルストアを作成するには、次のいずれかの方法を使用できます。

    • [新しいベクトルストアをクイック作成] メソッドを使用して、ベクトルストアの作成をすばやく開始することをお勧めします。ベクトルストアとして [Amazon Neptune Analytics (GraphRAG)] を選択します。このオプションでは、既存の Neptune Analytics リソースは必要ありません。ナレッジベースは、ドキュメントコーパスから派生したエンティティとその関係のグラフ表現とともに、Amazon Neptune でドキュメント埋め込みを自動的に生成して保存します。

    • または、Neptune Analytics グラフとベクトルインデックスを既に作成している場合は、[作成したベクトルストアを選択] オプションを使用できます。ベクトルストアとして [Amazon Neptune Analytics (GraphRAG)] を選択し、ベクトルインデックス内のグラフ ARN、ベクトルフィールド名、およびメタデータフィールド名を特定します。詳細については、「ナレッジベース用に作成したベクトルストアを使用するための前提条件」を参照してください。

  10. グラフ構築のモデルセクションで、取り込み中にドキュメントからエンティティと関係を抽出するために使用する基盤モデルを選択します。選択したモデルに必要なアクセス許可は、ナレッジベースサービスロールに自動的に追加されます。

    注記

    一部のモデルは、クロスリージョン推論プロファイルでのみサポートされています。Amazon Bedrock でクロスリージョン推論プロファイルを呼び出すと、取り込まれるリクエストとデータはソースリージョンから送信され、そのプロファイルで定義された送信先リージョンの 1 つに自動的にルーティングされ、パフォーマンスが最適化されます。グローバルクロスリージョン推論プロファイルの送信先リージョンには、商用リージョンがすべて含まれます。たとえば、us-west-2 リージョンからの us ベースのクロスリージョン呼び出しmodelArnには、 という形式を使用して を指定できますarn:aws:bedrock:us-west-2:account-id:inference-profile/us.anthropic.claude-haiku-4-5-20251001-v1:0

    推論プロファイルを使用して送信元リージョンと送信先リージョンを選択する方法のガイダンスについては、「推論プロファイルでサポートされているリージョンとモデル」を参照してください。データは、Amazon Bedrock ナレッジベースと Amazon Neptune Analytics インスタンスに対応するソースリージョンにのみ保存されます。送信先リージョンは推論にのみ使用されます。

  11. [次へ] を選択して、ナレッジベースの詳細を確認します。次に進みナレッジベースを作成する前に、任意のセクションを編集できます。

    注記

    ナレッジベースの作成にかかる時間は、特定の設定によって異なります。ナレッジベースの作成が完了すると、ナレッジベースのステータスは準備中または利用可能な状態に変更されます。

    ナレッジベースの準備ができて使用可能になったら、最初にデータソースの同期を行い、その後も必要に応じて同期を行いコンテンツを最新の状態に保ちます。コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。

  12. [ナレッジベースを作成] を選択します。Amazon Bedrock がナレッジベースを作成している間、[進行中] のステータスが表示されます。データソースを同期する前に、作成が完了するまで待つ必要があります。

  13. Amazon Bedrock がナレッジベースの作成を完了したら、「データソースをナレッジベースと接続する」の手順に従ってデータソースを設定します。

API
を使用して Neptune Analytics のナレッジベースを作成するには AWS CLI
  1. まず、コンテキストエンリッチメント設定を使用してデータソースを作成します。このオペレーションを実行するには、Amazon Bedrock エージェントのビルドタイムエンドポイントを使用して CreateDataSource リクエストを送信します。CLI コマンドの例を以下に示します。

    aws bedrock-agent create-data-source \ --name graph_rag_source \ --description data_source_for_graph_rag \ --knowledge-base-id LDBBY2K5AG \ --cli-input-json "file://input.json"

    以下のコードは、input.json ファイルの内容を示しています。

    { "dataSourceConfiguration": { "s3Configuration": { "bucketArn": "arn:aws:s3:::<example-graphrag-datasets>", "bucketOwnerAccountId": "<ABCDEFGHIJ>", "inclusionPrefixes": [ <"example-dataset"> ] }, "type": "S3", }, "VectorIngestionConfiguration": { "contextEnrichmentConfiguration": "type": "BEDROCK_FOUNDATION_MODEL", "bedrockFoundationModelConfiguration": { "modelArn": "arn:aws:bedrock:<region>::foundation-model/anthropic.claude-3-haiku-20240307-v1:0", "enrichmentStrategyConfiguration": { "method": "CHUNK_ENTITY_EXTRACTION" } } } }

    ドキュメントからグラフを構築するmodelArnために使用される では、Claude 3 Haiku (前述の例を参照)、Claude Haiku 4.5、Amazon Nova ファミリー (テキスト入力モダリティを持つ Nova 2 モデルと Nova モデルを含む) を使用できます。リージョンで利用可能な基盤モデルを確認するには、「Amazon Bedrock でサポートされている基盤モデル」を参照してください。

    注記

    一部のモデルは、クロスリージョン推論プロファイルでのみサポートされています。Amazon Bedrock でクロスリージョン推論プロファイルを呼び出すと、取り込まれるリクエストとデータはソースリージョンから送信され、そのプロファイルで定義された送信先リージョンの 1 つに自動的にルーティングされ、パフォーマンスが最適化されます。グローバルクロスリージョン推論プロファイルの送信先リージョンには、商用リージョンがすべて含まれます。たとえば、us-west-2 リージョンからの us ベースのクロスリージョン呼び出しmodelArnには、 という形式を使用して を指定できますarn:aws:bedrock:us-west-2:account-id:inference-profile/us.anthropic.claude-haiku-4-5-20251001-v1:0

    推論プロファイルを使用するためのロールのポリシー要件を確認するには、「クロスリージョン推論プロファイルの前提条件」を参照してください。推論プロファイルを使用して送信元リージョンと送信先リージョンを選択する方法のガイダンスについては、「推論プロファイルでサポートされているリージョンとモデル」を参照してください。データは、Amazon Bedrock ナレッジベースと Amazon Neptune Analytics インスタンスに対応するソースリージョンにのみ保存されます。送信先リージョンは推論にのみ使用されます。

  2. ナレッジベースを作成するには、Amazon Bedrock エージェントのビルドタイムエンドポイントを使用して、CreateKnowledgeBase リクエストを送信します。CLI コマンドの例を以下に示します。

    aws bi create-knowledge-base \ --name <"knowledge-base-graphrag"> \ --role-arn arn:aws:iam::<accountId>:role/<BedrockExecutionRoleForKnowledgeBase> \ --cli-input-json "file://input.json"

    以下は、input.json ファイルの内容を示しています。

    { "storageConfiguration": { "type": "NEPTUNE_ANALYTICS" "neptuneAnalyticsConfiguration": { "graphArn": "arn:aws:neptune-graph:<region>:<>:graph/<graphID>", "fieldMapping": { "metadataField": "metadata", "textField": "text" }, } }, "knowledgeBaseConfiguration": { "type": "VECTOR", "vectorKnowledgeBaseConfiguration": { "embeddingModelArn": "arn:aws:bedrock:<region>::foundation-model/cohere.embed-english-v3" } } }
  3. GraphRAG ベースのアプリケーションが実行されているとき、ナレッジベース API オペレーションを引き続き使用して、より包括的で関連性があり、説明可能なレスポンスをエンドユーザーに提供できます。以降のセクションでは、CLI コマンドを使用して取り込みを開始し、クエリの取得を実行する方法を示します。

グラフ構築モデルを選択して更新する

GraphRAG は、取り込み中に基盤モデルを使用して、ドキュメントからエンティティと関係を抽出します。このモデルは、ナレッジベースを作成するとき、またはデータソースを設定するときに選択します。グラフ構築モデルを選択すると、コンテキストに応じたエンリッチメントが自動的に有効になります。

重要

基盤モデルはend-of-lifeになるか、廃止される可能性があります。例えば、Claude 3 Haiku はレガシーステータスに移行しました。現在サポートされているグラフ構築用のモデルを選択することをお勧めします。使用可能なモデルのステータスを確認するには、「モデルライフサイクル」を参照してください。

グラフ構築モデルを選択すると、必要なアクセス許可がナレッジベースサービスロールに自動的に追加されます。

一部のモデルは、クロスリージョン推論プロファイルでのみ使用できます。

注記

クロスリージョン推論を使用する場合、取り込まれるデータはソースリージョンから送信され、推論のために宛先リージョンにルーティングされます。データは、Amazon Bedrock ナレッジベースと Amazon Neptune Analytics インスタンスに対応するソースリージョンにのみ保存されます。

ナレッジベースの作成時にモデルを選択する (コンソール)

ナレッジベースの作成ワークフロー (データストレージと処理の設定) のステップ 3 で、ベクトルストアタイプとして Amazon Neptune Analytics (GraphRAG) を選択すると、グラフ構築のモデルセクションが表示されます。Select model を選択して、取り込み中にドキュメントからエンティティと関係を抽出するために使用するモデルを選択します。

既存のデータソースでモデルを更新する (コンソール)

ナレッジベースの詳細ページに移動します。データソースセクションで、データソースを選択し、編集を選択します。編集ページのグラフ構築用のモデルで、新しいモデルを選択します。[送信] を選択して変更を保存します。

ナレッジベースの作成時にモデルを選択する (API)

CreateDataSource API を使用してデータソースを作成する場合は、 bedrockFoundationModelConfiguration内の modelArnで を指定しますcontextEnrichmentConfiguration。完全な例については、上記の作成セクションの API タブを参照してください。

既存のデータソースのモデルを更新する (API)

既存のデータソースのグラフ構築モデルを更新するには、 update-data-source コマンドを使用します。次の例は、 で新しいモデル ARN を指定する方法を示していますcontextEnrichmentConfiguration

aws bedrock-agent update-data-source \ --data-source-id data-source-id \ --knowledge-base-id knowledge-base-id \ --name data-source-name \ --data-source-configuration '{"type":"S3","s3Configuration":{"bucketArn":"arn:aws:s3:::bucket-name"}}' \ --vector-ingestion-configuration '{"contextEnrichmentConfiguration":{"type":"BEDROCK_FOUNDATION_MODEL","bedrockFoundationModelConfiguration":{"modelArn":"model-arn","enrichmentStrategyConfiguration":{"method":"CHUNK_ENTITY_EXTRACTION"}}}}' \ --region region

たとえば、 us-west-2 リージョンから米国ベースのクロスリージョン推論プロファイルを介して Claude Haiku 4.5 を使用するには、次の形式で modelArn を指定します。

arn:aws:bedrock:us-west-2:account-id:inference-profile/us.anthropic.claude-haiku-4-5-20251001-v1:0

推論プロファイルを使用するためのロールのポリシー要件を確認するには、「クロスリージョン推論プロファイルの前提条件」を参照してください。推論プロファイルを使用して送信元リージョンと送信先リージョンを選択する方法のガイダンスについては、「推論プロファイルでサポートされているリージョンとモデル」を参照してください。

データソースを同期する

ナレッジベースを作成したら、データを取り込むか同期して、クエリできるようにします。取り込み時には、グラフィカル構造が抽出され、指定したベクトル埋め込みモデルと設定に基づいて、データソースの未加工データがベクトル埋め込みに変換されます。

以下のコマンドは、CLI を使用して取り込みジョブを開始する方法の例を示しています。

aws bedrock-agent start-ingestion-job \ --data-source-id <"ABCDEFGHIJ"> \ --knowledge-base-id <"EFGHIJKLMN">

コンソールと API を使用してデータソースを同期する方法の詳細については、「Amazon Bedrock ナレッジベースとデータを同期する」を参照してください。

ナレッジベースに変更を取り込む

Amazon S3 をデータソースとして使用するときは、1 つのステップでデータソースを変更し、変更を同期できます。直接取り込みを使用すると、ナレッジベースのファイルを 1 つのアクションで直接追加、更新、または削除でき、同期しなくてもナレッジベースはドキュメントにアクセスできます。直接取り込みでは、KnowledgeBaseDocuments API オペレーションを使用して、ナレッジベース用に設定されたベクトルストアに直接送信するドキュメントのインデックスを作成します。このオペレーションを使用して、ナレッジベース内のドキュメントを直接表示することもできます。ドキュメントを表示するために、接続されたデータソースに移動する必要はありません。詳細については、「変更をナレッジベースに直接取り込む」を参照してください。

ナレッジベースをテストする

ナレッジベースのセットアップが完了したので、クエリを送信してレスポンスを生成してテストできます。

以下のコードは、CLI コマンドの例を示しています。

aws bedrock-agent-runtime retrieve \ --knowledge-base-id <"ABCDEFGHIJ"> \ --retrieval-query="{\"text\": \"What are the top three video games available now?\"}"

詳細については、「Amazon Neptune Analytics グラフに接続されたナレッジベースをクエリする」を参照してください。