ストレージと検索

今日のRAGソリューションをより深く理解するために、詳細はこちらのRAGクックブックを参照してください

Watson for Customer Careリードスペースをベースとして使用して色を変更したリードスペース。
概要

このセクションでは、RAGドキュメント・ベースの保存と取得のためのツールと考慮事項について説明します。ストレージ・テクノロジーによって、保管されたデータのクエリーと取得に利用できる検索メカニズムが制限されるため、ここでは2つのトピックを共同で扱います。

IBMツール

IBM watsonx Discovery:包括的なエンタープライズ検索およびRAGソリューション

IBM Cloud Databases for Elasticsearchを搭載したIBM watsonx Discoveryは、検索および検索拡張生成(RAG)のユースケースをサポートおよび強化するために設計された完全なエンタープライズ・ソリューションです。ベクトル検索、セマンティック検索、フェデレーテッド検索などの堅牢な機能を備えたwatsonx Discoveryは、コンテキストに応じたAI駆動型アプリケーションを構築するための豊富なツールセットを提供します。IBMの対話型AIプラットフォーム「watsonx Assistant」や、watsonx Orchestrateなどのオーケストレーションレイヤーとシームレスに統合して、高度なビジネス・ソリューションを提供します。

Elasticsearchでwatsonx Discoveryを使用する理由

watsonx Discoveryは、IBM Cloud Databases for Elasticsearchを活用し、エンタープライズ検索のニーズを管理するための強力かつ柔軟なバックエンドを提供します。

  • モニタリングとヘルスチェック:Elasticsearchでは、開発者は包括的なモニタリングおよびヘルスチェックツールにアクセスして、埋め込み、メタデータ、チャンクサイズ、ドキュメント構造が最適化されていることを確認できます。Elasticsearchウェブページでは、シームレスな管理とスケーリングが可能で、バックアップ、ロギング、モニタリング、セットアップなどの運用タスクではなく、アプリケーション開発に重点を置くことができます。

  • 高度な検索機能:watsonx Discoveryは、スパースおよび高密度のセマンティック検索、メタデータのフィルター検索、レキシカル検索、ブール検索(AND/OR/NOT/SLOP)、プレフィックス検索、ファジー検索、ハイブリッド検索などのさまざまな高度な検索アルゴリズムをサポートしています。これらの機能は、複雑なクエリーやドキュメントを含む難しいRAGのユースケースにとって必要不可欠です。このノートブックで概説されている高度な検索タイプを実装して、デプロイメントを最適化します。

  • LLMフレームワークとの統合:ElasticsearchはLangChainLlamaIndexなどの人気LLMオーケストレーションフレームワークとの互換性、RAGソリューションを後押しするwatsonx Discovery連携に最適です。

watsonx Discoveryによってサポートされている検索方法

watsonx Discoveryは、幅広い検索方法をサポートする多用途のソリューションです。

  • キーワード検索
  • セマンティック検索
  • ベクトル検索
  • ハイブリッド検索(逆ランク・フュージョン)

ELSER(Elastic Search Embeddings)モデルは、セマンティック検索に使用される事前構築済みの主要な埋め込みモデルであり、カスタム・ベクトル・データベースを必要とせずにコンテキスト検索を可能にします。

フェデレーテッド・サーチ

watsonx Discoveryは、既存のデプロイメント全体でのフェデレーテッド検索をサポートし、重複データを保存・維持する必要性を軽減します。これにより、複数のデータ・サイロにわたる企業全体の検索と取得が可能になります。

豊富なデータ取り込みとインデックス機能

watsonx Discoveryは、豊富なデータ取り込みツール・スイートによって、コンテンツの抽出とインデックス作成を簡素化します。

  • コンテンツ抽出:DOCX、PDF、PPTXなどさまざまなファイル形式をサポートしているため、ビジネスにクリティカルな情報を簡単に発見してインデックスを作成できます。
  • サードパーティーの統合:事前構築されたコネクターを使用して幅広いデータ・ソースに接続し、企業のデータ・エコシステムへのシームレスな統合を実現します。
  • データ変換と強化:強力な取り込みパイプラインを実装してデータを変換および強化し、高品質の検索と洞察の準備を確実に整えます。
ベクトル・データベースに関連したwatsonx Discoveryの機能の図

詳しくは、watsonx Discoveryの開発を加速させる次のElasticSearchの参考情報をご覧ください:

強化された視覚化とEnterprise Search

