「一人の能力には限界があるが、チームの力は無限である。」この言葉は、現実世界のソフトウェア開発に鮮やかに反映されています。複雑なタスクについては、人々はチームワーク戦略を通じて解決します。しかし、このモデルは AI の世界にも当てはまるのでしょうか? 北京大学の李歌教授のチームは、新たな自己コラボレーションモデルを提案した。複数の大規模モデルが異なる役割を果たすことを可能にし、人間の参加を必要としないソフトウェア開発チームを形成します。大規模モデル間の協力と相互作用を通じて、複雑なコード生成タスクも含め、ソフトウェア開発プロセス全体を独立して完了できます。 論文リンク: https://arxiv.org/pdf/2304.07590.pdf 大規模言語モデル (略して大規模モデル) はコード生成において驚くべき能力を発揮していますが、複雑なタスクの処理においては依然として課題に直面しています。実際のソフトウェア開発プロセスでは、通常、人々は協力的なチームワーク戦略を通じて複雑なタスクを解決し、開発の複雑さを大幅に制御し、ソフトウェアの品質を向上させることができます。 これに触発されて、研究者たちは大規模モデルを使用したコード生成のための自己コラボレーション フレームワークを提案しました。具体的には、役割の指示を通じて、1) 複数の大規模言語モデルが異なる「専門家」の役割を果たし、各モデルが複雑なタスクの特定のサブタスクを処理する責任を負います。2) 協力と相互作用の方法が指定されているため、異なる役割が仮想チームを形成し、お互いに作業を完了できるように支援し、最終的には人間の介入なしにコード生成タスクを一緒に完了します。 この仮想チームを効果的に編成し管理するために、研究者はソフトウェア開発方法論のウォーターフォール モデルをフレームワークに巧みに統合し、ChatGPT の 3 つの役割 (アナリスト、プログラマー、テスター) で構成される基本チームを結成して、ソフトウェア開発プロセスの分析、コーディング、テストの各段階を実装しました。 実験結果によると、大規模モデルコード生成を直接使用する場合と比較して、自己コラボレーションコード生成のパフォーマンスが大幅に向上し、GPT-3.5 が GPT-4 を上回ることさえあります。さらに、研究者らは、自己コラボレーションにより、直接的なコード生成では解決が難しいことが多い、より複雑な現実世界のコード プロジェクトを大規模なモデルで効果的に処理できることも実証しました。 図 1: コード生成のための自己コラボレーション フレームワークとそのインスタンス。 この研究は、人工知能言語モデルを使用したソフトウェア開発の新しい道を切り開き、人工知能をソフトウェア開発プロセスのすべての段階に密接に統合し、開発効率を向上させるだけでなく、ソフトウェアの品質も保証します。 ChatGPT などの LLM の可能性を活用することで、モデル間のコラボレーションとインタラクションに対するより強力なサポートが提供され、複雑なソフトウェア開発タスクを処理する仮想チームの成功が促進されます。この自己コラボレーション フレームワークは、自動コード生成に対する新しい、より効率的なアプローチを提供し、ソフトウェア開発分野における革新と進歩の推進に役立ちます。さらに、この研究は、さまざまな分野における自己協力手法に関する将来の研究や、より複雑なタスクを処理するためのより高度で専門的な仮想チームの開発の基礎として役立ちます。 以下では、セルフコラボレーション フレームワークの詳細な紹介と、フレームワークとソフトウェア開発方法論に基づいて仮想チームを形成する例を示します。 自己コラボレーションフレームワーク要件 x が与えられた場合、大規模モデルを使用して自己コラボレーションを実行し、出力 y を生成します。タスクは次のように定義されます。自己コラボレーション フレームワークは、分業と協力という 2 つの部分で構成されます。 分業の部分では、研究者は事前の知識を使用して複雑なタスクを一連の段階に分解し、大きなモデルと役割の指示に基づいてさまざまな役割を構築しました。各ステージは1 つ以上のロールによって管理されます。 大規模なモデルは、前の単語に基づいて後続の単語を予測するようにトレーニングされるため、コンテキストに対して非常に敏感であることが知られています。したがって、広く使用されているアプローチは、指示やプロンプトを通じて大規模なモデルの生成を制御することです。研究者たちは、ロール指令と呼ばれる特定の種類の指令を使用して、大規模なモデルにアイデンティティと責任を割り当てました。具体的には、研究者は、大規模モデルに、その責任に密接に関連する特定の役割を果たすように求め、その役割が実行すべき詳細なタスクを伝えるように求めました。 ロール ディレクティブを使用する利点は、対話の開始時に一度だけ提供すればよいことです。その後のやり取りでは、指示と意図の組み合わせではなく、意図のみが伝達されます。したがって、役割の指示により、その後のコミュニケーションと協力の全体的な効率と明確さが向上します。 コラボレーションの部分では、研究者は、自己コラボレーション フレームワーク内で異なる役割を担う大規模モデル間の効果的な相互作用を促進することに重点を置いています。各大型モデルは、指定された役割指令のガイダンスに従って、割り当てられた任務を遂行することで、全体的なミッションに貢献します。ステージが進むにつれて、大規模モデルは他の大規模モデルと出力を通信し、情報を交換して y を出力します。 文字命令を使用すると、大規模なモデルの出力形式を効果的に制御できます。これを言語モデルの基本的な側面と組み合わせることで、大規模なモデル間の通信を最初に確立できます。 協力部分は次のように形式化できます。 ここで、 はステージ の出力、は前提条件ステージの出力を表し、 は対応するロールを表します。ステージ間の関係が線形でない場合は、自己コラボレーション フレームワークを並列化できることに注意してください。計算は、キャラクターが各前のステージのキャラクターと協力して生成するコラボレーションとして考えられます。ステージが進むにつれて出力 yは反復的に更新されます。 ここで、f は更新関数です。効果的なコラボレーションを促進するために、研究者は共有の黒板を設置し、各役割の人がそれぞれのタスクを完了するために必要な情報を取得できるようにしました。アルゴリズム 1 は、自己コラボレーション フレームワークの完全なアルゴリズムを示します。 インスタンス化研究者らは、コード生成におけるチームコラボレーションをより効率的にするために、ソフトウェアエンジニアリング方法論における古典的なウォーターフォールモデルを自己コラボレーションフレームワークに導入しました。具体的には、研究者らは、自己協調型コード生成の例として、分析、コーディング、テストの 3 つの段階で構成される簡略化されたウォーターフォール モデルを設計しました。このインスタンスのワークフローはウォーターフォール モデルに従っており、1 つのステージから次のステージへと流れ、問題が見つかった場合は前のステージに戻って改善します。そのため、研究者は、図 1 (右) に示すように、分析、コーディング、テストの各フェーズを担当するアナリスト、コーダー、テスターを含む基本チームを結成しました。 3 つの異なる役割には、次のタスクが割り当てられます。 アナリスト: アナリストの目標は、実装の詳細を掘り下げるのではなく、高レベルの計画を作成し、プログラマーがプログラムを作成できるように指導することに重点を置くことです。要件 x が与えられると、アナリストは x をプログラマーが直接実装できるように簡単に解決できるいくつかのサブタスクに分割し、実装の主な手順を概説した計画を作成します。 プログラマー: チームの中核的な役割として、プログラマーは開発プロセス全体を通じてアナリストからの計画やテスターからのテストレポートを受け取ります。そのため、研究者は役割の説明を通じてプログラマーに 2 つの主な責任を割り当てました。1. 指定された要件を満たすコードを記述し、アナリストによって提供された計画に準拠する。 2. テスターからのテストレポートのフィードバックを考慮して、コードを修正または改良します。エンコーダーロールの指示の詳細は図 2 に示されています。 テスター: テスターはプログラマーが書いたコードを受け取り、機能性、可読性、保守性などのさまざまな側面を網羅したテスト レポートを記録します。研究者は、テストケースを生成してからテストコードを手動で実行するのではなく、モデルがテストプロセスをシミュレートしてテストレポートを生成することを提唱しており、これにより対話が容易になり、余分な作業が回避されます。 研究者は、このインスタンスがこれら 3 つの役割を果たすための役割指示を作成しました。エンコーダーロール命令の例を図 2 に示します。この場合、ロール ディレクティブにはロールの説明 (ロールとその責任) だけでなく、チームの説明とユーザー要件も含まれており、これらが組み合わさって ChatGPT エージェントが初期化され、ChatGPT の動作が設定されます。インスタンスは、ステージがコーディング中の場合にのみ出力を更新し、テスターが要件が満たされていることを確認すると、この開発プロセスは終了します。 実験結果研究者らは、自己コラボレーション コード生成をさまざまな最先端 (SOTA) 手法と比較し、実験結果から、自己コラボレーション フレームワークによって基本的な大規模モデルのパフォーマンスが大幅に向上したことが示されました。注目すべきは、アナリスト、プログラマー、テスターの 3 人からなるシンプルなチームであっても、ChatGPT (GPT-3.5) に基づく自己コラボレーション コード生成が 4 つのコード生成ベンチマークで最高のパフォーマンスを達成し、GPT-4 を上回ったことです。ベースモデル自体のギャップを考慮すると、GPT-4 などのより強力なモデルに自己コラボレーション フレームワークを適用すると、より良い結果が得られます。 研究者らは、実際のソフトウェア開発に近い設定である自然言語記述のみを使用したコード生成をさらに研究した。この設定では、表 2 に示すように、自己コラボレーション フレームワークによってインスタンス化された基本チーム内の各 ChatGPT ロールのパフォーマンスを比較しました。実験結果によると、2 つの役割と 3 つの役割の両方で構成されたチームのパフォーマンスは、プログラマーの役割のみを使用する場合に比べて大幅に向上することが示されています。 研究者らは、さまざまなモデルサイズにおける大規模モデルの自己協力能力も研究した。研究者らは、複雑なタスク、特に直接コード生成が難しいタスクの処理における自己コラボレーション手法の有効性を評価しました。このようなタスクに対して、研究者は解決策として自己コラボレーション戦略を採用します。図 6 に示すように、モデル サイズが大きくなるにつれて、大規模モデルのコーディング能力は一般的に増加傾向を示しますが、自己協調能力は 70 億パラメータ付近で現れ始め、その後も向上し続けます。実験結果は、自己協力が大規模モデルの潜在的な知能を刺激するのに役立つことを示しています。 さらに、研究者らは、図 4 に示すように、自己コラボレーション コード生成の例を示しました。このテスト レポートでは、実装されたコードによって重複した要素がリストから削除され、一部のエッジ テスト ケースが失敗する可能性があることをテスターが指摘しました。したがって、実装されたコードから「lst = list (set (lst))」の行を削除することをお勧めします。その後、プログラマーはテスト レポートからのフィードバックに基づいて、「lst = list (set (lst))」の行を削除しました。最後のやり取りでは、テスターは変更されたコードがすべてのテストに合格し、要件を満たしていることを確認し、コード生成プロセスはここで終了します。 研究者らは、図 5 と 9 に示すように、ゲーム開発と Web ページ制作という、より複雑な現実世界のコード プロジェクトの 2 つの例にも自己コラボレーション フレームワークを適用しました。自己コラボレーションにより、完全なゲームロジックと満足のいくゲームインターフェイスを作成できます。天気予報 Web ページの開発では、外部の天気インターフェイスを正しく呼び出してすべての機能を実現することもできます。ただし、直接コードを生成すると、必要な機能が全てカバーされず、バグが発生するため、効果は良くありません。 要約すると、自己コラボレーション フレームワークはコード生成タスクで大幅なパフォーマンス向上を示し、複数の役割を持つチームは単一の役割を持つチームよりもさまざまな問題や課題をより効果的に処理できます。この方法は、自然言語処理とコード生成の分野に新たな研究方向を提供するものであり、さらなる調査と最適化に値します。今後の作業には、より多くの役割とより強力なモデルの探索、および自己コラボレーション フレームワークを他の自然言語処理タスクに適用することが含まれる可能性があります。 結論はこの研究では、研究者らは、協力と相互作用の方法を通じて大規模モデルの問題解決能力を強化することを目的とした自己コラボレーション フレームワークを提案しました。具体的には、ソフトウェア開発プロセスにおけるチームベースのコード生成とコラボレーションを促進する ChatGPT の可能性を調査しました。この目的のために、研究者は、コード生成タスクを包括的に解決することを目標に、3 つの異なる ChatGPT ロールで構成される基本チームを結成しました。自己コラボレーション フレームワークの有効性と一般化パフォーマンスを評価するために、研究者はさまざまなコード生成ベンチマークで広範な実験を実施しました。実験結果は、自己コラボレーション フレームワークの有効性と普遍性を裏付ける多くの証拠を提供します。研究者たちは、モデルが独自のチームを形成し、協力して複雑なタスクを完了できるようにすることが、AGI を実現するための重要なステップであると考えています。今後、この研究技術は、aiXcoder(大規模コードモデルに基づくインテリジェントソフトウェア開発システム)の製品にも直接適用される予定です。 |
<<: ソフトマックスを放棄した初の大規模線形アテンショントランスフォーマーモデル: 1750億のパラメータ、より優れた速度と精度
>>: Google は、ロボットにゴミを捨てることを教えることができる視覚言語アクション モデル RT-2 をリリースしました。
研究者たちは、研究室の中を動き回り、人間のように科学実験を行うことができる画期的なロボット研究助手を...
翻訳者 | ジン・ヤンレビュー | Chonglou世界中のアナリストが、今後のテクノロジートレンド...
MySQL には、有名なネスト ループ結合という結合アルゴリズムが 1 つだけあります。他の多くのデ...
[[313080]]政府は、医療、輸送、防衛、国家安全保障など、多くの分野で AI とロボット工学を...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[388468]] IBM の最も強力な AI ディベーターである Project Debate...
360は12月20日、Water Dropライブストリーミングプラットフォームを積極的に永久に閉鎖...
人工知能の出現により、ますます多くの企業がそれを業務や生産に応用しています。新しいモバイル開発技術が...
最近、ByteDance Volcano Voice Teamの最新の音楽検索システムであるByte...
大手テクノロジー企業の開発経験からインスピレーションを得る人はたくさんいます。Amazon、Face...