「大規模言語モデルにより自動生成されたソースコードの分析」(2023年度卒業研究)

本研究では、大規模言語モデル(LLM)によって自動生成されたプログラムの品質を、ソースコードのステップ数や複雑度などのコードメトリクスと静的解析ツールを適用し、品質状況を調査しました。近年、ChatGPTに代表されるLLM はプログラミング支援能力を備え、開発効率や保守性の向上への活用が期待されています。しかし自動生成コードには、不要な変数や条件分岐が含まれる場合もあり、その品質状況の調査が現状十分とは言えません。

そこで本研究では、40件のC言語のプログラミング問題をChatGPTに生成させて、得られたソースコードを静的解析ツールLizardにより循環的複雑度(CCN)を分析しました。

CCN目安
1~10シンプルで理解しやすいプログラム
11~20若干複雑なプログラム
21~複雑なプログラムであり、完全に理 解してテストを作成するのが困難
50〜保守困難、バグが確実に潜在するプログラム
表 循環的複雑度(CCN)の一般的な目安


結果として、正解したソースコードは32問で正答率は80%、さらに全てのコードのCCNの値が10以下と低い複雑度であり、可読性の高いコードが生成されることが確認されました。これらの結果から、LLMを用いた自動プログラミングは、開発速度の向上、品質の向上、保守性の向上、コストの削減などの多くの利点が期待できます。

図 ソースコードの循環的複雑度