ナレッジベースのコンテンツのチャンキングの仕組み - Amazon Bedrock

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

ナレッジベースのコンテンツのチャンキングの仕組み

Amazon Bedrock では、データを取り込むとき、データ検索を効率化するため、まずドキュメントやコンテンツを管理しやすいかたまり (チャンク) に分割します。それらのチャンクは埋め込みに変換され、分割前のドキュメントへのマッピングを維持したままベクトルインデックス (データのベクトル表現) に書き込まれます。ベクトル埋め込みにすることで、テキストを定量的に比較できるようになります。

標準のチャンキング

Amazon Bedrock は、次の標準的なチャンキング方法に対応しています。

注記

テキストチャンキング戦略は、テキストドキュメントにのみ適用されます。マルチモーダルコンテンツ (オーディオ、ビデオ、画像) の場合、チャンキングはこれらのテキストベースの戦略ではなく、埋め込みモデルレベルで行われます。

  • 固定サイズのチャンキング: チャンクあたりのトークン数と重複率を指定することで、目的のチャンクサイズを設定できます。具体的な要件に柔軟に対応できます。チャンク内のトークン数の上限と、連続するチャンク間の重複率を設定できます。

    注記

    解析されたコンテンツ (高度なパーサーを使用したコンテンツや HTML から変換されたコンテンツなど) の場合、Amazon Bedrock ナレッジベースはコンテンツをチャンクして最適な結果が得られるように最適化する場合があります。チャンカーは論理ドキュメントの境界 (ページやセクションなど) を尊重し、最大トークンサイズを大きくしても、これらの境界を越えてコンテンツをマージしません。

  • デフォルトのチャンキング: コンテンツを約 300 トークンずつのテキストチャンクに分割します。文の区切りが認識され、文が途切れずに各チャンク内に収まるように処理されます。

ドキュメントをチャンキングしないという選択肢もあります。その場合、各ドキュメントが 1 つのテキストチャンクとして扱われます。チャンキングのアプローチ/戦略として [チャンキングなし] を選択する場合は、前処理として、ドキュメントを別々のファイルに分割しておいてもよいでしょう。ドキュメントのチャンキングを選択しない場合、引用内のページ番号を表示したり、x-amz-bedrock-kb-document-page-number メタデータフィールド/属性でフィルタリングしたりすることはできません。

階層的チャンキング

階層的チャンキングでは、情報を子チャンクと親チャンクというネスト構造で整理します。データソースの作成時に、親チャンクと子チャンクのサイズ、各チャンク間で重複するトークンの数を定義できます。検索中は、最初は子チャンクが取得されますが、さらに包括的なコンテキストをモデルに提供するために、より広範な親チャンクに置き換えられます。

小さなテキスト埋め込みの方が精度は高くなりますが、検索の目的は包括的なコンテキストを提供することです。階層的チャンキングのシステムは、取得した子チャンクを適宜親チャンクに置き換えることで、これらのニーズのバランスを図ります。

注記
  • 子チャンクは取り込み時に親チャンクに置き換えられるため、返される結果の数は、リクエストされた量よりも少なくなる可能性があります。

  • S3 ベクトルバケットをベクトルストアとして使用する場合は、階層チャンキングはお勧めしません。チャンキングに多数のトークンを使用する場合 (合計 8,000 個を超えるトークン)、メタデータサイズの制限が発生する可能性があります。

階層的チャンキングのため、Amazon Bedrock ナレッジベースでは 2 つのレベル (チャンキングの深さ) を指定できます。

  • 親: 親チャンクの最大トークンサイズを設定します。

  • 子: 子チャンクの最大トークンサイズを設定します。

また、チャンク間の重複トークン数も設定します。これは、連続する親チャンク間および連続する子チャンク間で重複するトークンの絶対数です。

セマンティックチャンキング

セマンティックチャンキングは自然言語処理の手法です。テキストを意味のあるチャンクに分割するので、理解度と情報検索が向上します。単に構文的な構造だけでなく、意味的なコンテンツに焦点を当てることで、検索精度を向上させることが狙いです。関連情報をより高い精度で抽出し、操作しやすくなる可能性があります。

セマンティックチャンキングを設定する場合、次のハイパーパラメータを指定することができます。

  • 最大トークン数: 1 つのチャンクに含めるべきトークンの最大数。文の区切りを考慮して設定します。

  • バッファサイズ: 特定の文について、埋め込みの作成用に追加される前後の文の数を定義します。例えば、バッファサイズが 1 の場合は、3 つの文 (現在の文、前の文、次の文) を組み合わせて埋め込みます。このパラメータは、各チャンクの境界を判断するために一緒に調べるテキストの量を左右し、その結果、チャンクの粒度と一貫性に影響を及ぼします。バッファサイズを大きくすると、取り込めるコンテキストが増える分、ノイズも生じやすくなります。一方、バッファサイズを小さくすると重要なコンテキストを見逃す可能性がありますが、より正確なチャンキングが保証されます。

  • ブレークポイントのパーセンタイルしきい値: 文章間の距離/非類似性のしきい値 (パーセント値)。これを基に文章間の区切り位置が決まります。しきい値が高いほど、文が区別しやすくないと、異なるチャンクに分割されません。しきい値が高いと、チャンク数が少なくなり、通常はチャンクの平均サイズが大きくなります。

    注記

    セマンティックチャンキングでは、基盤モデルを使用するため、追加のコストがかかります。データの量によってコストは異なります。基盤モデルのコストの詳細については、「Amazon Bedrock の料金」を参照してください。

マルチモーダルコンテンツのチャンキング

マルチモーダルコンテンツ (オーディオ、ビデオ、画像) の場合、チャンキング動作はテキストドキュメントとは異なります。

  • Nova マルチモーダル埋め込み: チャンキングは埋め込みモデルレベルで発生します。オーディオとビデオのチャンク期間は 1~30 秒 (デフォルト: 5 秒) に設定できます。ビデオファイルの場合、ビデオにオーディオが含まれている場合でも、ビデオチャンク期間のみが適用されます。オーディオチャンク期間は、スタンドアロンのオーディオファイルにのみ適用されます。

  • Bedrock Data Automation (BDA) パーサー: コンテンツは最初にテキスト (トランスクリプトとシーンの概要) に変換され、変換されたテキストに標準のテキストチャンキング戦略が適用されます。

注記

Nova マルチモーダル埋め込みを使用する場合、ナレッジベースで設定されたテキストチャンキング戦略は、音声、動画、画像ファイルではなく、データソース内のテキストドキュメントにのみ影響します。