Knowledge bases for Amazon Bedrock のチャンキング戦略が追加されていたので、ユースケースを整理します。
(順次追記予定)
KB のチャンキング戦略
現在選択できるチャンキング戦略は次のとおりです。
英語名 | 日本語訳 | 説明 |
---|---|---|
default chunking | デフォルトチャンキング | コンテンツをデフォルトサイズのチャンクに分割 |
Fixed-size chunking | 固定サイズチャンキング | コンテンツを固定サイズのチャンクに分割 |
Hierarchical chunking | 階層的チャンキング | 情報を子チャンクと親チャンクの入れ子構造に整理する |
Semantic chunking | セマンティックチャンキング | サイズだけでなく内容に基づいてテキストを意味のあるチャンクに分割 |
no chunking | チャンキングなし | チャンキング済のテキストを用意した場合に選択する |
デフォルトチャンキング
- デフォルトチャンキングでは、テキストを約300トークンのチャンクに分割する
- ただし、文章が意味不明なところで勝手に区切られないように、文章の区切りを意識して分割する
固定サイズチャンキング
- チャンクごとのトークン数と重複率を指定することで、希望したサイズでチャンキングを行うことができる
- 重複率は「前後のチャンクとの重なり」のこと
階層的チャンキング
- テキストを親チャンクと子チャンクに分けて整理する
- RAG をする際は子チャンク側で検索を行い、親チャンクを返却する
- 入れ子構造だったり、階層構造をもつ文章に効果的。例えば、技術マニュアルとか、法的な文書、学術論文など
- サーバーワークスさんの記事が詳しい
- RAGの精度向上がお手軽に!Amazon Bedrock のKnowledge BasesでAdvanced RAG機能がリリースされました - サーバーワークスエンジニアブログ
セマンティックチャンキング
- Semantic(意味的)という名前の通り、Embedding モデルによって計算された「文章の意味の近さ(=類似度)」に基づいてチャンク分割をする
- ほとんどのユースケースで検索精度が向上する(らしい)
- 本のテキストを分割 -> ベクトル化 -> 類似度が近いものを結合 のような動きをするらしい
参考
- https://docs.aws.amazon.com/bedrock/latest/userguide/kb-chunking-parsing.html#kb-advanced-parsing
- https://community.aws/content/2jU5zpqh4cal0Lm47MBdRmKLLJ5/a-developer-s-guide-to-advanced-chunking-and-parsing-with-amazon-bedrock
- https://speakerdeck.com/sonoda_mj/awsteragwozuo-rufa-fang
- https://speakerdeck.com/moritalous/amazon-bedrock-kb-oshi?slide=15