HOME/ AINOW編集部 /AutoGen:次世代の大規模言語モデルアプリケーションを可能にする
2023.12.07

AutoGen:次世代の大規模言語モデルアプリケーションを可能にする

最終更新日:

Microsoft Researchが公開した公式ブログ記事『AutoGen:次世代の大規模言語モデルアプリケーションを可能にする』では、LLMアプリ開発のフレームワークであるAutoGenが紹介されています。
AutoGenとは、ユーザの代わりに会話をはじめとするさまざまなタスクを遂行するAIエージェントの一種である、プロキシエージェントを組み込んだLLMアプリを可能とするフレームワークを指します。AutoGenを活用すれば、ユーザはプロキシエージェントと協働することで複雑なタスクを遂行できるようになります。こうしたフレームワークを活用したLLMアプリの事例には、以下のようなものが考えられます。

AutoGen活用LLMアプリの事例

AutoGen活用LLMアプリ概要

アプリの仕様

高度なコード生成 LLMによるコード生成において、コードの生成とコードの安全性確認を担当するAIエージェントをそれぞれ設定したうえで、これらのタスクをまとめるコマンダー(指揮官)エージェントを活用して安全なコードを生成する。
高度なデータ分析 人間ユーザがデータ分析に関してLLMに質問した際、データ分析に必要なツールのインストール等を実行するプロキシエージェントを設定して、高度なデータ分析タスクの一部を自動化する。
会話型チェス チェスの指し手に関する会話を担当するプロキシエージェントを設定することで、会話によるチェスの対局を可能とする。このチェスゲームにおけるプレイヤーには、人間、AI、そして人間とAIが協力するハイブリッドが想定されている。
高度なグループチャット マネージャーと呼ばれるプロキシエージェントを設定したうえで、このマネージャーが任意のチャットメンバーに発言を求め、その発言をほかのチャットメンバーに配信する。

以上のようなLLMアプリを可能とするAutoGenはPythonパッケージとして無料で利用できます。AutoGenは、2024年に運営が始まるOpen AIのGPTストアで公開されるアプリで多用されるかも知れません。

翻訳記事本文の後に、付録としてAutoGen公式サイトに掲載されている活用事例集と会話パターン集を引用します。

以下の翻訳記事の理解と解釈は、翻訳者およびAINOW編集部の責任において行われたものです。また、翻訳記事の内容は特定の国や地域を代表するものではなく、翻訳者およびAINOW編集部の主義主張を表明したものでもありません。
以下の翻訳記事を作成するにあたっては、日本語の文章として読み易くするために、意訳やコンテクストを明確にするための補足を行っています。

図1. AutoGenは、マルチエージェントの会話を使用して、複雑なLLMベースのワークフローを可能にする。(左)AutoGenエージェントはカスタマイズ可能で、LLM、ツール、人間、さらにはそれらの組み合わせをベースにできる。(右上)エージェントはタスクを解決するために会話できる。(右下)フレームワークは、さらに多くの複雑な会話パターンをサポートしている。

はじめに

「AutoGenのような機能によって、大規模言語モデルの能力が根本的に変革され、拡張する準備が整う。これは、私が最近見たAIのなかで最もエキサイティングな開発のひとつだ。」

Microsoftテクニカルフェロー、ダグ・バーガー(Doug Burger)氏の発言

大規模言語モデル(LLM)の可能性を最大限に活用できるワークフローを設計、実装、最適化するには、多くの労力と専門知識が必要となる。これらのワークフローを自動化することは、非常に大きな価値がある。開発者がますます複雑なLLMベースのアプリケーションを作成し始めると、ワークフローは必然的に複雑になる。そのようなワークフローの潜在的な設計空間は広大かつ複雑になる可能性があるため、ロバストなパフォーマンスで最適なワークフローを編成するという課題がより切実なものとなる。

AutoGenは、LLMワークフローの編成、最適化、自動化を簡素化するフレームワークである。このフレームワークは、カスタマイズと会話が可能なエージェントの提供を通して、GPT-4のような最も先進的なLLMの強力な機能を活用する。そして、自動化されたチャットによる複数のエージェント間の会話によって、人間とツールを統合してLLMの限界に対処する。

