AGIと未来のAI

MetaGPT:現在利用可能な最高のAIエージェントへの完全ガイド

mm
Unite.AI を Google の優先ソースに追加

大規模言語モデル(LLM) seperti ChatGPTを使用することで、OpenAIは企業とユーザーの採用が増加し、現在約8000万ドルを月に稼いでいます。The Informationの最近の報告によると、サンフランシスコを拠点とするこの会社は、年間10億ドルの収益を達成するペースで推移しているようです。

前回は、AutoGPTとGPT-エンジニアリングについて説明しました。これらは、複雑なタスクを自動化するために設計された最初の主流オープンソースLLMベースのAIエージェントです。約束はありましたが、これらのシステムにはいくつかの問題がありました。結果が一貫性がない、パフォーマンスのボトルネック、複数の要求を処理する能力が限られているなどです。コード生成においては熟練していますが、その能力はそこまでで終わります。PRD生成、技術設計生成、APIインターフェースのプロトタイピングなどの重要なプロジェクト管理機能が欠けています。

MetaGPTが登場しました。これは、Sirui Hongによって作成された大規模言語モデルを使用するマルチエージェントシステムです。標準化された運用手順(SOP)をLLMベースのマルチエージェントシステムと組み合わせて、複雑な現実世界のアプリケーションで効果的なコラボレーションとタスク分解を促進するために、既存のLLMの限界を打ち破る新しいパラダイムです。

MetaGPTの美しさは、その構造にあります。コードを実行時にも操作、分析、変換するメタプログラミング技術を利用して、動的なプログラミングタスクに適応できる、柔軟でアジャイルなソフトウェアアーキテクチャを実現することを目的としています。

アジャイル開発 - MetaGPT

アジャイル開発

SOPは、ここでメタ関数として機能し、エージェントが定義された入力に基づいてコードを自動生成するように調整します。簡単に言うと、高度に調整されたソフトウェアエンジニアのチームを、適応性のある、インテリジェントなソフトウェアシステムに変えたようなものです。

MetaGPTフレームワークの理解

MetaGPTフレームワーク

