AutoAI を使用して、お客様のデータとユースケースに基づいて、最適化された実用レベルのRAG(Retrieval-augmented generation)パターンを自動的に検索し、高速化します。
- データ・フォーマット
- PDF、HTML、DOCX、MD、またはプレーンテキスト形式の文書コレクションファイル
- JSON形式の質問と回答を含むテストデータ
- データファイルの制限
- 文書コレクションには、最大20個のファイルまたはフォルダを登録できます。 より大きな文書コレクションについては、 AutoAI は1GBのサンプルで実験を行っています。
- テストデータ用のJSONファイル1つ。 実験では、最大25の質問と回答のペアを使用してパターンを評価します。
- 環境サイズ
- 大規模: 8 個の CPU および 32 GB の RAM
RAGパターンに必要なコストの見積もり
AutoAI for RAG experiments use both Capacity Unit Hours (CUH) for training the experiment, and Resource Units (RU) to measure the tokens consumed for embedding documents and inferencing the foundation models.
- CUHは、サポート対象環境では1時間あたり20 CUHの標準的な測定値です。 実験で消費されるCUHは、実験の複雑さとパターンを学習するのに必要な時間に依存します。
- RUの消費量は、以下を含む多くの要因に左右されます
- 埋め込み用ドキュメントコレクションのサイズ
- 埋め込む評価問題と回答の数
- チャンキング構成、この式で計算:
((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 |
この実験で消費された総資源単位( tokens/100 )は3267 RUです。
検索補強型生成で正確な回答を提供
検索補強型生成(RAG)は、大規模な言語モデルの生成能力と、根拠となる文書コレクションの精度を組み合わせたものである。 RAGアプリケーションとのやりとりはこのパターンに従う:
- ユーザーがアプリに質問を投稿する。
- 検索はまず、根拠となる文書群から関連するコンテキストを検索する。
- 付随する大規模な言語モデルは、関連する情報を含む回答を生成する。
例えば、この機能で提供されるサンプルノートブックでは、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 RAG最適化プロセス
AutoAIRAGを使用して実験を実行すると、ハイパーパラメータ最適化アルゴリズムを使用することにより、すべてのRAG設定オプションのテストを回避することができます(例えば、グリッド検索を回避することができます)。 以下の図は、16のRAGパターンから選択できるRAGコンフィギュレーション検索空間のサブセットを示している。 実験がそれらすべてを評価した場合、1~16のランク付けが行われ、最高ランクの3つのコンフィギュレーションがベストパフォーマンスとしてタグ付けされる。 最適化アルゴリズムは、どの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 |
今後のステップ
- ベクター化したドキュメントをどこに保存するかについては、ベクターストアの選択を参照してください。
- RAG実験の作成(fastpath)を参照
親トピック 生成的AIソリューションのコーディング