見出し画像

LangChain の QAチェーンの自動評価ツール Auto-evaluator

「LangChain」の以下の記事が面白かったので、軽くまとめました。

Auto-Eval of Question-Answering Tasks

1. Auto-evaluator

「Auto-evaluator」は、「LangChain」のQAチェーンを評価するためのツールです。

「LangChain」などのLLMプラットフォームを使用すると、LLMコンポーネント (モデル、ドキュメントリトリーバー、データローダーなど) をチェーンに簡単に組み込むことができます。質問応答は、これらのチェーンの最も人気のあるアプリケーションの 1 つです。 しかし、多くの場合、どのパラメータ (チャンクサイズなど) またはコンポーネント (モデル、ベクトルデータベースなど) が最高のQAパフォーマンスをもたらすかを判断することは、必ずしも明確ではありません。そんな時に役立つのが、この「Auto-evaluator」になります。

2. Auto-evaluatorの使用手順

「Auto-evaluator」の使用手順は、次のとおりです。

(1) 関心のある一連のドキュメントを入力するようにユーザーに依頼。
(2) LLM (GPT-3.5-turbo) を使用して、これらのドキュメントから質問と回答のペアを自動生成。
(3) UIで構成を指定してQAチェーンを生成。
(4) QAチェーンを使用して、各質問への回答を生成。
(5) LLM (GPT-3.5-turbo) を使用して、回答をスコアリング。
(6) 様々なチェーン構成でのスコアリングを調べる。

3. ユーザー入力

「Auto-evaluator」は、ユーザーが一連のドキュメントを提供できるStreamlitアプリとして実装されます。必要に応じて、ユーザーは対応する一連の質問と回答のペアを指定することもできます (こちらの例を参照)。 ユーザーがこれを指定しない場合、アプリは「QAGenerationChain」を使用して評価セットを自動生成します。これに使用されるプロンプトはこちらで確認できます。これは、入力用にランダムなチャンクから質問と回答のペアを選択します。

4. チェーンの設定項目

UIには、QAチェーンの作成に使用できる様々な設定項目があります。 たとえば、新しいドキュメントリトリーバー (SVM など) を選択したり、VectorStoreで類似検索を使用したりできます。 文書の分割方法、分割サイズ、分割オーバーラップを選択できます。 取得したドキュメントから、質問に対する回答の最終的な要約に使用する LLM を選択することもできます。 これらの様々なピースは、「Langchain」を使用して評価用のチェーンにすばやく簡単に組み立てることができます。

5. スコアリング

LLM (GPT-3.5-turbo) を使用して、取得した「ドキュメント」または「評価セット」の品質をスコアリングします。プロンプトはこちらで確認でき、ユーザーは簡単にそれらを設計できます。 また、人間による検査のために結果を公開します。 記述プロンプトを使用して、LLM 採点者に評価の詳細な説明を求めることができます。

6. 比較

さまざまなテスト間で簡単に比較できるように、実験結果を蓄積します。表と、平均スコア (回答と検索) とモデルレイテンシ (秒単位) の散布図を示します。

7. 今後の方向性

他のリトリバー (LLama-Index など) や他のモデル (さまざまな HuggingFace モデルなど) を含めたいと考えています。 評価プロセスのさまざまな段階のパフォーマンス (特にレイテンシーなど) を改善し、これを無料のホストツールとして提供したいと考えています (一部のユーザーは現在 GPT-4 または Claude にアクセスできないため)。 最後に、これを他のタスク (チャットなど) に拡張し、ユーザーが指定した目的 (チャットや QA の目標など) が与えられた場合に、最適なチェーン アセンブリ (エージェントの使用など) のプロセスを自動化したいと考えています。

8. 実行手順

PCでの実行手順は、次のとおりです。

(1) PCの環境変数「OPENAI_API_KEY」にOpenAI APIのトークンを指定。
macOSでは「.zshrc」に以下を追加しました。

export OPENAI_API_KEY=<OpenAI_APIキー>

(2) Pythonの仮想環境を準備して、パッケージのインストール。

$ git clone https://github.com/PineappleExpress808/auto-evaluator
$ cd auto-evaluator
$ pip install -r requirements.txt
$ pip install streamlit

(3) 実行。

$ streamlit run auto-evaluator.py

(4) ドキュメント(txt)とQA(json)を指定し、Submit filesを押す。
QA(JSON)を指定しないと自動生成されますが、英語回答になることもあるため、以下の方法で準備しました。

(5) 結果の確認。

関連



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