「AGENTS内部 半自律LLMエージェントを構築するための新しいオープンソースフレームワーク」
New open-source framework for building semi-autonomous LLM agents within AGENTS.
このフレームワークは、浙江大学とETHチューリッヒの強力な研究に基づいています。
最近、AIに特化した教育ニュースレターを始めました。すでに16万人以上の購読者がいます。TheSequenceは、5分で読める、ハイプやニュースを排除した機械学習に特化したニュースレターです。このニュースレターでは、機械学習プロジェクト、研究論文、コンセプトについて最新情報を提供します。ぜひ購読してみてください:
TheSequence | Jesus Rodriguez | Substack
機械学習、人工知能、データの最新動向を追い続けるための最高の情報源
thesequence.substack.com
自律エージェントは、基盤モデルエコシステムで最も人気のあるトピックの1つです。AutoGPTやBabyAGIなどのプロジェクトの初期の試みは、大規模な言語モデル(LLM)を使用してタスクを自律的に解決する可能性について、開発者の想像力を刺激しました。多くの研究者は、自律エージェントが基盤モデルの次のフロンティアの1つであると考えています。ただし、エージェントの定義は今日非常に曖昧です。最近、AIWaves浙江大学とETHチューリッヒの研究者たちは、LLMを活用したエージェントの作成のためのフレームワークであるAGENTSについての論文を発表しました。
- 「大規模な言語モデルを使用した顧客調査フィードバック分析の強化」
- 「画像の匿名化はコンピュータビジョンのパフォーマンスにどのような影響を与えるのか? 伝統的な匿名化技術とリアルな匿名化技術の比較」
- ディープラーニングライブラリーの紹介:PyTorchとLightning AI
AGENTSの核となるアイデアは、このコンセプトを研究の枠組みから一般の観衆に広げることです。AGENTSは、計画、メモリ、ツールの使用、マルチエージェントのコミュニケーション、シンボリック制御などの重要な構築要素を、単一のプログラミングモデルの下に統合しようとします。この論文には、使いやすさがあり、使い方も簡単なオープンソースのリリースも付属しています。
詳細を見ていきましょう:
AGENTSの原則
AGENTSフレームワークは、LLMでパワードされた言語エージェント向けのオープンソースプラットフォームとして特徴的です。その核となる原則は、言語エージェントのカスタマイズ、展開、微調整のプロセスを効率化することです。
初心者にも使いやすいように設計されたAGENTSは、次の一連の原則に基づいています:
1. 長短期記憶: AGENTSは、自律エージェントにおけるメモリの重要性を認識しています。従来の機械学習モデルは単一の入力に反応しますが、自律エージェントは継続的に環境や他のエージェントと対話します。そのため、AGENTSはメモリコンポーネントを組み込んでいます。これにより、VectorDBを使用して長期的なメモリを保存し、意味検索を可能にし、専用のスクラッチパッドを使用して短期的なメモリを更新するなどの機能を備えています。
2. ツールの使用とWebナビゲーション: 言語エージェントは、単なる言語的な対話を超えて外部ツールを利用し、インターネットを探索する能力が必要です。AGENTSは、人気のある外部APIとの統合や、さらなるツールの追加に対応するための適応可能なクラスを提供します。また、専用のAPIインターフェースを介してウェブを検索および閲覧するエージェントを強化します。
3. マルチエージェントのコミュニケーション: AGENTSは、個々のエージェントの機能にとどまらず、マルチエージェントシステムの領域にも進出しています。これは、ゲーム、社会実験、ソフトウェア開発などのさまざまなドメインで役立ちます。この領域内の革新的な機能の1つは、「ダイナミックスケジューリング」アプローチです。エージェントの活動に静的なルールに頼るのではなく、AGENTSではコントローラーエージェント(一種の「モデレーター」)がエージェントの後続の行動を決定し、役割と過去の活動を考慮します。
4. 人間とエージェントのインタラクション: 多くのエージェントフレームワークは、特にマルチエージェントの設定では、人間とのインタラクションの範囲が制限されています。AGENTSは、このギャップを簡単に埋めます。それは、単数またはマルチエージェントの環境における人間とエージェントの相互作用を推進します。
5. 制御性: 従来のフレームワークは、エージェントの振る舞いをシステムのプロンプトに制限することが多いです。AGENTSは、標準的なオペレーティングプロシージャ(SOP)という概念を導入します。これらのSOPは、実際のアプリケーションと同様に、エージェントのタスクやアクションを詳細に指示するステップバイステップのガイドです。このような詳細な計画はLLMによって生成され、ユーザーによって後から修正することができます。
これはかなり多くの概念です!しかし、AGENTSの初期実装により、これらの機能を使用する知的エージェントの構築は非常に簡単です。
AGENTSを使ったプログラミング
AGENTSフレームワークは、エージェント、SOP(標準業務手順)、環境の3つの主要クラスを優れた構造で提供しています。これらのクラスは、シンプルなプレーンテキストで作成された設定ファイルを介して便利に初期化されます。AGENTSのアーキテクチャとコーディングの基礎についてもっと詳しく説明しましょう。
- エージェントクラス: AGENTSフレームワークの本質として機能するエージェントクラスは、言語エージェントの機能と振る舞いをカプセル化しています。図1のUMLダイアグラムで可視化されているように、エージェントは複雑な長期・短期記憶を管理します。このクラス内では、以下のメソッドを使用してエージェントが次のことができるようになります:
- 周囲との関わりを持つ(agent._observe(environment))
- 現在の状態に基づいてアクションをとる(agent._act())
- メモリデータを修正する(agent._update_memory())。
簡単な体験のために、上記の機能はagent.step()メソッドに統合されています。
- SOP(標準業務手順)クラス: このクラスはより広範な視点を提供し、エージェントの状態の進行を示します。SOPクラスの各状態は、エージェントが達成する必要がある特定のサブゴールやサブタスクにマッピングされます。各状態は、「State」クラスオブジェクトとして構築され、LLMの機能を活用するための専門的なプロンプトを提供します。さらに、その状態内で利用するためのAPIのツールキットも提供します。
- 環境クラス: エージェントの背景として機能するこのクラスは、エージェントが操作する外部条件の表現を提供します。このクラスは主に2つの機能的な側面に分かれます:
- environment._observed()関数は、環境のエージェントのアクションへの影響を示し、観察に基づく転送可能な情報を示します。
- environment.update()関数は、エージェントのアクションが環境に与える影響を定義します。
def main (): # agentsは1つまたは複数のエージェントの辞書です。agents = Agent.from_config("./config.json")sop = SOP.from_config("./config.json")environment = Environment.from_config("./config.json")run(agents, sop, environment)
AGENTSフレームワークは、ツールの統合やマルチエージェント間の通信など、先述した基本原則を具現化しているだけでなく、人間とエージェントのインターフェースにも重点を置いています。特に、configファイルの「is_human」属性を「True」に調整するだけで、AGENTSはユーザーがエージェントの立場に入る柔軟性を提供します。このようなアレンジにより、ユーザーと他の言語エージェントが指定された環境内で動的に対話することができます。これは専用のコンソールインターフェースを介して行われます。
展開に関しては、AGENTSは優先的にFastAPIを採用しています。さらに、このフレームワークは個別とマルチエージェントの両方に対応する柔軟性があります。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「Now You See Me (CME) 概念ベースのモデル抽出」
- 効果的な小規模言語モデル:マイクロソフトの13億パラメータphi-1.5
- 「BlindChat」に会いましょう:フルブラウザおよびプライベートな対話型AIを開発するためのオープンソースの人工知能プロジェクト
- 「コンテキストに基づくドキュメント検索の強化:GPT-2とLlamaIndexの活用」
- 「AIはどれくらい環境に優しいのか?人間の作業と人工知能の二酸化炭素排出量を比較する」
- 大規模言語モデル:RoBERTa — ロバストに最適化されたBERTアプローチ
- 「TikTokがAI生成コンテンツのためのAIラベリングツールを導入」