MetaGPTフレームワーク (https://arxiv.org/pdf/2308.00352.pdf)

基礎層とコラボレーション層

MetaGPTのアーキテクチャは、2つの層に分かれています。基礎コンポーネント層とコラボレーション層です。

  1. 基礎コンポーネント層:この層は、個々のエージェント操作に焦点を当て、システム全体の情報交換を促進します。環境、メモリ、役割、行動、ツールなどの基本的な構成要素を導入します。環境は共有ワークスペースと通信パスを設定し、メモリは歴史的なデータアーカイブとして機能します。役割はドメイン固有の専門知識をカプセル化し、行動はモジュラーなタスクを実行し、ツールは共通のサービスを提供します。この層は、エージェントのオペレーティングシステムとして機能します。詳細については、Beyond ChatGPT; AIエージェント:新しいワーカーの世界という記事を参照してください。
  2. コラボレーション層:基礎コンポーネントの上に構築されたこの層は、個々のエージェントのコラボレーションを管理し、ストリームライン化します。2つのメカニズム、知識共有とワークフローのカプセル化を導入します。
    • 知識共有:これは、エージェントを結びつけるコラボレーションのグルーとして機能します。エージェントは、さまざまなレベルで情報を保存、取得、共有できます。つまり、冗長性が軽減され、運用効率が向上します。
    • ワークフローのカプセル化:これは、標準化された運用手順(SOP)が登場する場所です。SOPは、タスクを管理可能なコンポーネントに分解するためのブループリントとして機能します。エージェントは、これらのサブタスクに割り当てられ、そのパフォーマンスは標準化された出力と一致しています。

MetaGPTは、役割定義も使用して、プロダクトマネージャー、建築家などのさまざまな専門エージェントを初期化します。役割は、名前、プロファイル、目標、制約、説明などの重要な属性で特徴付けられます。

さらに、アンカー エージェントは、これらのエージェントに役割固有のガイダンスを提供します。たとえば、プロダクトマネージャーの役割は、「効率的に成功した製品を作成する」という制約で初期化される可能性があります。アンカー エージェントは、エージェントの動作が全体的な目標と一致するようにすることで、パフォーマンスを最適化します。

MetaGPTエージェントの認知プロセス

MetaGPTは、観察、思考、反省、行動を実行できます。特定の行動関数、_think()_observe()_publish_message()を介して動作します。この認知モデリングにより、エージェントはアクティブな学習者となり、適応し、進化することができます。

  1. 観察:エージェントは環境をスキャンし、重要なデータをメモリに組み込みます。
  2. 思考と反省_think()関数を通じて、役割は行動を開始する前に検討します。
  3. メッセージの放送:エージェントは、_publish_message()を使用して、現在のタスクのステータスと関連するアクションのレコードを共有します。
  4. 知識の沈殿と行動:エージェントは、受信メッセージを評価し、内部リポジトリを更新してから、次の行動方針を決定します。
  5. 状態管理:タスクのロックとステータスの更新などの機能により、役割は、実行を中断せずに複数のアクションを順番に処理できます。これは、現実世界の人間のコラボレーションを反映しています。

MetaGPTのコードレビューメカニズム

コードレビューは、ソフトウェア開発ライフサイクルの中で重要なコンポーネントですが、いくつかの人気フレームワークでは欠けています。MetaGPTとAgentVerseの両方がコードレビューキャパビリティをサポートしていますが、MetaGPTはさらに前方に進み、事前コンパイル実行も組み込んでいます。これにより、早期エラーディテクションが可能になり、コード品質が向上します。コードは反復的な性質を持つため、この機能は成熟した開発フレームワークにとって必要なものです。

複数のタスクで実施された定量的実験は、MetaGPTがほぼすべてのシナリオで他のエージェントを上回ったことを示しています。Pass@1は、フレームワークが1回のイテレーションで正確なコードを生成する能力を測る指標です。このメトリックは、実践的な設定でのフレームワークの有用性をよりリアルに反映しています。Pass@1率が高いほど、デバッグが少なく、効率が高まり、開発サイクルとコストに直接影響します。CodeX、CodeT、GPT-4などの高度なコード生成ツールと比較して、MetaGPTはHumanEvalMBPPのベンチマークで81.7%から82.3%のPass@1率を達成し、上回りました

MBPPとHumanEvalのメトリクスを比較する - MetaGPTと他のリーディングモデル (https://arxiv.org/pdf/2308.00352.pdf)

MBPPとHumanEvalのメトリクスを比較する – MetaGPTと他のリーディングモデル (https://arxiv.org/pdf/2308.00352.pdf)

このフレームワークは、トークンと計算リソースも少なく、従来のソフトウェアエンジニアリングのコストの小さな部分で、高い成功率を達成します。データは、MetaGPTでプロジェクトごとに平均1.09ドルのコストがかかることを示しています。これは、開発者が同じタスクを請け負う場合に請求される金額の小さな部分です。

MetaGPTをローカルシステムにインストールする手順

NPM、Pythonのインストール

  1. NPMの確認とインストール:まず、NPMがシステムにインストールされていることを確認します。インストールされていない場合は、node.jsをインストールする必要があります。NPMがインストールされているかどうかを確認するには、ターミナルで次のコマンドを実行します:npm --version。バージョン番号が表示されれば、準備は完了です。
  2. MetaGPTの依存関係であるmermaid-jsをインストールするには、次のコマンドを実行します:sudo npm install -g @mermaid-js/mermaid-cliまたはnpm install -g @mermaid-js/mermaid-cli
  3. Pythonのバージョンの確認:Python 3.9以上がインストールされていることを確認します。Pythonのバージョンを確認するには、ターミナルで次のコマンドを実行します:python --version。最新のバージョンでない場合は、Pythonの公式ウェブサイトから最新のバージョンをダウンロードします。
  4. MetaGPTリポジトリのクローン:最初に、MetaGPTのGitHubリポジトリをクローンします。コマンドは次のとおりです:git clone https://github.com/geekan/metagpt。このコマンドを実行するには、システムにGitがインストールされている必要があります。インストールされていない場合は、ここからダウンロードできます。
  5. ディレクトリへの移動:クローンを作成した後、次のコマンドでMetaGPTディレクトリに移動します:cd metagpt
  6. インストール:Pythonのセットアップスクリプトを実行して、MetaGPTをインストールします。コマンドは次のとおりです:python setup.py install
  7. アプリケーションの作成:python startup.py "ENTER-PROMPT" --code_review True

注意

  • 新しいプロジェクトは、workspace/ディレクトリに作成されます。
  • --code_review Trueにより、GPTモデルはコードが正確に実行されるように、追加の操作を実行します。ただし、コストが増えることに注意してください。
  • インストール中にパーミッションエラーが発生した場合は、代わりにpython setup.py install --userを実行してみてください。
  • 特定のリリースへのアクセスや詳細については、MetaGPTの公式GitHubリリースページを参照してください:MetaGPTリリース

Dockerのインストール

コンテナ化を好む場合は、Dockerがプロセスを簡素化します:

  • Dockerイメージのプル:MetaGPTの公式イメージをダウンロードし、構成ファイルを準備します:
docker pull metagpt/metagpt:v0.3.1
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml
  • MetaGPTコンテナの実行:コンテナを次のコマンドで実行します:
docker run --rm --privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3.1 \
python startup.py "シンプルでインタラクティブなCLIベースのロック、ペーパー、シザースゲームを作成する" --code_review True

OpenAI APIキーでMetaGPTを構成する

初期設定後、MetaGPTをOpenAI APIキーで統合する必要があります。手順は次のとおりです:

  1. OpenAIキーの取得または生成:このキーは、OpenAIダッシュボードのAPI設定で見つけることができます。
  2. APIキーの設定:APIキーをconfig/key.yamlconfig/config.yaml、または環境変数(env)に配置することができます。優先順位はconfig/key.yaml > config/config.yaml > envです。
  3. APIキーを設定するには、config/key.yamlに移動し、プレースホルダー テキストをOpenAIキーに置き換えます:OPENAI_API_KEY: "sk-..."

OpenAI APIキーを安全に保管してください。公開リポジトリにコミットしたり、未承認の個人と共有したりしないでください。

ユースケースの説明

私は、CLIベースのロック、ペーパー、シザースゲームを開発するという目標を与え、MetaGPTはタスクを成功裡に実行しました。

以下は、生成されたゲームコードの実行を示すビデオです。

MetaGPTデモ実行

MetaGPTは、UML図を含むシステム設計文書をMarkdownで提供しました。これにより、設計のアーキテクチャの詳細なビューが得られました。また、API仕様もHTTPメソッド、エンドポイント、要求/応答オブジェクト、ステータス コードを含む詳細なものでした。

MetaGPT出力 - システム設計

MetaGPT出力 – システム設計 Markdown

クラス図は、Gameクラスの属性とメソッドを詳細に示し、抽象化を容易に理解できるものにしました。さらに、プログラムのコールフローを視覚化し、抽象的なアイデアを具体的なステップに変換しました。

これは、計画の手間を大幅に削減し、意思決定プロセスを加速し、開発パイプラインがアジャイルのままであることを保証します。MetaGPTを使用すると、コード生成の自動化だけでなく、インテリジェントなプロジェクト計画の自動化が可能になり、ラピッドアプリケーション開発で競争上の優位性を提供します。

結論:MetaGPT – ソフトウェア開発を革命的に変える

MetaGPTは、生成的なAIとソフトウェア開発の風景を再定義し、インテリジェントな自動化とアジャイルなプロジェクト管理のシームレスなブレンドを提供しています。ChatGPT、AutoGPT、伝統的なLangChainモデルを超えて、タスク分解、効率的なコード生成、プロジェクト計画において優れています。さらに詳しく知る:

ここから主な要点をまとめます:

  1. メタプログラミングの力:メタプログラミングを使用することで、MetaGPTは、アジャイルで適応性のあるソフトウェアフレームワークを提供します。これは、従来のツールの狭い機能を超え、コードだけでなく、プロジェクト管理と意思決定の側面も扱う、新しいアプローチを導入します。
  2. 2層のアーキテクチャ:基礎層とコラボレーション層を備えたMetaGPTは、エージェントが協調して効果的に働く、シンエргティックなエコシステムを作り出すことにより、専門家のチームのようなものを実現します。
  3. 最適化されたコードレビュー:コード生成だけでなく、MetaGPTは事前コンパイル実行機能を提供します。これは、エラーの早期検出を可能にし、コード品質を向上させます。
  4. 認知エージェント:MetaGPTのインテリジェントエージェントは、_observe()_think()_publish_message()などの認知機能を備えており、進化し、適応することができます。
  5. インストールと展開:MetaGPTは、NPMとPythonを使用したローカルインストール、またはDockerを使用したコンテナ化によって、簡単にセットアップできます。

私は過去5年間、機械学習とディープラーニングの魅力的世界に没頭してきました。私の情熱と専門知識は、AI/MLに特に焦点を当てた50以上の多様なソフトウェアエンジニアリングプロジェクトに貢献することになりました。私の継続的な好奇心は、自然言語処理という分野にも私を引き付け、さらに探求したいと思っています。