ホームページ >テクノロジー周辺機器 >AI >RAGシステム用の8種類のチャンキング-AnalyticsVidhya
検索された世代(RAG)でチャンキングの力を解き放つ:深いダイビング
大量のテキストデータを効率的に処理することは、堅牢かつ効果的な検索充電(RAG)システムを構築するために重要です。 この記事では、さまざまなチャンキング戦略を検討します。これは、AI搭載アプリケーションのパフォーマンスを最適化し、パフォーマンスを向上させるために不可欠です。 さまざまなアプローチを掘り下げ、それらの長所と短所を強調し、実用的な例を提供します。
目次
チャンクは、大規模なテキストドキュメントをより小さく、より管理しやすいユニットに分割するプロセスです。 言語モデルにはコンテキストウィンドウが制限されているため、これはRAGシステムにとって不可欠です。 チャンクは、関連情報がこれらの制限内に残り、信号対雑音比を最大化し、モデルのパフォーマンスを改善することを保証します。 目標は、データを分割するだけでなく、そのプレゼンテーションをモデルに最適化して、検索性と精度を強化することです。
なぜチャンキングが重要なのですか?
Chromaの共同設立者であるAnton Troynikovは、コンテキストウィンドウ内の無関係なデータがアプリケーションの有効性を大幅に低下させることを強調しています。 チャンクは次のとおりです
コンテキストウィンドウの制限を克服する:
サイズの制限のために重要な情報が失われないようにします。信号対雑音比の改善:は、無関係なコンテンツをフィルターし、モデルの精度を向上させます。
検索効率の向上:
関連情報のより速く、より正確な検索を促進します。
RAGアーキテクチャには、3つの重要な段階が含まれます
RAGシステムはいくつかの課題に直面しています:
検索の問題:理想的なチャンキング戦略は、コンテンツタイプ、埋め込みモデル、および予想されるユーザークエリのいくつかの要因に依存します。 コンテンツの構造と密度、埋め込みモデルのトークンの制限、およびユーザーが尋ねる可能性のある質問の種類を考慮してください。
1。キャラクターベースのテキストチャンキングこの単純な方法は、意味の意味に関係なく、文字カウントに基づいてテキストを固定サイズのチャンクに分割します。 簡単ですが、多くの場合、文の構造とコンテキストを混乱させます。 Pythonを使用した例:
2。 langchain
text = "Clouds come floating into my life..." chunks = [] chunk_size = 35 chunk_overlap = 5 # ... (Chunking logic as in the original example)を使用した再帰文字テキストの分割 このアプローチは、複数のセパレーター(たとえば、ダブルニューライン、シングルニューライン、スペースなど)を使用してテキストを再帰的に分割し、ターゲット文字サイズに最適化するために小さなチャンクをマージします。 キャラクターベースのチャンクよりも洗練されており、より良いコンテキストの保存を提供します。 Langchainを使用した例:
3。ドキュメント固有のチャンキング
# ... (LangChain installation and code as in the original example)この方法は、形式固有のセパレータを使用して、さまざまなドキュメント形式(HTML、Python、Markdownなど)にチャンクを適応させます。 これにより、チャンクがドキュメントの固有の構造を尊重することが保証されます。 PythonとMarkdownにLangchainを使用した例は、元の応答で提供されています。
4。 LangchainとOpenaiでのセマンティックチャンキング
セマンティックチャンキングは、セマンティックの意味に基づいてテキストを分割し、文の埋め込みなどのテクニックを使用して自然なブレークポイントを識別します。 このアプローチは、各チャンクが一貫したアイデアを表すことを保証します。ラングチェーンとオープン埋め込みを使用した例:
5。エージェントチャンキング(LLM駆動型チャンキング)
エージェントチャンキングはLLMを使用してテキスト内の自然なブレークポイントを識別し、より文脈的に関連するチャンクをもたらします。 このアプローチは、LLMの言語とコンテキストの理解を活用して、より意味のあるセグメントを作成します。 OpenAI APIを使用した例:
text = "Clouds come floating into my life..." chunks = [] chunk_size = 35 chunk_overlap = 5 # ... (Chunking logic as in the original example)
6。セクションベースのチャンキング
この方法では、ドキュメントの固有の構造(見出し、サブヘディング、セクション)を活用して、チャンクを定義します。これは、研究論文やレポートなどの適切に構造化されたドキュメントに特に効果的です。 トピックベースのチャンキングにPymupdfと潜在ディリクレの割り当て(LDA)を使用した例:
# ... (LangChain installation and code as in the original example)
7。コンテキストチャンキング
コンテキストチャンキングは、各チャンク内のセマンティックコンテキストの保存に焦点を当てています。 これにより、取得された情報が一貫性があり、関連することが保証されます。 LangChainとカスタムプロンプトを使用した例:
# ... (OpenAI API key setup and code as in the original example)
8。遅いチャンキング
ドキュメント全体に埋め込みを生成するまで、後期チャンキングはチャンキングを遅らせます。これにより、長距離のコンテキスト依存関係が保持され、埋め込みと検索の精度が向上します。 Jina Embeddingsモデルを使用した例:
# ... (OpenAI API key setup and code as in the original example)
結論
効果的なチャンキングは、高性能のRAGシステムを構築するために最も重要です。チャンキング戦略の選択は、情報検索の品質と生成された応答の一貫性に大きな影響を与えます。 データの特性とアプリケーションの特定の要件を慎重に検討することにより、開発者はRAGシステムのパフォーマンスを最適化するために最も適切なチャンキング方法を選択できます。 各チャンク内のコンテキストの完全性と関連性の維持を常に優先することを忘れないでください。
以上がRAGシステム用の8種類のチャンキング-AnalyticsVidhyaの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。