Azure Machine Learning プロンプト フローを使用した取得拡張生成 (プレビュー)
重要
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。
詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
取得拡張生成 (RAG) は、事前トレーニング済みの大規模言語モデル (LLM) と 独自のデータ を使用して応答を生成するパターンです。 Azure Machine Learning では、プロンプト フローで RAG を実装できるようになりました。 RAG のサポートはパブリック プレビュー段階にあります。
この記事では、RAG の利点の一部を示し、技術的な概要と、Azure Machine Learning での RAG サポートについて説明します。
注意
LLM と RAG の概念は初めてですか? Microsoft プレゼンテーションのこの ビデオ クリップ は、簡単な説明を提供します。
RAG を使用する理由
従来、基本モデルはポイントインタイム データを使用してトレーニングされ、特定のタスクを実行し、目的のドメインに適応する効果を確実にします。 ただし、新しいデータや最新のデータを操作する必要がある場合があります。 基本モデルを補完する方法として、新しいデータを使用したベース モデルの微調整またはさらにトレーニング、またはプロンプト エンジニアリングを使用してモデルをリアルタイムで補完またはガイドする RAG という 2 つの方法があります。
微調整は、継続的なドメイン適応に適しており、モデルの品質を大幅に向上させますが、多くの場合、コストが高くなります。 一方、RAG には別のアプローチが用意されており、プロンプトで提供された新しいデータに対して推論エンジンと同じモデルを使用できます。 この手法により、コストのかかる微調整を必要とせずにコンテキスト内学習が可能になり、企業はより効率的に LLM を使用できるようになります。
RAG を使用すると、企業はデータの関連性を維持し、コストを最適化しながら、カスタマイズされたソリューションを実現できます。 RAG を採用することで、企業は LLM の推論機能を使用し、既存のモデルを利用して、新しいデータに基づいて応答を処理および生成できます。 RAG により、微調整を必要とせずに定期的なデータ更新を行うことが容易になり、LLM のビジネスへの統合が合理化されます。
- 補足データをディレクティブまたはプロンプトとして LLM に提供する
- 既存のモデルにファクト チェック コンポーネントを追加します
- 微調整に関連する余分な時間とコストを発生させずに、最新のデータでモデルをトレーニングする
- ビジネス固有のデータをトレーニングします
大規模言語モデル (LLM) での RAG の使用に関する技術的な概要
情報の取得では、RAG は LLM の機能を独自のデータで活用できるアプローチです。 LLM がカスタム データにアクセスできるようにするには、次の手順を実行します。 まず、大きなデータを管理可能な部分にチャンクする必要があります。 次に、チャンクを検索可能なフォームに変換する必要があります。 第三に、変換されたデータは、効率的なアクセスを可能にする場所に格納する必要があります。 さらに、LLM が応答を提供する場合は、引用や参照に関連するメタデータを格納することが重要です。
図を詳しく見てみましょう。
ソース データ: データが存在する場所です。 これは、マシン上のファイル/フォルダー、クラウド ストレージ内のファイル、Azure Machine Learning データ資産、Git リポジトリ、または SQL データベースのいずれかです。
データのチャンキング: ソース内のデータをプレーンテキストに変換する必要があります。 たとえば、単語文書や PDF を開いてテキストに変換する必要があります。 その後、テキストはより小さな部分にチャンクされます。
テキストをベクターに変換する: embeddings と呼ばれます。 ベクトルは、数値シーケンスに変換された概念の数値表現であるため、コンピューターはそれらの概念間の関係を簡単に理解できます。
ソース データと埋め込みの間のリンク: この情報は、作成されたチャンクのメタデータとして格納されます。これは、応答の生成中に LLM が引用を生成するのに役立ちます。
Azure Machine Learning での RAG (プレビュー)
Azure Machine Learning の RAG は、大規模な言語モデルとベクター化のための Azure OpenAI Service との統合によって有効になり、Faiss とベクター ストアとしての Azure AI Search (旧称 Cognitive Search) がサポートされ、データ チャンク用の LangChain などのオープンソース オファリングのツールとフレームワークがサポートされます。
RAG を実装するには、いくつかの重要な要件を満たす必要があります。 まず、データを LLM に送信する前に効率的な検索を可能にする方法で書式設定する必要があります。これにより、最終的にトークンの消費量が削減されます。 RAG の効果を確実にするには、データを定期的に更新することも重要です。 さらに、データを使用して LLM からの出力を評価する機能のおかげで、手法の有効性を測定できます。 Azure Machine Learning を使用すると、これらのアスペクトを簡単に開始できるだけでなく、RAG を改善して運用することもできます。 Azure Machine Learning では次のものが提供されます。
- RAG ベースの Q&A シナリオを開始するためのサンプル。
- データを作成および管理し、プロンプト フローに組み込むためのウィザードベースの UI エクスペリエンス。
- テスト データ生成、自動プロンプト作成、視覚化されたプロンプト評価メトリックなど、RAG ワークフローを測定および強化する機能。
- ノートブックでカスタム パイプラインを作成するための新しい組み込みの RAG コンポーネントを使用して、より詳細な制御を行う高度なシナリオ。
- コード エクスペリエンス。これにより、LangChain などのオープンソース オファリングで作成されたデータを利用できます。
- パイプラインとジョブを使用した MLOps ワークフローと RAG ワークフローのシームレスな統合。
まとめ
Azure Machine Learning を使用すると、Azure Machine Learning スタジオを使用するか、Azure Machine Learning パイプラインでコードを使用して、RAG を AI に組み込むことができます。 RAG ワークフローの測定と強化、テスト データの生成、プロンプトの自動作成、プロンプト評価メトリックの視覚化など、いくつかの付加価値が提供されます。 パイプラインを使用して、RAG ワークフローを MLOps ワークフローに統合できます。 また、LangChain などのオープンソース オファリングでデータを使用することもできます。
次の手順
Azure Machine Learning でベクター ストアを使用する (プレビュー)
Azure Machine Learning プロンプト フローでベクター インデックスを作成する方法 (プレビュー)