ワークフローをカスタマイズする事で、あらゆるタスクに対応可能なマルチエージェントフレームワークが登場!
3つの要点
✔️ 人間・LLM・ツールの組み合わせによる一連のワークフローのカスタマイズが可能なマルチエージェントフレームワークであるAutoGenを提案
✔️ 開発者が各バックエンドの機能を自由に拡張することで様々なタスクに対応可能に
✔️ 既存モデルとの比較実験により、AutoGenの有効性を実証
AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation Framework
written by Qingyun Wu, Gagan Bansal, Jieyu Zhang, Yiran Wu, Shaokun Zhang, Erkang Zhu, Beibin Li, Li Jiang, Xiaoyun Zhang, Chi Wang
(Submitted on 16 Aug 2023)
Comments: Published on arxiv.
Subjects: Artificial Intelligence (cs.AI); Computation and Language (cs.CL)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
GPT-4のような大規模言語モデル(LLM)の登場により、コーディング・質問応答・チャットボットなどにおいて卓越した性能を持つAIアプリケーションが登場しただけでなく、LLMによって生成されるAIエージェントのタスク解決能力に注目が集まっています。
しかし、既存研究で多く用いられてきたシングルエージェントの場合、単純なタスクを効率的にこなすことができる一方で、複雑なタスクをこなすことが難しいという問題点がありました。
近年、この問題点を解決するためにエージェント同士または人間とエージェントが自然言語による会話を通じてタスクを行うマルチエージェントシステムが主流になっている一方で、その複雑なワークフローを設計・実装・最適化するのは非常に困難となっていました。
本稿では、こうした背景から人間・LLM・ツールの組み合わせによる一連のワークフローをカスタマイズすることで様々な役割を持つエージェントの作成を可能にし、開発者が各バックエンドの機能を自由に拡張することが可能なマルチエージェントフレームワークであるAutoGenを提案した論文について解説します。
AutoGen Framework
AutoGenは下図のような2体のエージェント同士によるタスク解決のように、人間・LLM・ツールを含む様々なマルチエージェントシステムを構築することができるフレームワークになっています。
AutoGenが複雑なマルチエージェントシステムを構築するには、以下の2点を定義する必要があります。
- 特定の能力と役割を持つ会話可能なエージェントのセットを定義する
- エージェント間のインタラクション、つまりエージェントが他のエージェントからメッセージを受け取った時にどのように応答するかを定義する
加えてAutoGenに組み込まれているエージェント機能によりマルチエージェントシステムを構築する場合、AutoGenの組み込みエージェントを直接利用することも、それをベースにカスタマイズしたエージェントを開発することもできます。
下図はAutoGenの組み込みエージェントの概要になります。
それぞれのエージェントの下のLLM・人間・ツールのマークを見てもらうとわかるように、ResponsiveAgentはデフォルトのエージェントであり、LLM・人間・ツールを自由に組み合わせることができます。
AssistantAgentはAIアシスタントとして動作するように設計されており、LLMを使用してメッセージに応答しますが、人間による入力やコードの実行は必要ありません。
UserProxyAgentは人間の代理のためのエージェントとして動作するように設計されており、デフォルトではインタラクションの各ターンで人間の入力を必要とし、人間またはツールによってメッセージに応答します。
GroupChatManagerはLLMを使用し、AutoGenの会話可能なエージェントグループを管理することで、グループチャットでのメッセージを応答します。
このような組み込みエージェントによる設計により、AutoGenは下図に示すようにLLM・人間・ツールの組み合わせを自由にカスタマイズでき(Agent Customization)、タスク解決のためにエージェント間で会話を行うことができ(Multi-Agent Conversations)、数多くの複雑なエージェント同士の会話パターンのサポートが可能となっています(Flexible Conversation Patterns)。
Applications of AutoGen
本論文ではAutoGenの有効性を実証するために、様々なタスクを用いた検証を行いました。
Math Problem Solving
数学は学問における基礎的な科目であり、LLMを活用することでパーソナライズされたエージェントによる指導や研究支援などの様々な応用が考えられます
そこで本実験では、AutoGen・Auto-GPT・ChatGPT+Plugin・ChatGPT+Code Interpreter・LangChain ReActの5つのモデルと数学問題のデータセットであるMATH datasetを用いた比較実験を行いました。
数学の問題を解くために使用したAutoGenの設定は下図のようになっています。
ここではStudentとStudent Assistantが協力して問題を解き、Student Assistantが自身の回答が納得いくものではない場合にのみ、Expert Assistantに設定された別のエージェントに助けを求めることができるというワークフローになっています。
MATH datasetの2パターンの数学問題に対する正答率は下図のようになりました。(それぞれの問題に対して3回ずつテストしています)
図からわかるようにAutoGenが全モデルで最も高い正答率になり、数学問題に対しての有効性を実証する結果となりました。
Multi-agent Coding
次に、ユーザーの質問に対して適切なコードを書くことに優れたフレームワークであるOptiGuideに焦点を当てたマルチエージェントによるコーディングテストを行いました。
OptiGuideはLLMと外部ツールを使用してアプリケーションに関連するユーザーの質問に効果的に対応するフレームワークであり、本実験では下図のようなワークフローを設計しています。
本ワークフローでは、はじめにCommanderがユーザーの質問を受け取り、次にWriterとSafeguardと会話を行います。
その後、Writerは回答とコードを作成し、Safefuardが(情報を漏らさない、悪意のあるコードを使わない等の)安全性を確保し、Commanderがコードを実行します。
コードの実行などに問題が発生した場合は、図の網掛け部分のプロセスを問題が解決するまで繰り返すことになります。
本実験はAutoGenとChatGPT+Code Interpreterの比較実験となっており、それぞれのモデルに対して"What if the roasting cost is increased by 5% because of the potential salary increase?"と質問をしています。
ChatGPT+CodeInterpreterの結果は下図のようになりました。
結果として、ChatGPT+CodeInterpreterはプライベートパッケージやカスタマイズされた依存関係(Gurobiなど)を持つコードを実行することができず、ワークフローが中断されてしまっています。
一方、AutoGenの結果は下図のようになりました。
ChatGPT+CodeInterpreterとは対照的に、AutoGenによる応答はより合理的かつ自律的であり、複数のエージェントを統合して問題に対処しているため、安定したワークフローを実現しています。
このような安定したワークフローにより他のアプリケーションへの再利用や、より大きなアプリケーションを構成することが可能であり、本実験よりAutoGenの優れたコーディング性能が実証されました。
Conversational Chess
チェスは間違いなく世界で最も人気のあるボードゲームであり、本実験ではAutoGenの有効性を実証するため、自然言語インターフェースをサポートする新しいチェスゲームであるConversational Chessを設計しました。
Conversational ChessにおけるAutoGenのワークフローを下図に示します。
各プレイヤーは人間またはAutoGenにより生成されたエージェント(Human/Chess Player)であり、Chass Boardに設定されたエージェントがゲームのルールを管理し、ボードに関する情報を提供する事でプレイヤーをサポートします。
本実験では、2体のエージェント同士で試合が行われ、下図のような場面が見られました。
前述した多くのエージェントシステムと同様に、本ワークフローにより各プレイヤーは会話によって情報や知識を共有し、お互いの能力を補い合い、より良い一手を選択できていることが確認できました。
まとめ
いかがだったでしょうか。今回は、人間・LLM・ツールの組み合わせによる一連のワークフローをカスタマイズすることで様々な役割を持つエージェントの作成を可能にし、開発者が各バックエンドの機能を自由に拡張することが可能なマルチエージェントフレームワークであるAutoGenを提案した論文について解説しました。
AutoGenをタスクによってカスタマイズすることで、本論文で行われた実験のように様々なタスクに対応することが可能である一方で、
- 何体のエージェントを含めるか
- エージェントの役割と能力をどのように割り当てるか
- ワークフローの特定の部分を自動化するかどうか
などの構成はアプリケーションに依存するといった課題もあり、今後の進展に注目が集まります。
今回紹介したAutoGenのアーキテクチャや実験結果の詳細は本論文に載っていますので、興味がある方は参照してみてください。
この記事に関するカテゴリー