Skip to main content
QUICK REVIEW

[論文レビュー] No Need to Lift a Finger Anymore? Assessing the Quality of Code Generation by ChatGPT

Zhijie Liu, Yutian Tang|arXiv (Cornell University)|Aug 9, 2023
Artificial Intelligence in Healthcare and EducationMedicine被引用数 3
ひとこと要約

本研究は、C、C++、Java、Python、JavaScriptの5言語において、正しさ、複雑さ、セキュリティの観点からChatGPTのコード生成能力を体系的に評価している。728個のアルゴリズム問題と54のCWEベースのシナリオを用いて、ChatGPTは2021年以前の問題に対しては48.14%高い受容率で機能的に正しいコードを生成するが、直接的なバグ修正能力は弱い。一方、複数ラウンドの修正により89%以上の脆弱性が解消されるが、複雑さはしばしば増加し、非決定性の影響により出力の一貫性が損なわれる。

ABSTRACT

Large language models (LLMs) have demonstrated impressive capabilities across various NLP tasks. Additionally, LLMs are also highly valuable in supporting software engineering tasks, particularly in the field of code generation. Automatic code generation is a process of automatically generating source code or executable code based on given specifications or requirements, improving developer productivity. In this study, we perform a systematic empirical assessment to the quality of code generation using ChatGPT. We leverage 728 algorithm problems in five languages (i.e., C, C++, Java, Python, and JavaScript) and 18 CWEs with 54 code scenarios for the code generation task. Our evaluation encompasses a comprehensive analysis of code snippets generated by ChatGPT, focusing on three critical aspects: correctness, complexity, and security. We also specifically investigate ChatGPT's ability to engage in multi-round fixing process (i.e., ChatGPT's dialog ability) of facilitating code generation. By delving into the generated code and examining the experimental results, this work provides valuable insights into the performance of ChatGPT in tackling code generation tasks over the three critical aspects. Overall, our findings uncover potential issues and limitations that arise in the ChatGPT-based code generation and lay the groundwork for improving AI and LLM-based code generation techniques.

研究の動機と目的

  • ChatGPTが複数のプログラミング言語および問題セットで生成するコードの機能的正しさを評価すること。
  • ChatGPTが生成するコードスニペットの巡回的および認知的複雑さを分析すること。
  • CWEベースのシナリオを用いて、生成コードに存在するセキュリティ脆弱性の有無と是正方法を調査すること。
  • 複数ラウンドの修正プロセスがコード品質の向上にどの程度効果的であるかを評価すること。
  • ChatGPTの非決定性が、正しさ、複雑さ、セキュリティの観点でのコードの一貫性に与える影響を検討すること。

提案手法

  • 本研究では、コンテストプログラミングプラットフォームから抽出した728個のアルゴリズム問題を、2021年以前と2021年以降の問題セットに分類して使用している。
  • C、C++、Java、Python、JavaScriptの5言語でコード生成を評価し、標準化された判断プラットフォームを用いている。
  • セキュリティ脆弱性は、18のCWEを用いて54のコードシナリオで評価され、一般的なコーディングミスに焦点を当てている。
  • 複数ラウンドの修正プロセスをシミュレートし、ChatGPTがフィードバックに基づいてバグのあるコードを段階的に見直すプロセスを実施している。
  • 各生成コードスニペットの複雑さを測定するため、巡回的および認知的複雑さの指標を計算している。
  • 非決定性は、同じプロンプトに対して複数回のコード生成を実施し、正しさ、複雑さ、セキュリティの観点でのばらつきを測定することで分析している。

実験結果

リサーチクエスチョン

  • RQ1ChatGPTのコード生成パフォーマンスは、2021年以前のアルゴリズム問題と2021年以降の問題とで、機能的正しさの観点からどのように異なるか?
  • RQ2ChatGPTが生成するコードの巡回的および認知的複雑さは、異なるプログラミング言語でどのように分布しているか?
  • RQ3ChatGPTが生成するコードスニペットは、実世界のCWEシナリオにおいてどの程度のセキュリティ脆弱性を含んでいるか?
  • RQ4複数ラウンドの修正プロセスは、生成コードの機能的バグの是正およびセキュリティ脆弱性の解消にどの程度効果的か?
  • RQ5ChatGPTの非決定性は、正しさ、複雑さ、セキュリティの観点でコード生成の一貫性にどのように影響を与えるか?

主な発見

  • ChatGPTは2021年以前のアルゴリズム問題に対して、コード判断プラットフォームで平均して48.14%高い受容率を達成している。
  • ChatGPTによる複数ラウンドの修正プロセスは、誤ったコードを直接的に機能的に正しいものに是正する能力が弱い。
  • 巡回的および認知的複雑さのレベルは、異なるプログラミング言語で顕著に異なるが、複数ラウンドの修正において一般に複雑さは維持されたり増加する。
  • アルゴリズム問題におけるC、C++、JavaおよびCWEベースのシナリオにおけるCとPython3において、ChatGPTが生成するコードには関連するセキュリティ脆弱性が存在する。
  • 複数ラウンドの修正プロセスにより、Cでは脆弱性の100%、Python3では89.4%が正常に是正され、高い是正可能性が示された。
  • ChatGPTの非決定性は、同じプロンプトの複数回の生成において、機能的正しさ、複雑さ、セキュリティの観点で出力にばらつきをもたらす。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。