データソースの取り込みをカスタマイズする - Amazon Bedrock

データソースの取り込みをカスタマイズする

AWS マネジメントコンソール でデータソースを接続する場合、または CreateDataSource リクエストを送信する際に vectorIngestionConfiguration フィールドの値を変更すると、ベクトル取り込みをカスタマイズできます。

次のトピックを選択して、データソースへの接続時に取り込みをカスタマイズするための構成を含める方法を確認してください。

解析に使用するツールを選択する

データ内のドキュメントを解析する方法をカスタマイズできます。Amazon Bedrock ナレッジベースでデータを解析するためのオプションについては、「データソースの解析オプション」を参照してください。

警告

データソースに接続後は解析戦略を変更できません。別の解析戦略を使用するには、新しいデータソースを追加します。

ナレッジベースの作成後に、マルチモーダルデータ (画像、図、グラフ、テーブルなど) を保存するための S3 の場所を追加することはできません。マルチモーダルデータを含め、それをサポートするパーサーを使用する場合は、新しいナレッジベースを作成する必要があります。

解析戦略の選択に関連するステップは、AWS マネジメントコンソール と Amazon Bedrock API のどちらを使用しているか、および選択した解析方法により異なります。マルチモーダルデータをサポートする解析方法を選択する場合は、ドキュメントから抽出されたマルチモーダルデータを保存する S3 URI を指定する必要があります。このデータはナレッジベースクエリで返すことができます。

  • AWS マネジメントコンソール で次の操作を行います。

    1. ナレッジベースの設定中にデータソースへ接続する際、または既存のナレッジベースに新しいデータソースを追加する際に、解析戦略を選択します。

    2. (解析戦略として Amazon Bedrock Data Automation または基盤モデルを選択した場合) 埋め込みモデルを選択してベクトルストアを設定するときに、[マルチモーダルストレージの保存先] セクションでドキュメントから抽出されたマルチモーダルデータを保存する S3 URI を指定します。必要に応じて、このステップでカスタマーマネージドキーを使用して S3 データを暗号化することもできます。

  • Amazon Bedrock API で、次を行います。

    1. (解析戦略として Amazon Bedrock Data Automation または基盤モデルを使用する予定の場合) CreateKnowledgeBase リクエストの VectorKnowledgeBaseConfigurationSupplementalDataStorageLocation を含めます。

    2. CreateDataSource リクエストの VectorIngestionConfigurationparsingConfiguration フィールドに ParsingConfiguration を含めます。

      注記

      この設定を省略すると、Amazon Bedrock ナレッジベースでは Amazon Bedrock のデフォルトパーサーが使用されます。

API で解析戦略を指定する方法の詳細については、使用する解析戦略に対応するセクションを展開してください。

デフォルトパーサーを使用するには、VectorIngestionConfiguration 内に parsingConfiguration フィールドを含めないでください。

Amazon Bedrock Data Automation パーサーを使用するには、次の形式のように、ParsingConfigurationparsingStrategy フィールドに BEDROCK_DATA_AUTOMATION を指定し、bedrockDataAutomationConfiguration フィールドに BedrockDataAutomationConfiguration を含めます。

{ "parsingStrategy": "BEDROCK_DATA_AUTOMATION", "bedrockDataAutomationConfiguration": { "parsingModality": "string" } }

基盤モデルをパーサーとして使用するには、次の形式のように、ParsingConfigurationparsingStrategy フィールドに BEDROCK_FOUNDATION_MODEL を指定し、bedrockFoundationModelConfiguration フィールドに BedrockFoundationModelConfiguration を含めます。

{ "parsingStrategy": "BEDROCK_FOUNDATION_MODEL", "bedrockFoundationModelConfiguration": { "modelArn": "string", "parsingModality": "string", "parsingPrompt": { "parsingPromptText": "string" } } }

チャンキング戦略を選択する

データ内のドキュメントをチャンク分割して保存および取得する方法をカスタマイズできます。Amazon Bedrock ナレッジベースでデータをチャンク分割するオプションについては、「ナレッジベースのコンテンツのチャンキングの仕組み」を参照してください。

警告

データソースに接続した後はチャンキング戦略を変更できません。

AWS マネジメントコンソール で、データソースに接続する際にチャンキング戦略を選択します。Amazon Bedrock API を使用する場合は、VectorIngestionConfigurationchunkingConfiguration フィールドに ChunkingConfiguration を含めます。

注記

この構成を省略すると、Amazon Bedrock は文の境界を維持したまま、約 300 個のトークンからなる複数のチャンクにコンテンツを分割します。

使用する解析戦略に対応するセクションを展開してください。

データソース内の各ドキュメントを 1 つのソースチャンクとして扱うには、次の形式のように、ChunkingConfigurationchunkingStrategy フィールドに NONE を指定します。

{ "chunkingStrategy": "NONE" }

データソース内の各ドキュメントをほぼ同じサイズのチャンクに分割するには、次の形式のように、ChunkingConfigurationchunkingStrategy フィールドに FIXED_SIZE を指定し、fixedSizeChunkingConfiguration フィールドに FixedSizeChunkingConfiguration を含めます。

{ "chunkingStrategy": "FIXED_SIZE", "fixedSizeChunkingConfiguration": { "maxTokens": number, "overlapPercentage": number } }

データソース内の各ドキュメントを 2 つのレベル (最初のレイヤーから派生した小さなチャンクが 2 番目のレイヤーに含まれる) に分割するには、次の形式のように、ChunkingConfigurationchunkingStrategy フィールドに HIERARCHICAL を指定し、hierarchicalChunkingConfiguration フィールドを含めます。

{ "chunkingStrategy": "HIERARCHICAL", "hierarchicalChunkingConfiguration": { "levelConfigurations": [{ "maxTokens": number }], "overlapTokens": number } }

データソース内の各ドキュメントを、構文構造よりもセマンティックな意味を優先するチャンクに分割するには、次の形式のように、ChunkingConfigurationchunkingStrategy フィールドに SEMANTIC を指定し、semanticChunkingConfiguration フィールドを含めます。

{ "chunkingStrategy": "SEMANTIC", "semanticChunkingConfiguration": { "breakpointPercentileThreshold": number, "bufferSize": number, "maxTokens": number } }

取り込み時に Lambda 関数を使用する

Lambda 関数を使用すると、データからのソースチャンクがベクトルストアに書き込まれる方法を、次の方法で後処理できます。

  • カスタムチャンキング戦略を提供するチャンキングロジックを含めます。

  • チャンクレベルのメタデータを指定するロジックを含めます。

取り込み用のカスタム Lambda 関数の記述については、「カスタム変換 Lambda 関数を使用してデータの取り込み方法を定義する」を参照してください。AWS マネジメントコンソール で、データソースに接続するときに Lambda 関数を選択します。Amazon Bedrock API では、次の形式のように、VectorIngestionConfigurationCustomTransformationConfiguration フィールドに CustomTransformationConfiguration を含め、Lambda の ARN を指定します。

{ "transformations": [{ "transformationFunction": { "transformationLambdaConfiguration": { "lambdaArn": "string" } }, "stepToApply": "POST_CHUNKING" }], "intermediateStorage": { "s3Location": { "uri": "string" } } }

また、Lambda 関数を適用した後に出力を保存する S3 の場所も指定します。

Amazon Bedrock が提供するチャンキングオプションのいずれかを適用した後、chunkingConfiguration フィールドを追加して Lambda 関数を適用できます。