新機能RAGsの紹介: 自分のデータを使って独自のChatGPT環境を作るツール
Clip source: Introducing RAGs: Your Personalized ChatGPT Experience Over Your Data | by Jerry Liu | Nov, 2023 | LlamaIndex Blog
本日は、RAGsを紹介します。これはStreamlitアプリで、自分自身のRAGパイプラインを作成・カスタマイズし、自分のデータで使用できるようにするものです。これは、コードを書く必要なく「自分のデータ上のChatGPT」を設定できることを意味します。
RAGパイプラインの設定とクエリは、以下の3つの簡単なステップで行います:
簡単なタスク記述:タスクを簡単に記述(例えば「このウェブページを読み込む」)し、RAGシステムのパラメータを定義します(例えば、特定の数のドキュメントを取得するなど)。
設定可能な設定:設定ビューに入り、自動生成されたパラメータ(トップk検索、要約オプションなど)を確認し、変更します。
インタラクティブなRAGエージェント:設定が完了したら、RAGエージェントと対話し、質問をして、自分のデータに基づいた回答を得ることができます。
このアプリは、技術的でないユーザーと技術的なユーザーの両方に向けて設計されています。技術的でない場合でも、リポジトリをクローンしてpipでインストールする必要がありますが、内部の動作について心配する必要はありません。一方、技術的なユーザーであれば、特定のパラメータ設定(例:トップk、データなど)を検査し、カスタマイズすることができます。
概要
このアプリは、次のセクションによって構成されてます。
[1] 🏠ホームページ¥
ここでは、「ビルダーエージェント」に指示を出してRAGパイプラインを構築します。通常、RAGパイプラインを設定するには以下のコンポーネントが必要です:
データセットの記述:現在、単一のローカルファイルまたはウェブページをサポートしています。ここでの提案も歓迎します!
タスクの定義:ここでのあなたの記述は、RAGパイプラインを動かすLLM(大規模言語モデル)の「システムプロンプト」を初期化します。
RAGパラメータの設定:トップk検索、チャンクサイズ、要約オプションなど、典型的なRAG設定パラメータを構成します。以下にパラメータの完全なリストを示します。
[2] ⚙️ RAG Config: 環境の編集
基本設定を行った後、RAGの設定セクションに移ります。このアプリの部分では、UIを提供し、以下の操作が可能です:
生成されたパラメータの表示:ビルダーエージェントは、初期設定に基づいてパラメータを提案してくれます。
編集とカスタマイズ:RAGエージェントが正確に必要とする動作ために、これらの設定は自由に調整可能です。
エージェントの更新:「エージェントの更新」ボタンを押すことで、あなたが行った変更を即座に適用できます。
現在のパラメータセットは以下の通りです:
システムプロンプト
要約の含有:トップk検索のみを行うのではなく、要約ツールも追加するかどうか。
トップK
チャンクサイズ
埋め込みモデル
LLM(大規模言語モデル)
[3] 🤖RAG Agentの生成: データとのコミュニケーション
RAGs体験の最終部分は、生成されたRAGエージェントのセクションです。以下が実行できます:
インタラクティブなチャットボットインターフェース:ChatGPTのように、RAGエージェントとの会話が可能になります。
データ駆動型の応答:エージェントは、top-kベクター検索とオプションである要約ツールを利用して、基礎となるデータに基づいてクエリに回答します。
シームレスな統合:エージェントは動的に適切なツールを選択し、データセットとのスムーズで知的な対話を実現します。
アーキテクチャ
次のフォローアップ機能でアーキテクチャについて詳しく説明しますが、高レベルでの概要は以下の通りです:
ビルダーツールを備えたビルダーエージェントがあります。これらはRAGパイプラインを構築するために必要なツールです。
ビルダーエージェントはこれらのツールを使用して設定状態を設定します。初期の会話フローの終わりに、これらのパラメータはRAGエージェントを初期化するために使用されます。
サンプルアプリの紹介
インストールとセットアップ
RAGsを起動して実行するのは簡単です:
RAGsプロジェクトを複製し、ragsプロジェクトフォルダに移動します:
必要なパッケージをインストールします:
pip install -r requirements.txt
アプリを起動します:
streamlit run 1__Home.py
RAG Agentをビルドする
以下の図では、RAGパイプラインを「構築」するための一連のコマンドを示しています。
チャットボットを構築したいと宣言します。
データセットを定義する(ここではウェブページですが、ローカルファイルも可能)
タスクを定義する
パラメータを定義する(チャンクサイズ512、top-k=3)
ホームページのスクリーンショット — RAGエージェントを構築する
設定情報を見る
以下のページで生成された設定を確認し、必要に応じて閲覧・編集することができます!
E.g. include_summarization をTrue に設定する。
実際にテストする
これで質問をする環境が整いました。具体的な質問だけでなく、要約に関する質問も可能です。
これは、必要な質問に答えるためにベクター検索と要約ツールの両方を使用します。
まとめ
一般的に、RAGsは、LLM(大規模言語モデル)アプリケーションが自然言語によって構築され、それによって動かされる世界への初歩的な取り組みです。皆さんの考えやフィードバックをお聞かせください!
リソース
RAGs repo: https://github.com/run-llama/rags
この記事が気に入ったらサポートをしてみませんか?