watsonx Discoveryは、KibanaおよびEnterprise Searchと統合し、大規模なエンタープライズ環境に合わせてスケーラブルなAI駆動型の情報検索と視覚化を提供します。

  • Kibana for Data Visualization:watsonx Discoveryによって取り込まれたデータに基づいてカスタムダッシュボードと視覚化を作成します。エンティティー抽出、センチメント分析、文書分類などの主要なメトリクスに関するリアルタイム分析を提供します。これにより、非構造化データの傾向、パターン、異常を追跡し、分析プロセスを合理化し、意思決定を改善することができます。

  • スケーラブルな検索のためのエンタープライズ検索:NLPとセマンティック検索を活用して、構造化データ・ソースと非構造化データ・ソース全体で高速かつ正確な検索を可能にします。検索機能をカスタマイズして、ドキュメント、Eメール、データベースなどの複数のデータ・ソースからインデックスを作成、取得し、ビジネス・ワークフローに直接統合できるドメイン固有の検索アプリケーションを作成します。

プライバシーとセキュリティー

watsonx Discoveryは、ロールベースおよび属性ベースのアクセス制御にネイティブ・サポートを適用して、コンテンツ・アクセスを保護し、データ・プライバシーを保護します。これにより、許可されたユーザーのみが機密情報にアクセスできるようになり、企業データが保護されます。

ユースケース:watsonx DiscoveryとOrchestrate

watsonx Discoveryをwatsonx Orchestrateと組み合わせると、コンテキストに応じたデータ検索を通じてオートメーション・ワークフローを強化できます。Orchestrateにより非構造化データからの洞察を必要とするビジネス・プロセスを自動化する場合、Discoveryを活用して関連コンテンツを取得して分析し、次のようなインテリジェントなタスクを実行できるようにします。

  • データに裏付けられた正確な回答でクエリーに応答する。
  • リアルタイムのデータ取得と洞察に依存するワークフローを実行する。

IBM watsonx.data:統合ベクトル・データベース機能を備えた最新のデータストア

IBM watsonx.dataは、オープンレイクハウス・アーキテクチャー上に構築された強力なデータ・プラットフォームであり、データウェアハウスとデータレイクの両方の利点を兼ね備えています。共有されたオープンなメタデータ層を通じてすべてのデータにアクセスするための単一のエントリー・ポイントを提供し、データ管理の合理化を目指す組織にとって理想的なソリューションです。オープンなデータ形式、ベクトル化された統合型の埋め込み機能、データ・インサイト向けの生成AIを活用した対話型インターフェースをサポートするwatsonx.dataは、リアルタイム分析とAIのユースケースを強化します。このプラットフォームは、既存のデータベースやツールとシームレスに統合でき、クラウドやオンプレミス構成など、柔軟な導入オプションを提供します。

IBM watsonx.dataの主要コンポーネントはwatsonx.data Milvusで、ベクトル埋め込みなどの高次元ベクトル・データを保存、管理、転送するために特別に設計されたオープンソースのベクトル・データベースです。この高度に構成可能なベクトル・データベースは、ベクトルのインデックス作成と取得を効率的に行うために最適化されており、AIアプリケーションでベクトルの類似性検索が必要なユースケースに最適です。watsonx.data Milvusは、ベクター・データベース機能とのシームレスな統合を必要とするwatsonx.aiを活用しているお客様や、検索拡張生成(RAG)パターンでよく使用されるLangChainなどのオープンソース・フレームワークの実装に関心があるお客様にとって特に有益です。

導入オプション

IBM watsonx.dataには、多様なニーズに合わせて3つのデプロイメント・オプションがあります。

  • フルマネージドSaaS:IBM CloudおよびAWSで利用可能で、セットアップとスケーリングにおいてハンズオフのアプローチを提供します。
  • 自己管理型コンテナ化ソフトウェア:IBM Cloud Pak for DataとRed Hat OpenShiftを活用したオンプレミス環境に最適です。
  • スモール・フットプリントの開発者版:単一のVMまたはノートPCを使用した開発環境に適しており、ローカルでのテストとプロトタイプの柔軟性を提供します。

また、ベクトル・データベースの活用を検討している組織向けに、watsonx.dataはオープンソースのMilvusとの統合をサポートしており、リアルタイムAIアプリケーションに不可欠なベクトル類似検索などの高度な機能を実現しています。

始めに

IBM watsonx.dataの使用を開始するには、要件に最適なデプロイメント・オプションを選択します。

  • IBM Cloudデプロイメントの場合
  • watsonx.dataのIBM Cloudカタログ・ページをご覧ください。
  • ニーズに合ったプランをお選びください。
  • インスタンスをプロビジョニングします。

  • オンプレミス・デプロイメントの場合

  • IBM Cloud Pak for Data内でIBM watsonx.dataの有効化キーを取得します。
  • Red Hat OpenShiftのライセンスを取得します。
  • デプロイメントガイドに従って、ソフトウェアを構成します。

資料とサポート

IBMは、コアのwatsonx.dataプラットフォームとMilvusベクトル・データベースの両方を使い始めるのに役立つ広範なドキュメントを提供しています。

