Zilliz Cloud Pipelinesでデータ処理を効率化:ドキュメント・チャンキングの深掘り

Zilliz Cloud Pipelines](https://zilliz.com/zilliz-cloud-pipelines)を使ってデータ処理を効率化するには、ドキュメントのチャンキングを検討する必要がある。これは非構造化データを検索可能なベクトルコレクションに変換するコンポーネントである。Zilliz Cloud Pipelinesの取り込み、削除、検索パイプラインは、このプロセスをさらに促進する。それぞれがデータ処理ワークフローにおいて異なる目的を果たす。
Zilliz Cloud Pipelinesは、ドキュメントのチャンキングプロセスを簡素化し、検索性を高める役割を果たします。このプラットフォームは、テキスト文書内のセマンティック検索によるユースケースを可能にし、Retrieval-Augmented Generation (RAG)アプリケーションのための重要なビルディングブロックを提供します。
Zilliz Cloud Pipelinesには、クエリテキストをベクトル埋め込みに変換するSEARCH_DOC_CHUNKのような様々な機能が含まれている。これはクエリテキストをベクトル埋め込みに変換し、関連する上位K個のドキュメントチャンクを取得することで、クエリの意味に基づいた関連情報の検索を容易にする。
Zilliz クラウドパイプライン:データ処理の変換
Zillizのエンジニアは、多忙なAI開発者のために、様々なソースからの非構造化データを検索可能なベクトルコレクションに変換するZilliz Cloud Pipelinesを設計した。このパイプラインは、非構造化データを取り込み、分割し、埋め込みデータに変換し、インデックスを付け、指定されたメタデータと共にZilliz Cloudに保存します。このアーキテクチャは、パフォーマンスを向上させる様々な主要技術コンポーネントと機能を使用している。
技術的基盤
Milvusベクトルデータベース
Milvus Vector Databaseは、高次元のベクトルデータを効率的に扱うように設計されている。さらに、開発者がデータベースの運用管理よりもコアアプリケーションに集中できるよう支援するクラウドサービス「Zilliz Cloud」など、さまざまなユースケースをサポートしている。
コネクター
コネクターは、様々なデータソースを簡単に接続する内蔵ツールで、リアルタイムのデータ取り込みとインデックス作成を可能にし、すべての検索問い合わせに対して最も新鮮なコンテンツに即座にアクセスできるようにします。拡張性と適応性に優れたコネクタは、変動するトラフィック負荷にシームレスに対応し、DevOpsの手間をかけずにスムーズなスケーラビリティを実現します。コネクターは、ドキュメントの追加と削除を自動的にコレクションに同期し、同期を保ちます。さらに、詳細なロギングによってデータフローを観察できるため、透明性が確保され、異常が発生した場合にそれを検出できます。
ドキュメント・スプリッター
スプリッターは、文書処理やテキスト分析タスクで一般的に使用され、指定された文字やパ ターンに基づいて、文書やテキストをより小さな塊やセグメントに分割します。その後、これらのチャンクを個別に処理または分析することができます。例えば、Gen AIアプリケーションでは、スプリッターは、ベクトル埋め込みに変換する前に、長いテキストを個々の文や段落に分割するために使用される。これらの埋め込みは、意味的に類似したチャンクを見つけるためのものである。
機械学習モデル
機械学習モデルは、ベクトル埋め込みを作成するために使用されます。これらの埋め込みは、意味的な関係や文脈情報を捉え、アルゴリズムがより効果的に言語を理解し処理することを可能にします。 オープンソース、商用、プライベートの機械学習モデルは、オンプレムやクラウド環境にインストールしたり、API経由でアクセスすることで、ベクトル埋め込みを生成することができます。
再ランカー
情報検索システムにおいて、リランカーは最初の検索結果を絞り込み、クエリとの関連性を向上させる。単なるベクトル近似最近傍(ANN)検索とは異なり、リランカーを追加することで、文書とクエリ間の意味的関係をより適切に評価し、検索品質を向上させることができます。検索拡張生成(RAG)アプリケーションでは、リランカーは、より少ないが質の高いコンテキスト文書集合を提供することで、生成される回答の精度を高めることができる。しかし、リランカーは計算コストが高く、ANN検索単独よりもコストが増加し、クエリの待ち時間が長くなる。リランカーを統合するかどうかは、パフォーマンスとコストの制約に対して、関連性を向上させる必要性のバランスをとる必要がある。
機能
インジェスト・パイプラインの作成
パイプラインの作成には、使いやすいZilliz Cloudコンソールを使用するか、カスタマイズ可能なRESTful APIを使用するかを選択できます。この2つのアプローチにより、ユーザーは、シンプルさを優先する場合でも、高度なカスタマイズオプションを必要とする場合でも、特定のニーズや好みに合わせてパイプラインの作成体験を調整することができます。パイプラインを作成する際、ユーザーは最初にドキュメントを分割し、次に6つのモデル(zilliz/bge-base-en-v1.5、voyageai/voyage-2、voyageai/voyage-code-2、openai/text-embedding-3-small、openai/text-embedding-3-large)から1つを選択することができる。中国語については、zilliz/bge-base-zh-v1.5のみ)でベクトル埋め込みを作成することができます。また、検索時に役立つ適切なメタデータを保存することもできる。
データソース接続
コネクターは、Zilliz Cloudに不可欠なツールとして、多様なデータソースとベクトルデータベースをリンクするプロセスを簡素化するように設計されています。ユーザーインターフェース(UI)で提供される直感的な指示により、ユーザーは様々なデータソースをパイプラインに簡単に統合することができます。これは、データ処理能力の汎用性と拡張性を高めるだけでなく、Zilliz Cloudのユーザーフレンドリーな性質を強調するものでもあります。
例えば、コネクターは、オブジェクトストレージ、Kafka(近日公開予定)などを含む様々なソースからZilliz Cloudにデータを取り込むためのメカニズムとして機能する。オブジェクトストレージコネクタを例にとると、オブジェクトストレージバケット内のディレクトリを監視し、PDFやHTMLなどのファイルをZilliz Cloud Pipelinesに同期することができる。その後、これらのファイルをベクトル表現に変換し、検索用にベクトルデータベースに保存することができる。専用の取り込みと削除のパイプラインにより、Zilliz Cloud内のファイルと対応するベクトル表現は同期されたままです。ベクトルデータベースコレクションは、オブジェクトストレージ内のファイルの追加や削除を自動的に反映し、データの一貫性と正確性を保証します。
検索パイプラインの実行
パイプラインが作成されると、それを実行して非構造化データを処理し、Zilliz Cloudエコシステム内の様々な機能を促進することができます。例えば、Ingestionパイプラインを作成すると、ユーザーはその実行を開始し、非構造化データを検索可能なベクトル埋め込みデータに変換することができます。これらのエンベッディングは、Zilliz Cloudのベクトルデータベースに保存され、データ検索のアクセシビリティと効率を向上させます。
同様に、検索パイプラインを作成すると、ユーザーはそれを実行し、システムがセマンティック検索を行うことができます。この機能により、ユーザーはベクターデータベースから関連情報を探索・検索し、セマンティック分析の力を活用して検索結果を絞り込むことができます。
さらに、削除パイプラインを作成すると、ユーザーはベクトルデータベース内のコレクションから指定されたドキュメントに関連するすべてのチャンクを削除することで、その実行を開始することができます。この機能により、不要なデータチャンクや古くなったデータチャンクの削除が容易になり、データベースの整合性とクリーンさが保証されます。
パイプライン・コストの見積もり
パイプラインの実行に関連するコストは、基本的な測定単位であるトークンで定量化されます。大規模言語モデル(LLM)がトークンを基本的な構成要素として利用するのと同様に、パイプラインはテキストをトークンのシーケンスとして解析し埋め込むことで、文書処理や検索クエリの実行を行います。ユーザーは、パイプラインの使用量を見積もるツールを活用して、パイプラインの実行コストに関する洞察を得ることができます。このツールは、ファイルやテキスト文字列内のトークンのカウントを容易にし、パイプラインを実行する際に予想されるリソースの使用量と関連コストを測定することができます。このツールにより、ユーザーはリソースの割り当てと予算に関して十分な情報に基づいた意思決定を行うことができ、パイプラインの運用における最適な効率性と費用対効果を確保できます。
検索結果の再ランク付け
近似最近傍(ANN)ベクトル検索のみによる最初の検索は、非常に効率的であり、多くの場合満足のいく結果が得られる。多くの状況において、再ランク付けの第二段階はオプションとみなされる。高品質な標準を持つアプリケーションの場合、リランカーを採用することで、計算量が増え、検索時間が長くなるものの、精度を高めることができる。通常、リランカー・モデルを統合すると、topKの選択やリランカー・モデルのサイズなどの要因にもよるが、検索クエリに100msから数秒の待ち時間が追加される。最初の検索で不正確な文書や無関係な文書が得られた場合、リランカーを使うことで効果的にそれらをフィルタリングし、最終的に生成されるレスポンスの質を向上させることができる。
リランカーがユースケースに必要と判断された場合、UIから選択することができます。
利点
柔軟なパイプライン作成**:使いやすいZilliz Cloudコンソール、またはカスタマイズ可能なRESTful APIからパイプラインを作成できます。この2つのアプローチにより、ユーザーは、シンプルさを優先する場合でも、高度なカスタマイズオプションを必要とする場合でも、特定のニーズや好みに合わせてパイプラインの作成体験を調整することができます。
シームレスなデータソース統合**:Zilliz Cloudのコネクタは、多様なデータソースとベクターデータベースのリンクを簡素化します。ユーザーインターフェース(UI)の直感的な指示により、ユーザーは様々なデータソースをパイプラインに容易に統合することができ、データ処理能力の汎用性と拡張性を高めることができます。
コスト見積もりと最適化**:Zilliz Cloudは、予想されるリソースの使用量と関連するパイプラインのコストを測定するのに役立つパイプライン使用量見積もりツールを提供します。ユーザーは、ファイルやテキスト文字列内のトークンをカウントすることで、リソースの割り当てや予算に関する情報に基づいた意思決定を行うことができ、パイプラインの運用における最適な効率性と費用対効果を確保することができます。
Zillizクラウドパイプライン
インジェストパイプライン
インジェストパイプラインの主な目的は、テキストやドキュメントのような非構造化データを検索可能なベクトル埋め込みに処理することです。このパイプラインには関数 INDEX_DOC が含まれており、入力されたテキスト文書を様々なチャンクに分割し、それぞれのチャンクに対してベクトル埋め込みを生成する。入力フィールド(doc_url)は、自動生成されたコレクションのスカラーフィールドとベクトルフィールドとして、4つの出力フィールド(doc_name、chunk_id、chunk_text、embedding)にマッピングされる。
検索パイプライン
検索パイプラインのプロセスはとても簡単です。クエリ文字列をベクトル埋め込みに変換し、上位K個のベクトルをメタデータと対応するテキストとともに取得することで、セマンティック検索を支援する。このために SEARCH_DOC_CHUNK という名前の関数が使われる。
削除パイプライン
削除パイプラインは指定されたドキュメントのすべてのチャンクをコレクションから削除するために使用される。これにより、ドキュメントのすべてのデータを簡単に削除することができる。PURGE_DOC_INDEX`という関数があり、指定したdoc_nameを持つ全てのドキュメントチャンクを削除する。
ドキュメントチャンキングの仕組み
チャンキングの目的は、その名前が示すように、情報を複数の小さな断片に分解して、より効率的かつ有意義に保存することです。これにより、検索は質問により関連した情報の断片を捕らえることができ、生成はより正確であるが、文書全体ではなく文書の一部のみがLLMプロンプトに含まれるため、より低コストとなる。最後に、文書チャンキングにより、完全一致ではなく、意味的理解に基づいて情報が検索されるため、検索性が効率的になる。
Zilliz Cloud Pipelinesでは、ドキュメントを文、段落、行、またはカスタマイズした文字列のリストに分割できます。さらに、チャンクサイズも定義できます。デフォルトでは、各チャンクには最大500個のトークンが含まれます。以下の表は、適用可能なモデルと、対応するチャンクサイズの範囲との対応関係を示しています。
| モデル |---|----| zilliz/bge-base-en-v1.5 | 20-500 トークン || zilliz/bge-base-zh-v1.5 | 20-500 トークン | zilliz/bge-base-zh-v1.5 | 20-500トークン | voyageai/voyage-2 | 20-3,000トークン | voyageai/voyage-code-2 | 20-12,000トークン | voyageai/voyage-large-2 | 20-12,000トークン | openai/text-embedding-3-small|250〜8,191トークン |openai/text-embedding-3-large|250〜8,191トークン
ドキュメントチャンキングの実用例と利点
ドキュメント・チャンキングは、様々な領域で幅広く実用化されている。テキストデータを管理しやすい断片に分解することで、大量の非構造化データを扱うための、より合理的なアプローチが提供される。以下は、ドキュメント・チャンキングの実際の応用例です。
実際のアプリケーション
コンテンツ管理
コンテンツ管理では、ドキュメント・チャンキング・プロセスにより、大きなドキュメントを小片に分割することで、インデックス付けや検索が容易になります。このアプローチにより、検索が効率的になり、ユーザーは目的の情報を素早く見つけることができます。
リサーチ
ドキュメント・チャンキングは、学術論文やレポート、研究論文のインデックスを作成する研究分野で重宝される。これにより、研究者は関心のある特定のセグメントを検索することができる。
法律
文書のチャンキングは法律分野でも役立つ。チャンキングによって、特定の条項、契約、用語、裁判所の判決などを検索しやすくなる。これにより、法的調査の正確性と効率が向上します。
医療
医療専門家もドキュメント・チャンキングを利用して、患者の医療記録、臨床ガイドライン、研究論文を処理し、インデックスを付けることができます。これにより、重要な医療情報に遅滞なくアクセスできるようになります。
メリット
チャンキングは、RAG(Retrieval Augmented Generation:検索拡張世代)モデルのコンテキストにおいて、3つの主要な利点を提供します:
1.精度の向上:テキストをより小さく、管理しやすいチャンクに分解することで、検索プロセスはクエリに特に関連する情報を取り込むことができる。これにより、検索結果の精度が向上し、検索された情報がユーザーの要求に確実に合致するようになります。 1.計算コストの削減:チャンキングは、言語モデルのプロンプトに関連する文書部分のみを含めることで、計算コストを最小限に抑える。不必要な情報を避けることで、チャンキングは処理オーバーヘッドを最適化し、より効率的なテキスト検索と生成処理を実現します。 1.一貫性と関連性の向上:Document Specific Chunkingのようなチャンキング戦略は、パラグラフやサブセクションのような論理的なセクションに沿ったチャンクを作成し、ドキュメントの元の構成を尊重します。このアプローチにより、特に構造化された文書の場合、テキストの一貫性と関連性が維持され、より意味のある、文脈に適した検索結果が得られます。
Zilliz Cloud Pipelinesによるドキュメントチャンキングの実装:ステップバイステップガイド
Zilliz Cloud Pipelinesでドキュメントチャンキングを実装するには、いくつかのステップが必要です。この包括的なガイドには、セットアップ、構成、ベストプラクティス、最適化戦略が含まれています。主なポイントは、Zilliz Cloudへのサインアップ、パイプラインの作成、ドキュメントのインデックス作成、チャンキング戦略のカスタマイズです。
セットアップと構成
サインアップまたはログイン
最初のステップでは、Zilliz Cloudアカウントにサインアップまたはサインインします。これにより、Zilliz Cloud Pipelines Serviceにアクセスできるようになります。
パイプラインの作成
インジェスト、検索、削除パイプラインを作成するには、Zillizの指示に従ってください。検索パイプラインIDとAPI-Keyは必ず控えておいてください。
Web UI の方法
- プロジェクトに移動する
- Zilliz Cloud Web UI を使ってプロジェクトに移動します。
- ナビゲーションパネルで "パイプライン "を選択します。
- 概要 "タブに移動し、"パイプライン "を選択します。
- 新しいパイプラインを作成するには、"+パイプライン "をクリックします。
- パイプライン・タイプを選択
- 新しいパイプラインを作成するには、"+パイプライン "ボタンを選択します。
- 検索パイプラインと削除パイプラインの前に、インジェスト・パイプラインを作成してください。
- 取り込みパイプラインの設定
- 新しいコレクションが作成されるクラスタをクリックします。
- 新しく作成されるコレクションの名前を入力します。
- フォーマットの制限に従って名前を指定します。
- 必要であれば、パイプラインを記述します。
- パイプラインに関数を追加します。
- INDEX_DOC関数はドキュメントを小さなチャンクに分割し、各チャンクをベクトル化し、ベクトル埋め込みを保存します。
- PRESERVE関数を使用して、データ取り込み時にコレクションにスカラー・フィールドを追加します。
- チャンキング戦略のカスタマイズ
- ドキュメントがどのようにチャンクに分割されるかを決定するために、スプリッターをカスタマイズする。. "や"˶n "のような文字や、その他のカスタマイズされた文字列を使用してください。
- パイプライン設定の保存
- 関数を追加・設定したら、パイプラインを保存しましょう。
- Create Ingestion Pipeline "をクリックしてください。
RESTful APIメソッド
API経由でIngestionパイプラインを作成します。curlコマンドを使用して、インジェストパイプラインを作成します。
--header "Content-Type: application/json" \
--header "Authorization:ベアラ ${YOUR_API_KEY}"\
--url "https://controller.api.{cloud-region}.zillizcloud.com/v1/pipelines" \
-d '{
"projectId":"proj-xxxx"、
"名前":"name": "my_doc_ingestion_pipeline"、
"description":"パイプラインの説明"、
"type":「INGESTION"、
"functions":[
{
"name":"index_my_doc"、
"action":"INDEX_DOC"、
"inputField":"doc_url"、
"language":「ENGLISH"、
"chunkSize":500,
"embedding":"zilliz/bge-base-ja-v1.5"、
"splitBy":["∕"、"∕"、"∕"]。
},
{
"name":"keep_doc_info"、
"action":"PRESERVE"、
"inputField":"publish_year"、
"outputField":"publish_year"、
"fieldType":"Int16"
}
],
"clusterId":"${cluster_id}"、
"newCollectionName":"my_new_collection"
}'
- パイプラインの管理
- パイプラインの表示と管理
- パイプライン "をクリックすると、利用可能なパイプラインとその詳細、トークンの使用状況が表示されます。
- パイプラインの詳細を表示するには、API経由でGETリクエストを使用します。
- パイプラインの実行
- データを処理してベクター形式で保存するには、取り込みパイプラインを実行します。
- 次に、セマンティック検索を実行するために検索パイプラインを実行します。
- 削除パイプラインを使用して、コレクションから不要なドキュメントチャンクを削除します。
- パイプライン使用量の見積もり
- ZillizのWeb UIを利用して、パイプライン実行時のトークン使用量を確認できます。
- パイプラインの削除
- API(GETリクエスト)またはWeb UIを使用して、使用していないパイプラインを削除できます。
インデックスドキュメント
ユーザーはパイプラインのプレイグラウンドでdoc_urlフィールドにドキュメントのURLを入力することができます。ドキュメントを取り込みたい場合は、"RUN "をクリックし、処理を実行します。このステップでは、ドキュメントを検索可能なベクターコレクションに変換します。
チャンキング戦略のカスタマイズ
Zilliz Cloud Pipelinesではチャンキング戦略をカスタマイズすることができます。ユーザーは、ドキュメントをチャンクに分割するために使用されるスプリッターを使用して、チャンクサイズを定義することができます。さらに、文、行、段落のカスタムセパレータも指定できます。
モデルの選択
希望のチャンクサイズとドキュメント全体のサイズに基づいて、ベクトル埋め込みを生成するモデルを選択します。Zilliz Cloud Pipelinesは様々なモデルをサポートしており、それぞれが独自のチャンクサイズの範囲を持っています。
ベストプラクティス
- 様々なチャンクサイズを試して、検索品質と効率性の最適なバランスを見つけましょう。
- スプリッター機能を使って、段落、カスタムセパレーター、センテンスなどの特定の基準に基づいてドキュメントを小さなチャンクに分割する。
- パイプラインの使用量を常にチェックし、Zilliz Cloudの制限に注意してください。
トラブルシューティングのヒントと最適化戦略
- ドキュメントがINDEX_DOC関数に対応している必要があります。
- マークダウンやHTMLファイルの場合、INDEX_DOC関数はヘッダーでドキュメントを分割し、指定されたチャンクサイズに基づいてより大きなセクションを分割します。そのため、チャンクサイズを適宜調整してください。
- 選択したモデルが最良の結果をもたらさない場合、他のモデルを試すこともできます。
結論
Zilliz Cloud Pipelinesは非構造化データを検索可能なベクトルコレクションに変える。データ処理とセマンティック検索に大きな影響を与える。Zilliz Cloud Pipelinesは画像、ビデオフレーム、マルチモーダル文書を検索できる。このような検索用のパイプラインは今後追加される予定です。
要約すると、Zilliz Cloud Pipelinesは、ドキュメントのチャンキングプロセスを合理化し、検索性を向上させることで、データ処理とセマンティック検索を完全に変えました。非構造化データを扱う場合、取り込み、検索、削除のためのパイプラインを作成する機能を含むその機能は、開発者やデータエンジニアにとって貴重なツールとなる。このプラットフォームは、効率性、スケーラビリティ、使いやすさを重視することで、情報の処理や検索方法をさらに革新することを約束する。これにより、多様なデータ・ワークフローへの探索と統合が促進される。
Zilliz Cloud Pipelinesを試してみたい方は、Build RAG using Zilliz Cloud Pipelinesというブートキャンプをお試しください。
読み続けて

Zilliz Cloud Just Landed in Claude Code
Zilliz Cloud Just Landed in Claude Code - Build AI Apps without Leaving Your Terminal

ColPali + Milvus: Redefining Document Retrieval with Vision-Language Models
When combined with Milvus's powerful vector search capabilities, ColPali becomes a practical solution for real-world document retrieval challenges.

Knowledge Injection in LLMs: Fine-Tuning and RAG
Explore knowledge injection techniques like fine-tuning and RAG. Compare their effectiveness in improving accuracy, knowledge retention, and task performance.
