0 / 0

RAGパターンを自動化する AutoAI

最終更新: 2025年4月02日
RAGパターンを自動化する AutoAI

AutoAI を使用して、お客様のデータとユースケースに基づいて、最適化された実用レベルのRAG(Retrieval-augmented generation)パターンを自動的に検索し、高速化します。

データ・フォーマット
PDF、HTML、DOCX、MD、またはプレーンテキスト形式の文書コレクションファイル
JSON形式の質問と回答を含むテストデータ
データファイルの制限
文書コレクションには、最大20個のファイルまたはフォルダを登録できます。 より大きな文書コレクションについては、 AutoAI は1GBのサンプルで実験を行っています。
テストデータ用のJSONファイル1つ。 実験では、最大25の質問と回答のペアを使用してパターンを評価します。
環境サイズ
大規模: 8 個の CPU および 32 GB の RAM

RAGパターンに必要なコストの見積もり

AutoAI RAG実験では、実験のトレーニングにCUH(Capacity Unit Hours)を使用し、実験中はドキュメントの埋め込みと基盤モデル推論のためにトークンが消費される。

  • CUHは、サポート対象環境では1時間あたり20 CUHの標準的な測定値です。 実験で消費されるCUHは、実験の複雑さとパターンを学習するのに必要な時間に依存します。
  • トークンの消費量は、以下のような多くの要因に左右される:
    • 埋め込み用ドキュメントコレクションのサイズ
    • 埋め込む評価問題と回答の数
    • チャンキング構成、この式で計算: ((Chunk overlap + Chunk size) * Chunk count) *Evaluation records
    • 実験が作成するパターンの数

このサンプルでは、単一のRAGパターンに対するリソースの計算方法を説明しています。

実験入力:

  • 書類100ページ
  • 評価に関する質問と回答のレコード25件
アクティビティー 消費されたトークン
文書を埋め込む 3,000,000
評価記録の埋め込み 25,000
プロンプトのコンテキストを取得中 192,000
評価記録のコンテキストを取得中 25,000
答えを導き出す 25,000
消費されたトークンの合計 3,267,000

検索補強型生成で正確な回答を提供

検索補強型生成(RAG)は、大規模な言語モデルの生成能力と、根拠となる文書コレクションの精度を組み合わせたものである。 RAGアプリケーションとのやりとりはこのパターンに従う:

  1. ユーザーがアプリに質問を投稿する。
  2. 検索はまず、根拠となる文書群から関連するコンテキストを検索する。
  3. 付随する大規模な言語モデルは、関連する情報を含む回答を生成する。

例えば、この機能で提供されるサンプルノートブックでは、watsonx.ai Pythonクライアントライブラリの製品ドキュメントを、watsonx.aiソリューションのコーディングに関する Q&A アプリの基礎資料として使用しています。 パターン・ユーザーは、生成AIモデルが文脈を追加し、自然言語で答えを提示することで、ドキュメントから特定の関連情報を得ることができる。

検索機能付き生成がどのように質問と回答のアプリケーションを向上させるかについての完全な説明と例については、検索機能付き生成(RAG)を参照してください。

最適なRAGコンフィギュレーションの自動検索

RAGには、どの大規模言語モデルを選択するか、接地文書をどのようにチャンクするか、どれだけの文書を検索するかなど、多くの設定パラメータが用意されている。 別のユースケースではうまくいく構成選択も、あなたのデータにとってはベストな選択ではないかもしれない。 データセットに最適なRAGパターンを作成するために、RAG設定オプションの可能なすべての組み合わせを探索し、最適なソリューションを見つけ、評価し、展開することができる。 このプロセスには、多大な時間とリソースの投資が必要となる。 機械学習モデルを迅速にトレーニングして最適化するために AutoAI を使用できるように、AutoAI 機能を使用して、データとユースケースに基づいて最適な RAG ソリューションの検索を自動化できます。 実験を加速させることで、生産までの時間を劇的に短縮することができる。

AutoAIアプローチの主な特徴は以下の通り:

  • 制約のある設定オプションの完全な探索と評価.
  • 何か変更があった場合、迅速にコンフィギュレーションを再評価し、修正する。 たとえば、新しいモデルが利用可能になったときや、評価結果が回答の質に変化をもたらしたときに、トレーニングプロセスを簡単に再実行することができます。

AutoAI を使用すると、実験からデプロイまでのエンドツーエンドのフローが自動化されます。 次の図は、AutoAI による、データとユースケースに最適化された RAG パターンを見つけるためのアプローチを 3 つのレイヤーに分けて示しています:

  • 基本レベルでは、パラメータ化されたRAGパイプラインが使用され、ベクターストア(インデックス)を作成し、大規模言語モデルが応答を生成する際に使用するベクターストアからデータを取得する。
  • 次に、RAG評価指標とベンチマーキング・ツールが、回答の質を評価する。
  • 最後に、ハイパーパラメータ最適化アルゴリズムが、データに最適なRAGコンフィギュレーションを検索します。

