3ヶ月前

SOEN-101:Large Language Model Agentsを用いたソフトウェアプロセスモデルの模倣によるコード生成

Feng Lin, Dong Jae Kim, Tse-Husn
SOEN-101:Large Language Model Agentsを用いたソフトウェアプロセスモデルの模倣によるコード生成
要約

ソフトウェアプロセスモデルは、複雑な開発タスクを解決するためにソフトウェアチーム間の協働とコミュニケーションを促進する上で不可欠である。こうしたソフトウェア工学の実践を靈感に、複数の大規模言語モデル(LLM)エージェントを用いてソフトウェアプロセスモデルを模倣するコード生成フレームワーク「FlowGen」を提案する。FlowGenは、要件エンジニア、アーキテクト、開発者、テスト担当者、スクラムマスターといった日常的な開発活動に対応する役割をLLMエージェントに割り当てることで、3つのプロセスモデル——FlowGenWaterfall、FlowGenTDD、FlowGenScrum——を模倣する。エージェントは、連鎖的思考(chain-of-thought)とプロンプト構成を用いた協調作業により、継続的な自己改善を通じてコード品質を向上させる。本研究では、GPT3.5を基盤とするLLMとして用い、RawGPT、CodeT、Reflexionといった複数のベースラインと比較し、HumanEval、HumanEval-ET、MBPP、MBPP-ETの4つのベンチマーク上でコード生成性能を評価した。その結果、FlowGenScrumが他のプロセスモデルと比較して優れた性能を示し、それぞれHumanEval、HumanEval-ET、MBPP、MBPP-ETにおいてPass@1が75.2、65.5、82.5、56.7を達成した(RawGPT比平均15%の向上)。また、最先端技術と比較しても、FlowGenScrumはCodeTを上回るMBPPでのPass@1を達成しており、両者ともReflexionを上回った。特に注目すべきは、CodeTをFlowGenScrumに統合した場合、統計的に有意な性能向上が見られ、最高のPass@1スコアを達成した点である。さらに分析から、開発活動がコードスモール(code smell)や例外処理に異なる影響を与えることが明らかになった。特に設計作業とコードレビューは、例外処理の追加を促進し、コードスモールの発生を低減する効果があった。最後に、FlowGenモデルはGPT3.5のバージョンや温度パラメータの変化に対しても安定したPass@1スコアを維持しており、ソフトウェアプロセスモデルがLLM生成コードの品質と安定性を向上させる有効性を裏付けている。