主催 | トゥ・ミン
出品 | CSDN(ID:CSDNnews)
過去 1 年間、一部の AI 愛好家は ChatGPT を使ってビジネスを始め、一部の教授はChatGPTを授業に導入し、またある者は「偽造品との戦い」に ChatGPT を使用しました...事実は、多くの人が依然として新しいテクノロジーに対して慎重であるにもかかわらず、彼らはそうではありません。AI を使って新しい遊び方を開拓することが妨げられています。
最近、ブラウン大学と中国のいくつかの大学の研究者は、ChatGPT 3.5 モデル バージョンでサポートされている AI ロボットがトレーニングなしでソフトウェア開発を完了できるかどうかを確認する実験を実施しました。
この実験に応えて、彼らは「ソフトウェア開発のためのコミュニケーションエージェント」(https://arxiv.org/pdf/2307.07924v3.pdf) というタイトルの論文も発表し、プロセス全体を共有し、プロジェクトを GitHub オープンソースに投稿しました。 https://github.com/OpenBMB/ChatDev
最終的に研究者らは仮想AIソフトウェア会社に70種類のプログラムの開発を依頼し、実験結果によるとAIは7分でソフトウェアを開発でき、平均コストは1ドル未満だったという。これは、OpenAI の ChatGPT のような AI チャットボットが、人間の介入を最小限に抑えながら、ソフトウェア会社を迅速かつコスト効率よく経営できることを意味します。
次に、彼らがどのようにそれを行うかを見てみましょう~
さまざまな役割を持つ AI ソフトウェア開発会社を設立する
論文の中で研究者らは、ChatDevという仮想ソフトウェア開発会社を設立したことを明らかにした。この会社は、さまざまな社会的アイデンティティを持つエージェントを集めており、簡単に言うと、CEO、プロのプログラマー、テストエンジニア、アートデザイナーなどのポジションを確立しています。
ソフトウェア会社である ChatDev は、ソフトウェア開発プロセスを設計、コーディング、テスト、ドキュメント化の 4 つの異なる段階に分割する広範なウォーターフォール モデルを設計上使用しています。
各段階では、人間が通常のビジネスを運営するのと同じように、プログラマー、コードレビュー担当者、テストエンジニアなどを含むエージェントのチームが関与して、継続性と秩序を確立します。
効果的なコミュニケーションとコラボレーションを促進するために、ChatDev は各段階とチャット レベルのコンポーネントの分割を含むチャット チェーン (ChatChain) アーキテクチャを提案します。チャット チェーンでは、各ノードが特定のサブタスクを表し、2 つの役割がコンテキストに参加し、複数のラウンドで議論し、解決策を提案して検証されます。
このアプローチにより、企業は顧客のニーズを正確に分析し、アイデアを生成し、プロトタイプ システムを設計および実装し、潜在的な問題を特定して解決し、デバッグ情報を解釈し、魅力的なインターフェイスを作成し、ユーザー マニュアルを生成できるようになります。
次に、研究者たちは「顧客」としてバックギャモン ゲームの開発要件をソフトウェア会社に提出し、仮想会社である ChatDev のエージェントが共同チャットを通じてどのようにコミュニケーションし、開発するかを確認しました。
ソフトウェア開発の 4 つの段階: 設計、コーディング、テスト、文書化
セッション全体を通して、研究者らは、以下の図に示すように、「指定されたタスクと役割、通信プロトコル、終了基準と制約」を説明する「重要な詳細」を提示することで、各 AI ロボットに特定の役割を割り当てました。
人間のクライアントからゲーム開発の要件を受け取った後、仮想ソフトウェア開発会社内で最初に設計フェーズに入ります。このフェーズには、CEO (最高経営責任者)、CPO (最高製品責任者) の 3 つの事前定義された役割が含まれます。 ) ) および CTO (最高技術責任者)。
次に、チャット チェーンは、ターゲット ソフトウェアのモデル (CEO と CPO) やプログラミング言語 (CEO と CTO) に関する決定を含む、設計フェーズを連続する小さなチャット タスクに分割します。次の 3 つの主要なメカニズムが関係しています。
役割の専門化: 各カスタム役割は、割り当てられた機能を実行し、タスク指向の会話を効果的に促進します。
メモリ ストリーム: 主に上記のチャット記録を維持し、カスタマイズされたキャラクターが情報に基づいた意思決定を行えるようにします。
自己反省: カスタム キャラクターが仕事を遂行しても要件を満たしていない場合、自己反省メカニズムにより、提案された決定を反映する「偽りの自己」が生成されます。
CEO、CPO、CTOの協議の結果、バックギャモンゲームをテーブルトークゲームと位置づけ、Pythonを使用して開発することにしました。
同時に、エージェントの役割は、内省を通じてゲーム開発のニーズをさらに洗練させました。
設計要件が明確になったら、コーディング段階が始まります。
コーディング段階には、CTO、プログラマー、グラフィック デザイナーという 3 つの事前定義された役割が含まれます。同様に、チャット チェーンは、CTO が要件とアイデアを提供し、プログラマーが完全なコードを生成し、デザイナーがグラフィカル ユーザー インターフェイスを設計し、プログラマーが統合を実行するなど、プログラミング フェーズを連続した小さなチャット タスクに分割します。
それが完了すると、人間のプログラマーであっても、最初の試行で作成したコードに常にバグがないことを保証することはできません。ここで、プログラマ、レビューワ、テスタが協力してピア レビュー (プログラマとレビューワ) を通じてソース コードを検査し、潜在的な問題を特定し、システム テストを実行します (プログラマとテスタ)。ソフトウェアの実行を検証するためにインタプリタによって行われるこのテストは、主にブラックボックス テストを通じてアプリケーションのパフォーマンスを評価します。
最終的に、設計、コーディング、テストの段階を経て、ChatDev はソフトウェア プロジェクトのドキュメントを作成するために 4 人のエージェント (CEO、CPO、CTO、プログラマー) を雇用しました。大規模な言語モデルを使用して、ユーザー マニュアルが生成されます。
1 ドル未満で 7 分でソフトウェア開発を完了
興味深いことに、AI ロボットは人間の介入を最小限に抑えながら、上記のプロセス全体を通じて相互に通信し、解決策を模索し、重要な情報を共有できます。
具体的なツールの使用に関して、研究者らは ChatGPT の「gpt3.5-turbo-16k」バージョンを使用し、言語の温度パラメーター (生成された結果の多様性とランダム性を制御するために使用できます) を次のように設定しました。 0.2。その後、研究者らはコーディング、レビュー、テストなどのさまざまな段階で最大 5 回の試行を許可しました。Python ベースのシステムの場合、研究者はテスト用のインタープリターとして Python 3.8.16 を使用しました。
研究者らは、上記の例に加えて、この実験ではChatdevが生成した70個のソフトウェアすべてを分析すると同時に、会話の総数、消費されたトークン、ソフトウェアファイル、画像資産などの統計分析も実施したと述べた。そしてバージョンアップ。
分析によると、生成されたソフトウェアには通常 2 ~ 8 個のコード ファイルが含まれており、平均 4.26 個のファイルが含まれています。ChatDev が開発するソフトウェアのコード行数は通常 39 ~ 359 行、平均 131.61 行であり、これらのデータは ChatDev が比較的小規模なコードを使用してソフトウェアを生成する傾向があることを示しています。これはオブジェクト指向プログラミングの設計による部分もあり、コードの再利用が可能になり、継承による冗長性が削減されます。研究者らはまた、ユーザーが具体性の低いタスクを指定すると、ChatDev によって生成されるソース コードが短くなり、平均約 110.97 行になる傾向があることにも気づきました。
実験では、研究者らは、テストによって生成されたソフトウェア システムの約 86.66% が完璧に動作することを発見しました。ソフトウェアの 13.33% が実行に失敗しました。失敗の主な理由は、API のトークン長制限、外部依存関係の問題の影響などでした。
平均して、ChatDev はソフトウェアごとに 17.04 個のファイルを生成し、ソフトウェアの製造時間は 409.84 秒で 7 分未満、製造コストは 0.2967 ドルです。監査者とプログラマーの間の相互ディスカッションにより、約 20 種類のコードの脆弱性を特定して修正することができ、テスターとプログラマーの間のディスカッションにより、最終的に 10 種類以上の潜在的なバグを特定し、解決できました。
これに対し、従来のカスタム ソフトウェア開発サイクルは、アジャイル ソフトウェア開発手法の中でも、通常、それぞれ 2 ~ 4 週間、場合によっては数か月かかります。
未来を見据えて
この研究の結果は、ChatGPT の強力な生成人工知能テクノロジーがさまざまな方法で特定のジョブ機能を実行できることを示しており、ChatDev は無料で効率的かつコスト効率の高いソフトウェア開発の新しいモデルも提供します。
しかし、この研究は完璧ではありませんでした。研究者らは、大規模モデルの温度パラメーターを非常に低く設定した場合でも、生成される出力に固有のランダム性が存在するなど、いくつかの制限があることを発見しました。同時に、言語モデルにはエラーや偏りがあり、これらの制限によりソフトウェア作成時に問題が発生する可能性があります。
それでも研究者らは、この発見は「現実世界の若手プログラマーやエンジニアにとって役立つかもしれない」と述べている。
「今後、さらなる研究は、ChatDev のパフォーマンスと有効性を向上させるために、通信プロトコルを改良し、各チャットの対話ダイナミクスを最適化することに焦点を当てることができます。さらに、強化学習や説明可能な人工知能などの他の新興テクノロジーの統合も検討します。などは、課題を解決し、ソフトウェア開発プロセス全体を改善するための貴重な洞察を提供することができます」と研究者らは論文で述べています。
現在、ChatDev は GitHub でオープンソースです: https://github.com/OpenBMB/ChatDev. 興味のある友人は、ぜひ試してみてください~