watsonx.dataのオープン・アーキテクチャー、統合されたベクトル・データベース機能、高度なAI機能を活用することにより、組織はデータ・エンジニアリング・プロセスを最適化し、リアルタイム分析を改善し、AI搭載機能を通じて新しい洞察を解き放つことができます。この統合プラットフォームにより、チームは構造化データと非構造化データを革新的な方法で操作できるようになり、従来の分析と最先端のベクトル類似性検索を単一のソリューションに統合できます。

Watson Discovery

IBM watson Discoveryは、非構造化データを取得して分析するために設計されたツールです。主な機能はキーワード検索で、ユーザーは特定の用語やフレーズを使用して大規模なデータセットを検索できます。テキスト・マッチングを使用する傾向がある従来の検索エンジンとは異なり、watson Discoveryはキーワードの背後にあるコンテキストを使用して、より関連性の高い結果を提供します。

watson Discoveryのもう1つの重要な機能はエンティティー抽出です。これは、watson Discoveryが非構造化テキストから人、場所、組織、日付などの重要な情報を自動的に抽出できることを意味します。このプロセスにより、データが理解しやすくなり、RAG応答に直接組み込むことができるようにデータが構造化されます。

オープンソース・ツール

LangChain

多くのLLMアプリケーションでは、モデルのトレーニング・セットに含まれていないユーザー固有のデータが必要となります。これを実現する主な方法は、検索拡張生成(RAG)です。このプロセスでは、生成ステップを実行するときに、外部データが取得され、LLMに渡されます。

RAGソリューションにおける文書の取り込みと埋め込みのための高レベルのLangChainプロセスを示す図

LangChainはさまざまな検索アルゴリズムをサポートしています。LangChainは、セマンティック検索などの基本的な手法をサポートしています。ただし、性能を向上させるために、この上に一連のアルゴリズムを追加することもできました。それには、以下が含まれます。

 

  • Parent Document Retriever:親ドキュメントごとに複数の埋め込みを作成できるため、小さなチャンクを検索しながら、より大きなコンテキストを返すことができます。
  • Self Query Retriever:ユーザーの質問には、単なる意味ではなく、メタデータ・フィルターとして最もよく表現できるロジックを表しているものへの参照が含まれることがよくあります。自己クエリーを使用すると、クエリー内に存在する他のメタデータ・フィルターからクエリーの意味部分を解析できます。
  • Ensemble Retriever:複数の異なるソースから、または複数の異なるアルゴリズムを使用してドキュメントを取得する場合があります。アンサンブル検索を使用すると、これを簡単に行うことができます。

Milvus

Milvusは、非構造化ドキュメントからの構造化データの自動化と抽出のためのAIプラットフォームで、特定の検索シナリオでwatsonx Discoveryと一緒に使用されることがよくあります。Milvusはさまざまなフォーマットに適応できるため、大規模な処理ワークフローに最適です。AIエンジニアにとっては、精度と効率を確保しながらデータ抽出における手作業を削減するスケーラブルなソリューションを提供します。

watsonx DiscoveryとMilvusの比較

Milvusは主に大規模なデータセット全体での類似性検索のために設計されたベクトル・データベースで、特に高次元ベクトルに優れています。一方、watsonx Discoveryは、対話型セマンティック検索やドキュメントの理解/処理に特化しており、特に対話型およびセマンティック検索機能に重点を置いています。

機能性

Milvusは、スパース・ベクトル、バルク・ベクトル、フィルタリング検索、ハイブリッド検索などの高度な機能を提供します。また、スケールアウト/インとスケールアップ/ダウンの両方を可能にする分散アーキテクチャーを備えているため、大規模なデータセットに対して非常にスケーラブルです。

主な利点

スケーリング

Milvusは大規模なベクトル・データを処理でき、大規模なデータセットから情報を取得するRAGソリューションに不可欠な、高性能なベクトル類似検索をサポートします。

データ統合

Milvusはwatsonx.dataとシームレスに統合し、AIモデルとアプリケーションのデータ管理を簡素化します。これにより、管理対象の大規模なデータセットにわたるスケーラブルなRAGユースケースが可能になります。

高度な機能

Milvusは、メタデータのフィルタリングなどの高度な機能をサポートし、検索結果の関連性を高め、RAGシステムの有効性を向上させます。

参考情報

Milvus RAGチュートリアル

LangChain Retrieversの使用

LlamaIndexを用いたOpen Source Retriever

ヒント、テクニック、推奨事項

重複、優先性、配布の対処

基本的なベクトル・ストアは単純なRAGソリューションには適していますが、ドキュメント内に複数の類似した情報があり(類似していることと関連している情報は同じではありません)、クエリーに答えるための情報が複数のドキュメントに分散している場合や、文書の複数のセクションに分散されている場合にはすぐに分解します。いくつかの例を挙げると...

