【AutoGen】AI同士の会話が有形力を持つのは、そんなに遠くないのでは?【機械たちの時間】

  • 2024.02.27
  • AI
【AutoGen】AI同士の会話が有形力を持つのは、そんなに遠くないのでは?【機械たちの時間】

Microsoft Researchがのブログ記事『AutoGen: Enabling next-generation large language model applications』で、LLMアプリ開発のフレームワークであるAutoGenが紹介されています。
AutoGenは、複数のエージェントによる会話を基盤とした次世代LLMアプリケーションの構築を可能にするオープンソースフレームワークです。

ユーザの代わりに会話をはじめとするさまざまなタスクを遂行するAIエージェントの一種で、プロキシエージェントを組み込んだLLMアプリを可能とするフレームワークを指し、活用できればユーザはプロキシエージェントとタッグを組んで複雑なタスクを遂行できるようになります。

AutoGenは、Microsoftとペンシルベニア州立大学、ワシントン大学の共同研究チームが開発した、大規模言語モデル(LLM)を用いたアプリケーション開発のフレームワークです。2023年秋にオープンソースとして公開されました。

AutoGenとは

AutoGenとは、それぞれでカスタマイズ可能な複数のAIエージェントを協力させるフレームワークです。

マルチエージェント

引用:Microsoft Research Blogより

これまでLLMでは、ユーザーの問いかけに対して、LLM内で、ユーザーからの言葉を分析し、適切な回答を莫大なデータから集約して用意し、返答として適切な言語を返すものでした。

これが、各自の特異な分野ごとに役割分担させ、

  • ユーザーの問いかけの言葉を理解する為の言語の得意なLLM
  • ⇒解決のために情報を収集するのが得意なLLM
  • ⇒集約した情報を加工するのが得意なLLM
  • ⇒加工された情報をユーザーに分かるよう言語化するLLM

といったように分けて返答する仕組みです。

役割を設定した複数のAIエージェントを設定し、相談させてタスクを解決します。AI同士の会話が展開される「機械たちの時間」のようです。

AIの会話 コード入力

コードベースの質問応答システムを構築する場合、下の図のようやり取りを設計します。このようなシステムは、サプライチェーン最適化のようなアプリケーションにおいて、手作業が必要なインタラクションの数を3倍から10倍に削減することが示されており、AutoGenを使用することで、コーディングの労力も4倍以上削減されます。引用:Microsoft Research Blogより

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

AIの会話 自動チャット

AutoGenからの組み込みエージェントとして、アシスタントエージェントとユーザプロキシエージェント間の自動チャットを呼び出す方法があります。

カスタマイズの度合いに応じて使用できるので、より大きなシステムにも組み込め、過去のパーソナライゼーションや適応性の追加(例えば、自動化された継続学習、エージェントに新しいスキルを教える)など、多様なアプリケーションシナリオをサポートするために動作を拡張することも容易にできます。

AutoGen_Fig3

引用:Microsoft Research Blogより

アシスタントエージェントは、Bing ChatのようなAIアシスタントの役割を果たす。ユーザプロキシエージェントはユーザの役割を果たし、コード実行などのユーザの行動をシミュレートする。AutoGenは、人間のフィードバックや介入を可能にしながら、2つのエージェント間のチャットを自動化する。ユーザープロキシは人間と関わり、必要に応じてツールを使用する。

AIの会話 会話型チェス

各プレイヤーはLLMを搭載したAI、人間、あるいはそのハイブリッド。

さまざまなシナリオをサポートでき、プレイヤーはジョークやミームの引用、キャラクターを演じるなど、自分の手を創造的に表現することができる。

プレイヤーだけでなく観戦者にとってもチェスゲームをたのしめるとのこと。

引用:Microsoft Research Blogより

AIの会話 グループチャット

ダイナミックなグループチャット概要

マネージャーと呼ばれる特別なエージェントを使用し、1人の発言者(この場合はBob)を選択し、発言者に返答を求め、選択された発言者のメッセージを他のすべてのエージェントにブロードキャストするという3つのステップを繰り返す。

引用:Microsoft Research Blogより

LLM、人間、ツールの統合

LLM/人間/ツール、それぞれがそれぞれにやり取りを繰り返すことで、AutoGenというワークフローは機能します。

  • AIに高度な推論機能(推論パラメータチューニングによるパフォーマンスの最適化)を持たせて、LLMの活用法とその役割を簡単に設定できる。
  • さまざまな関与箇所を持ち、多様な介入パターンを持つプロキシエージェントを通して、人間の知性による監視ができる。
  • エージェントは、LLM駆動のコード/関数実行をネイティブにサポートしている。

エージェントの会話中心のデザインの利点。

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

AutoGenはGitHubで公開されており、Pythonパッケージとして無料で利用できます。

機械たちの会話

これまでLLM同士の会話などの実験は多くおこなわれていたことでしょう。

というのは、会話が人間の使う言語ベースでなかったりして、議論の過程が把握しにくかったりと、正確な研究が難しく、素人からは見えない領域でした。(LLMに議論の過程を要約させればいいのかもしれませんが)

先のGPTターボ以降、言語モデルの実行力は確実に広がっており、議論の幅も爆発的に広がっていくことでしょう。

手段の拡大は、有形力を持ち、次第に人を自由に操れるようになる未来まで見えます、(距離は測れませんが)

SFという想像の産物と現実がぶつかる瞬間を見逃したくないですね。