見出し画像

新機能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つの簡単なステップで行います:

  1. 簡単なタスク記述:タスクを簡単に記述(例えば「このウェブページを読み込む」)し、RAGシステムのパラメータを定義します(例えば、特定の数のドキュメントを取得するなど)。

  2. 設定可能な設定:設定ビューに入り、自動生成されたパラメータ(トップk検索、要約オプションなど)を確認し、変更します。

  3. インタラクティブなRAGエージェント:設定が完了したら、RAGエージェントと対話し、質問をして、自分のデータに基づいた回答を得ることができます。

    1. このアプリは、技術的でないユーザーと技術的なユーザーの両方に向けて設計されています。技術的でない場合でも、リポジトリをクローンしてpipでインストールする必要がありますが、内部の動作について心配する必要はありません。一方、技術的なユーザーであれば、特定のパラメータ設定(例:トップk、データなど)を検査し、カスタマイズすることができます。

概要

このアプリは、次のセクションによって構成されてます。

[1]  🏠ホームページ¥

ここでは、「ビルダーエージェント」に指示を出してRAGパイプラインを構築します。通常、RAGパイプラインを設定するには以下のコンポーネントが必要です:

  1. データセットの記述:現在、単一のローカルファイルまたはウェブページをサポートしています。ここでの提案も歓迎します!

  2. タスクの定義:ここでのあなたの記述は、RAGパイプラインを動かすLLM(大規模言語モデル)の「システムプロンプト」を初期化します。

  3. RAGパラメータの設定:トップk検索、チャンクサイズ、要約オプションなど、典型的なRAG設定パラメータを構成します。以下にパラメータの完全なリストを示します。

[2] ⚙️ RAG Config: 環境の編集

基本設定を行った後、RAGの設定セクションに移ります。このアプリの部分では、UIを提供し、以下の操作が可能です:

  • 生成されたパラメータの表示:ビルダーエージェントは、初期設定に基づいてパラメータを提案してくれます。

  • 編集とカスタマイズ:RAGエージェントが正確に必要とする動作ために、これらの設定は自由に調整可能です。

  • エージェントの更新:「エージェントの更新」ボタンを押すことで、あなたが行った変更を即座に適用できます。

現在のパラメータセットは以下の通りです:

  • システムプロンプト

  • 要約の含有:トップk検索のみを行うのではなく、要約ツールも追加するかどうか。

  • トップK

  • チャンクサイズ

  • 埋め込みモデル

  • LLM(大規模言語モデル)

[3]  🤖RAG Agentの生成: データとのコミュニケーション

RAGs体験の最終部分は、生成されたRAGエージェントのセクションです。以下が実行できます:

  • インタラクティブなチャットボットインターフェース:ChatGPTのように、RAGエージェントとの会話が可能になります。

  • データ駆動型の応答:エージェントは、top-kベクター検索とオプションである要約ツールを利用して、基礎となるデータに基づいてクエリに回答します。

  • シームレスな統合:エージェントは動的に適切なツールを選択し、データセットとのスムーズで知的な対話を実現します。

アーキテクチャ

次のフォローアップ機能でアーキテクチャについて詳しく説明しますが、高レベルでの概要は以下の通りです:

  • ビルダーツールを備えたビルダーエージェントがあります。これらはRAGパイプラインを構築するために必要なツールです。

  • ビルダーエージェントはこれらのツールを使用して設定状態を設定します。初期の会話フローの終わりに、これらのパラメータはRAGエージェントを初期化するために使用されます。

サンプルアプリの紹介

インストールとセットアップ
RAGsを起動して実行するのは簡単です:

  1. RAGsプロジェクトを複製し、ragsプロジェクトフォルダに移動します:

    1. https://github.com/run-llama/rags

  2. 必要なパッケージをインストールします:

pip install -r requirements.txt

  1. アプリを起動します:

streamlit run 1__Home.py

RAG Agentをビルドする

以下の図では、RAGパイプラインを「構築」するための一連のコマンドを示しています。

  1. チャットボットを構築したいと宣言します。

  2. データセットを定義する(ここではウェブページですが、ローカルファイルも可能)

  3. タスクを定義する

  4. パラメータを定義する(チャンクサイズ512、top-k=3)

ホームページのスクリーンショット — RAGエージェントを構築する

RAGエージェントを構築するためのパラメータを設定するためのフォローアップ質問

設定情報を見る

以下のページで生成された設定を確認し、必要に応じて閲覧・編集することができます!
E.g. include_summarization をTrue に設定する。

実際にテストする

これで質問をする環境が整いました。具体的な質問だけでなく、要約に関する質問も可能です。
これは、必要な質問に答えるためにベクター検索と要約ツールの両方を使用します。

特定の詳細に関する質問(ベクター検索を実行)
ドキュメント全体にわたる要約に関する質問

まとめ

一般的に、RAGsは、LLM(大規模言語モデル)アプリケーションが自然言語によって構築され、それによって動かされる世界への初歩的な取り組みです。皆さんの考えやフィードバックをお聞かせください!

リソース

RAGs repo: https://github.com/run-llama/rags

この記事が気に入ったらサポートをしてみませんか?