AutoGenを使った複雑なマルチエージェント会話システムの構築は、以下のような手順にまとめられる。

  • 特殊な能力と役割を持つエージェントのセットを定義する。
  • エージェント間のインタラクション動作、すなわちエージェントが他のエージェントからメッセージを受信した場合の返答を定義する。

どちらのステップも直感的でモジュール化されているため、これらのエージェントは再利用可能でコンポーザブル(※訳註1)である。例えば、コードベースの質問応答システムを構築する場合、図2のようにエージェントとそのインタラクションを設計できる。このようなシステムは、サプライチェーン最適化のようなアプリケーションにおいて、手作業が必要なインタラクションの数を3倍から10倍に削減することが示されている。AutoGenを使用することで、コーディングの労力も4倍以上削減される。

図2. サプライチェーン最適化におけるコードベースの質問回答に対応するためのワークフローの例。コマンダーはユーザから質問を受け、ライターとセーフガードを調整する。ライターがコードとその説明を作成し、セーフガードが安全性を確認し、コマンダーがコードを実行する。問題が発生した場合は、解決するまでこのプロセスを繰り返せる。網掛けの円は、複数回繰り返される可能性のあるステップを示す。

(※訳註1)コンポーザブルとは、複数のコンポーネントから構成されるアーキテクチャ設計思想を意味する。アーキテクチャの変更をコンポーネントの更新や置換で実行できるので、アーキテクチャのロバスト性と柔軟性を両立できる。

有能かつ会話可能、そしてカスタマイズ可能なエージェントであるAutoGen – LLM、人間、そしてツールを統合する

AutoGenエージェントは、LLM、人間、ツール、またはそれらの要素の混合によって実現する機能を持つ。例えば

AutoGenから組み込みエージェントを使用する1つの簡単な方法は、アシスタントエージェントとユーザプロキシエージェント間の自動チャットを呼び出すことである。例として(図3)、ChatGPT + Code Interpreter + プラグインの拡張バージョンを簡単に構築できる。この場合、カスタマイズ可能な自動化の度合いに応じてカスタム環境で使用できるので、より大きなシステムにも組み込める。また、過去のインタラクションにもとづくパーソナライゼーションや適応性の追加(例えば、自動化された継続学習エージェントに新しいスキルを教える)など、多様なアプリケーションシナリオをサポートするために動作を拡張することも容易である。

図3. AutoGenにおけるユーザプロキシエージェントとアシスタントエージェントは、ChatGPT + コードインタープリタ + プラグインの拡張版を構築するために使用できる。アシスタントエージェントは、Bing ChatのようなAIアシスタントの役割を果たす。ユーザプロキシエージェントはユーザの役割を果たし、コード実行などのユーザの行動をシミュレートする。AutoGenは、人間のフィードバックや介入を可能にしながら、2つのエージェント間のチャットを自動化する。ユーザープロキシは人間とシームレスに関わり、必要に応じてツールを使用する。

エージェントの会話中心のデザインには、以下のような多くの利点がある。

  • 曖昧さ、フィードバック、進捗、コラボレーションを自然に処理する。
  • トラブルシューティングで必要となるツールの使用のような、コーディング関連タスクの効率化を可能とする。
  • ユーザは、チャット内のエージェントを通じて、シームレスに(何らかの設定の)オプトインまたはオプトアウトできる。
  • 複数のスペシャリストの協力により、集団的な目標を達成する。

AutoGenは、自動化されたチャットとの多様なコミュニケーションパターンをサポートしている。それゆえ、複雑で動的なワークフローや汎用的な実験を簡単に編成できる。図4は、AutoGenによって可能になった新しいゲームである会話型チェスを示している。また図5は、AutoGenが「グループチャットマネージャー」と呼ばれる特別なエージェントを使用して、複数のエージェント間のグループチャットをサポートしている様子を示している。

図4. AutoGenが可能にする新しいアプリケーションの例:会話型チェス。各プレイヤーはLLMを搭載したAI、人間、またはそのハイブリッドであるため、さまざまなシナリオをサポートできる。プレイヤーはジョークやミームの引用、キャラクターを演じるなど、自分の手を創造的に表現することができ、プレイヤーだけでなく観戦者にとってもチェスゲームをより楽しいものにする。

