EcoAssistant: LLM アシスタントをより手頃な価格で正確に使用する
AutoGen Web サイトのブログをチェックしてください。
最新の AutoGen を使用した簡易バージョンはsimplified_demo.py
にあります。
EcoAssistant は、LLM アシスタントをより手頃な価格で、コード駆動の質問応答を正確に行うことができるフレームワークです。これは、アシスタント階層とソリューションのデモンストレーションの概念に基づいています。 AutoGen に基づいて構築されています。
LLM アシスタントは、ChatGPT や GPT-4 などの会話型 LLM によってサポートされるアシスタント エージェントであり、会話内のユーザー クエリに対処できます。
コード駆動型の質問応答は、LLM アシスタントが質問に答えるために外部 API を呼び出すコードを記述する必要があるタスクです。たとえば、「今後 5 日間の都市 X の平均気温はどれくらいですか?」という質問が与えられた場合、アシスタントは特定の APIS 経由で気象情報を取得し、次の都市 X の平均気温を計算するコードを記述する必要があります。 5日。
人間と同じように、LLM は最初の試行で正しいコードを書くことがほとんどできないため、コード駆動型の質問応答には反復コーディングが必要です。したがって、アシスタントはユーザーと対話してフィードバックを取得し、コードが正しくなるまで繰り返しコードを修正する必要があります。私たちは2 つのエージェントによる会話フレームワーク上にシステムを構築しました。このフレームワークでは、LLM アシスタントが、自動的にコードを実行して出力を LLM アシスタントに返すことができるコード実行エージェントと結合されています。
アシスタント階層はアシスタントの階層であり、LLM アシスタントはコストによってランク付けされます (例: GPT-3.5-turbo -> GPT-4)。ユーザーのクエリに対処するとき、EcoAssistant はまず最も安価なアシスタントにクエリに答えるように依頼します。失敗した場合にのみ、より高価なアシスタントを呼び出します。高価なアシスタントの使用を減らしてコストを節約するように設計されています。
ソリューションのデモンストレーションは、過去に成功したクエリとコードのペアを活用して将来のクエリを支援する手法です。クエリが正常に処理されるたびに、クエリとコードのペアがデータベースに保存されます。新しいクエリが来ると、最も類似したクエリをデータベースから取得し、そのクエリとその関連コードをコンテキスト内のデモンストレーションとして使用します。過去に成功したクエリとコードのペアを活用して精度を向上させるように設計されています。
アシスタント階層とソリューションのデモンストレーションを組み合わせると、特定の設計を行わなくても、高性能モデルのソリューションが自然に利用されて弱いモデルをガイドできるため、個々の利点が増幅されます。
天気、株価、場所に関するクエリについては、EcoAssistant は、GPT-4 の 50% 未満のコストで、個々の GPT-4 アシスタントを 10 ポイント上回る成功率を実現しました。詳細については、論文をご覧ください。
すべてのデータはこのリポジトリに含まれています。
keys.json
に API キーを設定するだけです。
必要なライブラリをインストールします (Python3.10 を推奨します)。
pip3 install -r requirements.txt
例としてMixed-100データセットを使用します。他のデータセットの場合は、次のコマンドでデータセット名を google_places/stock/weather/mixed_1/mixed_2/mixed_3 に変更するだけです。
出力結果はresults
フォルダーにあります。
次のコマンドは、セクション 4.5 で説明されている人間によるフィードバックのない自律システム用です。
GPT-3.5-turbo アシスタントを実行する
python3 run.py --data mixed_100 --seed 0 --api --model gpt-3.5-turbo
GPT-3.5 ターボ アシスタント + 思考の連鎖を実行する
cot
電源を入れる
python3 run.py --data mixed_100 --seed 0 --api --cot --model gpt-3.5-turbo
GPT-3.5-turbo アシスタント + ソリューションのデモを実行する
solution_demonstration
オンにする
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo
アシスタント階層を実行します (GPT-3.5-turbo + GPT-4)
model
gpt-3.5-turbo,gpt-4
に設定します
python3 run.py --data mixed_100 --seed 0 --api --model gpt-3.5-turbo,gpt-4
EcoAssistant の実行: アシスタント階層 (GPT-3.5-turbo + GPT-4) + ソリューションのデモ
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo,gpt-4
人間によるフィードバックを有効にする
人間が判断するシステムの場合は、次のコマンド例のようにeval
human
(デフォルトではllm
) に設定してください。
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo,gpt-4 --eval human
セクション 4.4 の説明に従って、収集した Mixed-100 のゴールド コードを実行します。
このスクリプトはコード出力を出力します。
python3 run_gold_code_for_mix_100.py
このリポジトリが役立つと思われる場合は、以下を引用することを検討してください。
@article { zhang2023ecoassistant ,
title = { EcoAssistant: Using LLM Assistant More Affordably and Accurately } ,
author = { Zhang, Jieyu and Krishna, Ranjay and Awadallah, Ahmed H and Wang, Chi } ,
journal = { arXiv preprint arXiv:2310.03046 } ,
year = { 2023 }
}