例1

ある企業が複数の州にオフィスを運営しており、それぞれに独自の人事ポリシーがあります。この組織は、人事情報に関してすべてのオフィスで共通の文書形式を使用しています。会社が人事方針をベクトル・データベースに埋め込むと、例えば休暇を申請するための複数のチャンクが存在し、異なるサポートテキストが使用され、ハルシネーションの可能性が高くなります。

例2

サービス契約には、契約を通じて資本化された定義済みの用語の用語集があり、定義への参照を示します(例:レッサー、評価期間など)。契約を最初から最後まで解析およびチャンクした、契約のナイーブな解析とチャンク化では、次のようなやり取りが発生します。

クエリー:サービス完了後、請求が行われるまでのAcmeの時間はどのくらいですか?回答:購入者には、評価期間後10日間の猶予が与えられてから、サービスに対して請求が行われます。

便利ですが、後続のクエリーを作成したり、簡単な追加を行ったりして、より完全な回答を得ることが保証されます。

例3

官公庁・自治体は、その法律の修正を既存の法律の「編集物」として発表します。例えば、「麻薬規制法のセクション12.2は、CannabisおよびCannabis関連製品を除外するために改訂される」などです。ベクトル・データベースは、このテキスト・スニペットがCannabisのトピックを扱う他のすべてのチャンクよりも優先される必要があることをどのように決定するのでしょうか。

ドキュメント階層

ドキュメント階層は、ドキュメントのチャンクを関連するドキュメントをグループ化するカテゴリーに整理します。コンピューターの目次やフォルダーのセットに似ています。ドキュメント階層を使用すると、RAGソリューションはユーザー・クエリーの主題を「絞り込む」ことができ、最も関連性の高いドキュメントのみを取得できるようになります。

RAGソリューションのドキュメント階層の一般構造

これを上記の複数の状態のHRドキュメントの例に適用すると、有用なドキュメント階層はドキュメントを状態ごとに分類し、RAGソリューションが特定の状態に関連するドキュメントのチャンクのみを取得できるようにします。以下の図に示すように、最初に国域別、次に該当する州/県別、次にポリシー分野またはトピック別にドキュメントを階層化できます。もちろん、このソリューションは、ユーザーがリストに挙げた居住地域から関連する州を推測するか、ユーザーに関心のある州を提供するよう促す必要があります。

複数の管轄区域で事業を展開する企業の企業ポリシーの文書階層の例。

導入

ハイブリッド・ベクトル・ストア

ドキュメント階層は、ハイブリッド・ベクトル・ストアで実装できます。これは、以下のMilvusスキーマ定義に示すように、検索基準の一部としてカテゴリーおよびサブカテゴリー・フィールドを使用して、Milvusなどのベクトルとともに数値およびカテゴリー・データ・タイプで構成されるスキーマをサポートするベクトル・ストアです。

chunk_id = FieldSchema(
  name="chunk_id",
  dtype=DataType.INT64,
  auto_id=True,
)
state_id = FieldSchema(
  name="state_id",
  dtype=DataType.INT64,  
)
chunk = FieldSchema(
  name="chunk",
  dtype=DataType.FLOAT_VECTOR,
  dim=2
)
schema = CollectionSchema(
  fields=[chunk_id, state_id, chunk],
  description="HR documents by state"
)

ナレッジ・グラフ

ナレッジ・グラフは、ドキュメント内またはドキュメント間のエンティティー間関係を捉えます。ベクトル・データベースでの類似性検索とは異なり、ナレッジ・グラフは関連する関係とコンテンツを一貫して正確に取得できるため、ハルシネーションの発生を大幅に減らすことができます。ベクトル・データベースの類似性検索と組み合わせると、グラフ・データベースを使用して、RAGソリューションでドキュメント内および/またはドキュメント・セット全体から関連するコンテンツを組み合わせることができます。以下の画像は、サービス契約の潜在的なナレッジ・グラフを示しています。

 

法的契約のナレッジ・グラフの例

RAGソリューションに最適なナレッジ・グラフは人間が作成・維持するものですが、大規模言語モデル(LLM)を使用して文書内のエンティティーと関係を解析し、ナレッジ・グラフを作成すると、驚くほど良い結果が得られます。

導入

Neo4j

Neo4jは、人気のオープンソース(GPLv3)グラフ・データベースです。このチュートリアルでは、neo4jとLangchainを使用して、ナレッジ・グラフで強化されたRAGソリューションの設定とコーディングについて説明します。

詳細はこちら

IBMから最新のテクノロジー・パターン、ソリューション・アーキテクチャー、およびアーキテクチャーに関する出版物を入手してください。

  1. IBM Architecture Centerに移動