AutoAI を使用して、お客様のデータとユースケースに基づいて、最適化された実用レベルのRAG(Retrieval-augmented generation)パターンを自動的に検索し、高速化します。
- データ・フォーマット
- PDF、HTML、DOCX、MD、またはプレーンテキスト形式の文書コレクションファイル
- JSON形式の質問と回答を含むテストデータ
- データファイルの制限
- ドキュメントコレクションは最大20ファイルまたはフォルダ
- テストデータ用のJSONファイル1つ
- 環境サイズ
- 大規模: 8 個の CPU および 32 GB の RAM
検索補強型生成で正確な回答を提供
検索補強型生成(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 データベースに保存します |
サポートされる機能
AutoAI RAG プロセスのベータ版リリースで提供される機能について、これらの詳細を確認してください。
機能 | 説明 |
---|---|
対応インターフェース | API |
グランド・ドキュメント収集のためのファイル形式 | PDF、HTML、DOCX、プレーンテキスト |
文書収集のためのデータ接続 | 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 Milvusベクトルデータベースを使用したインデックス作成と推論AutoAI Chroma:Chromaインメモリベクトルデータベースを使用したインデックス作成と推論AutoAI |
今後のステップ
- ベクター化したドキュメントをどこに保存するかについては、ベクターストアの選択を参照してください。
- RAG実験の作成(fastpath)を参照
親トピック 生成的AIソリューションのコーディング