概要
텍스트 분할기는 대규모 언어 모델(LLM) 애플리케이션 구축에 있어 중요한 구성 요소입니다. 그들의 주요 역할은 긴 텍스트를 여러 개의 짧은 구간으로 분할하는 것으로, 이는 텍스트 임베딩, 검색 보강 생성(RAG) 및 질의응답 시스템과 같은 후속 작업을 용이하게 합니다.
LLMでは、いくつかの主な理由でテキスト分割が行われます:
- 効率と精度の最適化:大きなテキストブロックを小さいセグメントに分解することによって。 LLMによって生成される埋め込みの妥当性と精度を最適化することができます。 チャンキングは、意味論的な関連性を維持しながら、埋め込まれたコンテンツに最小限のノイズが含まれることを保証します。 例えば、セマンティック検索では、ドキュメントコーパスを索引付ける際に、各ドキュメントには特定のトピックに関する貴重な情報が含まれています。 効果的なチャンキング戦略を適用することで、検索結果がユーザーのクエリの本質を正確に捉えることができます。
- コンテキストウィンドウの制限:GPT-4などのモデルを使用する場合、処理可能なトークンの数に制限があります。 たとえば、GPT-4 にはコンテキストウィンドウのサイズ制限が 32K トークンがあります。 この限界は一般的には問題ではありませんが、チャンクの大きさを最初から考えることが重要です。 テキストのチャンクが大きすぎると、情報が失われたり、すべてのコンテンツがコンテキストに埋め込まれたりするわけではありません。 モデルのパフォーマンスと出力に影響を与える可能性があります
- 長いドキュメントの処理: 長いドキュメントのベクトルを埋め込むと、全体的なコンテキストをキャプチャできます。 特定のトピックに関連する重要な詳細を見落とす可能性があります 不正確または不完全なアウトプットにつながる可能性があります Chunkingは、情報の抽出と埋め込みをより良く制御することができ、情報損失のリスクを低減します。
Casibaseは現在、複数の分割方法を提供しており、さまざまなテキストシナリオに異なる処理戦略を適用することができます。
既定のテキストスプリッター
デフォルトのテキストスプリッタは、トークン数とテキスト構造に基づいてテキストを効率的にセグメント化するように設計されています。 分割戦略には以下が含まれます。
- 行の読み取りと段落の認識: 行ごとに行を読み、連続した空白行を使用して段落区切りを正確に決定します。 また、マーカーを介して自然なブレークポイントを敏感に識別し、論理的かつ正確なテキストセグメンテーションを保証します。
- コードブロックの特別な扱い: ```シンボルで囲まれたコードブロックは別々に扱われます。 コードブロック内の行数は、セグメントとして単独で立つことができるかどうかを決定します。 このメカニズムにより、コードブロックの整合性が維持されると同時に、単一のテキストセグメントがトークン制限を超えることを効果的に防ぎます。
- 文章の整合性の維持:分割過程を通じて文章の整合性への厳格な遵守が維持され、文章が分割されることはありません。 この機能は、各テキストセグメントに完全な情報単位が含まれていることを保証します。 テキストの複雑さにかかわらず、文章の境界で正確にセグメンテーションが行われ、文章が壊れたことによる曖昧さや情報損失を効果的に回避します。
Q&A Splitter
Q&Aスプリッタは、質問と回答の書式付きテキストの正確な分割に焦点を当てており、以下の主要な利点を提供します。
- Q&Aユニットの正確な分割:Q&Aテキストの構造をインテリジェントに識別するために、ラインごとのスキャンメカニズムを使用します。 各行が「Q:」または「A:」で始まるかどうかを決定します 質問と回答の境界を正確に特定し、各Q&Aペアが完全に分類されるようにします。 これにより、各Q&Aユニットの独立性と完全性が保証され、その後のQ&A処理と分析のためのクリーンなデータが提供されます。
- 明確で論理的な実装: コードはシンプルで直感的で、理解しやすく、維持しやすいものです。 現在のQ&Aペアの状態と、回答が収集中であることを示すフラグを管理することにより、テキスト分割のプロセスが明確に制御され、各Q&Aユニットの正しいペアリングが保証されます。