図5. AutoGenがタスクを解決するためにダイナミックなグループチャットを可能にする方法の概要:マネージャーと呼ばれる特別なエージェントを使用し、1人の発言者(この場合はBob)を選択し、発言者に返答を求め、選択された発言者のメッセージを他のすべてのエージェントにブロードキャストするという3つのステップを繰り返す。

AutoGenを始めるには

AutoGen(プレビュー版)は、Pythonパッケージとして無料で利用できる。インストールするには、以下のPythonコードを実行する。

pip install pyautogen

わずか数行のコードで、すぐにパワフルな体験が可能となる。

import autogen
assistant = autogen.AssistantAgent("assistant")
user_proxy = autogen.UserProxyAgent("user_proxy")
user_proxy.initiate_chat(assistant, message="Show me the YTD gain of 10 largest technology companies as of today.")
# This triggers automated chat to solve the task
(※訳註2)以上の3行のコードでは、以下のようなタスクを実行している。

AutoGen活用LLMアプリに挿入するコードの事例
  • 1行目:アシスタントエージェントの定義
  • 2行目:ユーザプロキシエージェントの定義
  • 3行目:プロキシエージェントがアシスタントエージェントに「今日の10の巨大テック企業の年初来の利益を教えて」と質問するように指示

以下のURLリンクより、さまざまなAutoGen活用タスク事例をチェックしよう。

https://microsoft.github.io/autogen/docs/Examples

次のステップ:

  • あなたのLLMアプリケーションでAutoGenを使い、Discordでフィードバックを提供する。
  • 研究について読む。

AutoGen:マルチエージェント会話フレームワークで次世代LLMアプリケーションを実現する

大規模言語モデル生成推論のための費用対効果の高いハイパーパラメータ最適化

AutoGenは(自動機械学習とチューニングのための高速ライブラリであるFLAMLからのスピンオフとして)活発な開発が行われており、オープンソースでコミュニティ主導のプロジェクトでもある。それゆえ、あらゆるバックグラウンドの個人からの貢献を奨励している。ペンシルバニア州立大学やワシントン大学のような学界からの貢献者、Microsoft FabricやML.NETのような製品チームなど、Microsoft Research所属の多くの貢献者がこのプロジェクトに多大な貢献をしている。AutoGenでは開発者が次世代アプリケーションを構築するための効果的で使いやすいフレームワークを提供することを目指しており、創造的なアプリケーションの構築とイノベーションのための巨大な空間の提供に関する有望な機会をすでに明らかにしている。

Microsoftに所属する貢献者の名前:

Chi WangGagan BansalEric ZhuBeibin Li、Li Jiang、Xiaoyun Zhang、Ahmed AwadallahRyen WhiteDoug Burger、Robin Moeur、Victor DibiaAdam FourneyPiali ChoudhurySaleema AmershiRicky LoyndHamed KhanpourEce Kamar.

付録1:AutoGen活用アプリ事例集

AutoGen公式GitHubサイトにおける「事例」ページには、多数のAutoGen活用事例が掲載されている。それらをカテゴリー別に列挙すると、以下の通り。なお、各事例のリンク先はそれらのGitHubページとなっている。

コード生成、実行、デバッグ

マルチエージェントコラボレーション(3エージェント以上が参加)

アプリケーション

ツールの使用

人間の関与

エージェントのティーチングと学習

OpenAIのアシスタントをループに入れたマルチエージェントチャット

マルチモーダルエージェント

長いコンテキストの処理

  • チャット履歴圧縮を有効にした会話
  • 無料メールマガジン登録

    週1回、注目のAIニュースやイベント情報を
    編集部がピックアップしてお届けしています。

    こちらの規約にご同意のうえチェックしてください。

    規約に同意する

    あなたにおすすめの記事

    生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

    特許技術×AIでFAQを次のステージへ|Helpfeel

    GPUの革新からAI時代の主役へ|NVIDIA

    あなたにおすすめの記事

    生成AIで“ウラから”イノベーションを|学生起業家が描く、AIを活用した未来

    特許技術×AIでFAQを次のステージへ|Helpfeel

    GPUの革新からAI時代の主役へ|NVIDIA