IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
ChatDevはオープンソースのエージェント・フレームワークで、大規模言語モデル(LLM)を活用した専門的なインテリジェント・エージェントで組織したチームを通じ、マルチエージェントによるコラボレーションを実装します。それぞれのAIエージェントは、ソフトウェア開発ライフサイクルの中核フェーズ内のタスクで連携し、ソフトウェアアプリケーションを自律的に生成・作成するよう調整されています。
ChatDevは、各種のインテリジェント・エージェントが組織的環境の中でそれぞれの役割を担当して運営する、仮想のソフトウェア会社をシミュレートしています。これらのエージェントはソフトウェア開発プロセスの合理化を支援する機能セミナーに参加することで、コラボレーションが可能なマルチエージェント型の組織構造を形成しています。ChatDevは、広く採用されている「ウォーターフォール」モデルにAIを適用しています。これは、設計、コーディング、テスト、文書化といった各フェーズに開発プロセスを分割するソフトウェア開発ライフサイクルモデルで、専門のエージェントが連携してそれぞれのフェーズを完了します。
ChatDevの主な目標は、カスタマイズ可能でスケーラブルなエージェントLLMオーケストレーションのフレームワークを提供し、集合知の研究に理想的なシナリオを作ることです。集合知とは効果的なコラボレーションであり、グループが複雑なタスクでは個人を上回るパフォーマンスを発揮できる現象を指します。集合知に対する広く受け入れられているアプローチでは、目的と理性を持って行動し、環境に適応できる存在として個人を定義します。1 ChatDevのようなエージェント・フレームワークでは、これらのインテリジェントな主体がエージェントと呼ばれます。
AI および機械学習における集合知の応用には、マルチエージェント・システム(MAS)と呼ばれる集合知システムまたはフレームワークが含まれます。MASは、問題解決を行う主体、すなわちエージェントが相互接続されたネットワークとして説明できます。そこでは複数のエージェントが協力し合い、単一のエージェントの能力や知識を超えた問題の解決に取り組みます。2
マルチエージェント・システムのようなAIツールは、集合知(COIN)設計へのアプローチです。COINは、中央集権的な通信やコントロールを最小限に抑えるか、または完全に排除した広範なマルチエージェント・システムです。これはシステム全体の潜在的履歴を評価するワールド・ユーティリティー関数を備えています。3MASという分野は、システム内のエージェント間のやり取りや、各エージェントそれ自体の構成に関係するものです。MASの設計手法はいくつかありますが、コンポーネントのアクションを通じてグローバルなタスクを達成するという中核的な目標は同じです。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
適切に機能するMASを設計する上で最も困難なステップの1つが、グローバルなタスクで確実に協調できるようにエージェントを調整することです。4効果的なコラボレーションには、個々のエージェントのタスク解決能力と、参加エージェントの間で適切に調整されたインタラクションの両方が必要です。5MAS環境の計画には以下の考慮事項が含まれます。
この設計上の課題に取り組む1つの方法は、マルチエージェント・コラボレーションを通じて明示的にチームワークをモデル化することです。
こうしたマルチ・コラボレーションの設計パターンでは、複雑なプロンプトを分解し、抽象化されたタスクをエージェントに委任し、エージェントは専門的な役割に基づいてタスクを実行します。7例えば、ChatDevはChatChainと呼ばれるデュアルエージェント通信設計を使用して、協調的なコミュニケーションを促進します。
ChatDevのようなフレームワークは、テキスト生成用の優れた自然言語処理機能を超えて、LLMの機能を拡張します。ChatDevは、ソフトウェア・エンジニア、最高技術責任者、最高経営責任者、デザイナー、テスターなど、さまざまな社会的役割を持つ複数の共同エージェントのプロンプトと評価を含むオーケストレーション手法により、LLMを多用途エージェントとして位置づけています。
各エージェントはそれぞれの専門的な役割を使用して、ソフトウェア開発ライフサイクルの中核となるフェーズに協力して取り組みます。このプロセスでは、自然言語による要件の理解と分析、およびプログラミング言語を使用した開発とデバッグのための専門役割のエージェント間の広範なコミュニケーションが行われます。ChatChainのフェーズでは、エージェントの役割とプロンプトに応じて、自然言語とプログラミング言語の両方でエンゲージメントのレベルが異なります。
ChatDevのエージェントは、タスク完了のためのガイドとしてロールプレイとインセプション・プロンプトを使用します。インセプション・プロンプトは、エージェントがロールプレイングを通じてタスクを解決するように相互に促すことを可能にするLLMの会話型自動プロンプト手法です。8
ChatDev は、サブタスクの各フェーズの開始時にプロンプト・エンジニアリングを適用します。ChatChainはタスク解決プロセスを定義することはできますが、エージェントが追加のプロンプトやガードレールなしで応答を交換するだけの場合、マルチラウンドのタスク指向のコミュニケーションでは効果がありません。生産的なコミュニケーションの進行を促進し、役割の反転、指示の繰り返し、偽の応答などの課題を回避するために、ChatDevはインセプション・プロンプトのメカニズムを採用しています。
インセプション・プロンプトのメカニズムは、インストラクター役とアシスタント役のシステムプロンプトを用い、開始時にLLMを「催眠術」にかけることで機能します。LLMの「催眠」はネガティブな意味合いを含むこともあります(モデルを不正に操作するために悪用される可能があります)が、この場合はロールプレイを行うエージェントに効果的なプロンプトを出す手法を指します。このプロンプトでは、コラボレーションでの役割を果たして指示に従う方法をLLMからエージェントに確実に伝えるよう、タスクとロールを指定します。
それぞれのロールに対するこの最初のプロンプトは、役割を反転させることなく適切な応答を与えるよう、エージェントをガイドします。システムのどちらの役割に対するプロンプトもほぼ同一で、現在のサブタスクの概要と目標、専門の役割、利用可能な外部ツール、通信プロトコル、終了条件、および望ましくない動作を防ぐための制約または要件を記述しています。9このメカニズムはLLMのガードレールとして機能し、応答の品質を高め、人間の介入の必要性を減らします。
エージェント間での適切なコラボレーションとコミュニケーションをガイドするために、ChatDevはChatChainと呼ばれるエージェント・ワークフローを導入し、各フェーズをより管理しやすいサブタスクに分割します。このプロセスでは、異なる役割間の多段階コミュニケーションを導き、各サブタスクのソリューションを提案して検証します。エージェントはコミュニケーションと呼ばれるメカニズムによって制御される。 ハルシネーション解消、予期せぬハルシネーションを軽減するためのコミュニケーションパターン。このメカニズムにより、エージェントは直接応答する前により詳細な情報を要求し、その詳細情報に基づいて次のコミュニケーションフェーズを続行します。10
ChatDevには、各自の役割と環境の内側で動作する個々のエージェントのインタラクションを研究するための、ブラウザ・ベースのVisualizer機能があります。このインターフェースにより、ユーザーはマルチエージェント・システムの設計それ自体を調査できるようになります。ユーザーは、エージェントが互いに協力して個々の機能を超えたグローバルなタスクを完了するための、人工的な協調の構造を確認することができます。
ChatChainは、エージェントのワークフローに沿ったタスク解決プロセスを簡素化するデュアル・エージェント・コミュニケーション設計に沿ったものです。エージェント形式の設計パターンは、ソフトウェア開発プロセスを設計、コーディング、テストという 3 つの連続フェーズに分割することから始まります。コーディングとテストのフェーズはさらに、コードの作成と完了、コードのレビュー(静的テスト)とシステム・テスト(動的テスト)のサブタスクに分けられます。
ChatChain内の各コミュニケーションフェーズは、1つのインストラクター・エージェントと1つのアシスタント・エージェントからなるものです。各サブタスクでは、それぞれに専門的な役割(レビュアーやGUIデザイン・プログラマーなど)を持つ2つのエージェントが、インストラクターとアシスタントの機能を果たします。インストラクター・エージェントは、タスク完了に向けた指示し、アシスタント・エージェントはこれらの指示を受け取ってそれに従い、適切な解決策で応答します。11 2つのエージェントは、タスクが完了するか、コンセンサスに達するまで、複数のターンの対話を行います。コミュニケーション・フェーズから抽出されるソリューションは、テキスト(例:アプリケーションの必要機能の説明)からコード(例:初期のソースコード)まで多岐にわたります。
このワークフローは、複雑なマルチエージェント・トポロジを回避し、コンセンサスのプロセスを効果的に合理化することで、コミュニケーションを簡素化します12。このアプローチでは、前のタスクのソリューションが次のフェーズへの橋渡しとなるために、サブタスクの間でスムーズな移行が実現します。このワークフローはすべてのサブタスクが完了するまで次に進み、その過程でエージェントを導きます。ワークフローのチェーンスタイルの構造により、自然言語とプログラミング言語のサブタスクがリンクされ、エージェントに何を伝えるべきか効果的にガイドできます。ChatChainは、MAS設計における最も困難な問題であるエージェントとの連携に対するソリューションの1つです。
デフォルト設定を使用する場合、ChatChainは次の順序でソフトウェアを作成します。
LLMのハルシネーションは、モデルが不正確なアウトプットや無意味なアウトプットを生成する場合に発生します。コーディングでのハルシネーションは、プログラミング関連のタスクを実行するモデルのアウトプットに影響を与えるハルシネーションの一種です。ChatDevの研究者は、コーディングでのハルシネーションが頻繁に発現するのは、アシスタント機能を担うエージェントが厳密な指示に従うことに苦労する場合であると明らかにしています13。アシスタントが指示に従うのに苦労する主な原因は、フォローアップのためのインタラクションや調整が複数回にわたって必要になる曖昧さです。望ましくないアウトプットを避けるために、ChatDev ではコミュニケーションによるハルシネーション除去を導入しています。
コミュニケーションによるハルシネーション除去は、アシスタントが正式な応答を提供する前に、インストラクターにより詳細な提案を積極的に要求するようプロンプトします。14 アシスタントはインストラクターに似た役割を担い、より多くの情報(外部依存関係の正確な名前や、変更をどのGitHubリポジトリにコミットするかなど)を事前対応的に確認して、応答の前に意図的に「役割の逆転」を行います。インストラクターが修正に対応した後、アシスタントが精密な最適化を行います。このコミュニケーション・パターンは、エージェントに対してコミュニケーション方法を指示し、コーディングのハルシネーションを軽減しつつ、きめ細かい情報交換を可能にします。
ChatDevのVisualizerは、ローカルWebデモを実行するPythonアプリで、ユーザーがリアルタイムログ、再生ログ、ChatChainを閲覧することができます。アプリには、それぞれに3つの個別のログ・ビューアーが含まれています。
Visualizerには、生成された特定のソフトウェア・アプリケーションに関するエージェント間の対話を自然言語で表示するチャットリプレイページもあります。
ChatDevのエージェント設計パターンの概念は、複雑なタスクの処理に特化した専門AI エージェントを除けば、機械学習手法のひとつである混合専門家に近いものです。さまざまな専門エージェントの間のコラボレーションを調整するには、オーケストレーションシステムが必要です。
このようなオーケストレーションの基盤となるのが、OpenAIのGPTモデルをはじめとする事前トレーニング済みのトランスフォーマー・モデルです。15IBMのGraniteシリーズのような基盤モデルも、堅牢な言語機能を備えたエージェントを基盤として構築し、専門的な機能を与えるために使用できます。たとえば、Granite Codeは、3Bおよび34Bのパラメータ・サイズにわたるモデル・ファミリーであり、116のプログラミング言語でトレーニングされています。このサービスは、ソフトウェア開発に通信エージェントの使用を計画しているエージェント・フレームワークにとって有益です。本稿執筆時点で、ChatDevはOpenAIのGPT-3.5-turboモデルとGPT-4モデルをサポートし、インテリジェント・エージェントを強化しています。
ChatDevは、マルチエージェント・コラボレーション・ネットワーク(MacNet)を使用して、LLMベースのマルチエージェント・コラボレーションを拡張する機能を実装しています。MacNetは、ニューロンの増加が創発能力につながることを示唆する神経スケーリングの法則にヒントを得たものです。16 ChatDevは、同様の原則をマルチエージェント・コラボレーションにおけるエージェントの増加に当てはめる提案をしています。
MacNetは非巡回グラフを使用してエージェントを構造化し、トポロジー順序を通じてインタラクティブな推論を強化します。エージェントの対話から解決策が導き出されます。このプロセスの成果はベースラインモデルを一貫して上回っており、異なるネットワーク・トポロジーにわたるエージェント間の効率的なコラボレーションを促進し、1,000を超えるエージェント間の連携を可能にしています。このアプリケーションを通じて、ChatDevはエージェントの数が増加するにつれてロジスティックな成長パターンでソリューションの品質が向上することを示す協調スケーリングの法則を特定しました。
マルチエージェント・システム(MAS)は、すべての機能を1つのモデルにまとめるのではなく、複数の専門エージェント間でタスクを分割します。エージェントは各自で同じ言語モデルも異なる言語モデルも使用できるため、幅広いタスクを実行する能力を秘めています。
ChatDevでは、自社と他の2つのLLMベースのソフトウェア開発オーケストレーション・フレームワークであるGPT-EngineerおよびMetaGPTの性能を比較する一般的な研究論文で評価を行いました。このときは完全性、実行可能性、一貫性、および品質に関するメトリクスが設定されました。ChatDevとMetaGPTは、単一エージェントのオーケストレーション・アプローチであるGPT-Engineerを上回るパフォーマンスを示し、複雑なタスクを1ステップのソリューションで解決することがより困難であることを実証しました。これらの性能の成果は、複雑なタスクをより管理しやすいサブタスクに分割することで、タスク完了の効率が向上することを示唆しています。
ChatDevは、自然言語とプログラミング言語の両方を使用するエージェントの協調的なコミュニケーション手法によって、品質メトリクスではMetaGPTを大幅に上回りました。効率的なコミュニケーションが可能なエージェントはそれぞれのサブタスクを完了までガイドすることができ、手動で決定した最適化ルールにつきまとう制限を克服することができました。17 この結果は、コミュニケーション・エージェントと協調的エージェントを使用するマルチエージェントのフレームワークが、より多用途で適応性の高い機能を提供する可能性を示唆しています。
GPT-Engineer – ソフトウェア・アプリケーションを構築するための単一のエージェント・オーケストレーション・フレームワーク。ユーザーはAIにプロンプトを出して必要なソフトウェア機能を備えたアプリケーションを構築するように指示できるほか、システムとやり取りして改善や更新を行うこともできます。18 ユーザーは、シンプルなベンチマーク・インターフェイスを搭載しシステムにインストールされたバイナリの 'bench' を通じて、一般的なデータセットに対して独自のエージェント実装をベンチマークすることができます。
MetaGPT – さまざまな役割を果たすエージェントをGPTモデルに割り当てて複雑なタスクを完了するためのコラボレーション・ソフトウェア・エンティティーとして動作する、マルチエージェント・フレームワーク。ChatDevと同様、エージェントはソフトウェア会社のような仮想環境内でさまざまな役割を担います。MetaGPTは、慎重に調整されたSOP(標準運用手順)を使用してソフトウェアを生成します。
CrewAI – CrewAIは、LangChain 上で動作するオープンソースのマルチエージェント・フレームワークです。LLMアプリケーションに関連するワークフローやタスクを処理するチームに自律型AIエージェントを編成します。crewAI はあらゆる LLM と統合されます。
AutoGen – Microsoftのオープンソースのマルチエージェント会話フレームワークは、基盤モデルの高度な抽象化を実現します。AutoGenは、複数のエージェントを採用してタスクの対話と処理を行うエージェント・ベースのフレームワークです。その主要な機能には、適応可能なパターンでマルチエージェント・ダイアログに参加するカスタマイズ可能なAIエージェントが含まれ、多様なLLMアプリケーションの作成を可能にします。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。