AutoAI SDKでRAGパターンを自動化する

AutoAI RAG最適化プロセス

AutoAIRAGを使用して実験を実行すると、ハイパーパラメータ最適化アルゴリズムを使用することにより、すべてのRAG設定オプションのテストを回避することができます(例えば、グリッド検索を回避することができます)。 以下の図は、16のRAGパターンから選択できるRAGコンフィギュレーション検索空間のサブセットを示している。 実験がそれらすべてを評価した場合、1~16のランク付けが行われ、最高ランクの3つのコンフィギュレーションがベストパフォーマンスとしてタグ付けされる。 最適化アルゴリズムは、どのRAGパターンのサブセットを評価するかを決定し、灰色で示されている他のパターンの処理を停止する。 この処理により、指数関数的な探索空間の探索を回避しつつ、よりパフォーマンスの高いRAGパターンを実際に選択することができる。

RAGパターンの最適化プロセスの自動化

RAGパターンの検索を自動化するには、ファストパスを使用します

AutoAIは、RAGパターンの検索を自動化するためのコード不要のソリューションを提供します。 ファストパスを使用するには、プロジェクトから開始し、 AutoAIのインターフェイスを使用して、接地とテストの文書をアップロードします。 デフォルト設定を受け入れるか、実験設定を更新する。 あなたのユースケースに最適なRAGパターンを作成するために実験を実行する。

RAGパターンのコーディングにAutoAISDKを使用する

サンプルノートブックを使用して、watsonx.ai Python クライアントライブラリ (バージョン 1.1.11 以降) を使用して、ユースケースの自動 RAG ソリューションをコーディングする方法を学んでください。

詳細
Chromaデータベースを使ったRAGパターンの自動化
- watsonx.ai Python SDKのドキュメントファイルをRAGパターンの基礎ドキュメントとして使用します。
- ベクター化されたコンテンツを、デフォルトのインメモリChromaデータベースに格納します
MilvusでRAGパターンを自動化 - watsonx.ai Python SDK ドキュメント ファイルを RAG パターンの基礎ドキュメントとして使用します。
- ベクトル化されたコンテンツを外部の Milvus データベースに保存します

RAG実験の規模拡大

AutoAI automates the search for an optimized RAG pattern based on your grounding documents. もし、ドキュメントの知識ベースが実験で許可されたデータ制限を超えていたとしても、 AutoAI を使用してRAGパターンを見つけ、パターンを保存した際に自動生成されたインデックス作成ノートブックを使用して、さらに多くのドキュメントをインデックス化することができます。 RAGパターンは、より大きなインデックス付きドキュメントの集合に適用されます。

詳細は、 RAGパターンの保存を参照してください。

サポートされる機能

AutoAI RAGプロセスで提供される機能の詳細を確認してください。

機能 詳細
対応インターフェース API、UI
グランド・ドキュメント収集のためのファイル形式 PDF、HTML、DOCX、MD、プレーンテキスト
文書収集のためのデータ接続 IBM Cloud Object Storage (バケット)
バケット内のフォルダ
ファイル(最大20個)
データ・フォーマットのテスト 固定スキーマのJSON (フィールド: - question, correct_answer, correct_answer_document_ids)
テストデータ用データ接続 IBM Cloud Object Storage(単一の JSON ファイル) '
プロジェクトまたはスペース(データ資産)内の単一の JSON ファイル '
NFSストレージ・ボリューム内の単一の JSON ファイル
チャンク化 64-1024文字の複数のプリセット '
グラウンディング文書は、最適化されたサイズとオーバーラップでチャンクに分割されます。
モデルのエンベッド watsonx.aiで利用可能な埋め込みモデル
ベクトル・ストア Milvus ChromaDB
チャンク増加 有効(ドキュメントから周囲のチャンクを追加する)
検索タイプ スタンダード(単一インデックス)
生成モデル タスク別の財団モデルを見る
サンプリング ベンチマーク・ドリブン(最初に問題を選択し、次に文書を選択し、限界までランダムなもので埋める)
検索アルゴリズム ハイパーパラメータの最適化にはhyperoptライブラリのTree Parzen Estimator (TPE)を使用
メトリック 答えの正しさ、忠実さ、文脈の正しさ。 詳しくは
ユニテキスト語彙ラグ・メトリクス を参照のこと
最適化指標 最適化の対象となる指標。 正答率と忠実度はサポートされている。
カスタマイズ可能なユーザー制約 埋め込みモデル
生成モデル
設定数制限(最大出力パターン数 4~20)
デプロイメント Milvus: AutoAI notebooks for indexing and inference by using Milvus external vector database
Deployable AI service asset
Chroma: single AutoAI notebook for indexing and inferencing by using the Chroma in-memory vector database

次のステップ

親トピック 生成的AIソリューションのコーディング