7月7日、IEEE Spectrumで「ChatGPT は実際にコーディングが得意なのでしょうか? (How Good Is ChatGPT at Coding, Really?)」と題した記事が公開された。この記事では、AI生成コードの機能性、複雑性、およびセキュリティに関する研究結果について詳しく紹介されている。

この研究は、OpenAIのChatGPTが生成するコードを人間のプログラマが書くコードと比較し、その機能性、複雑性、およびセキュリティ面を評価したものである。研究結果は、タスクの難易度や使用するプログラミング言語、その他の要因に応じて、生成されるコードの成功率が0.66%から89%まで大きく異なることを示している。
特に、以下の点が注目された:
- 成功率:ChatGPTは、2021年以前のLeetCodeの問題に対しては、簡単な問題で89%、中程度の問題で71%、難しい問題で40%の成功率を示した。しかし、2021年以降の問題に対しては成功率が著しく低下し、簡単な問題で52%、難しい問題では0.66%にまで落ち込んだ。
- エラー修正能力:ChatGPTは、コンパイルエラーの修正には優れているが、自身の誤りを修正する能力には限界がある。特に、アルゴリズム問題の意味を理解しないため、簡単なエラーフィードバックでは不十分であることが判明した。
- コードの脆弱性:生成されたコードには、nullチェックの欠如などの脆弱性が含まれるが、多くは簡単に修正可能である。
研究に関与したグラスゴー大学の講師、Yutian Tang氏は、AIベースのコード生成が生産性の向上やソフトウェア開発の自動化に利点をもたらす一方で、これらのモデルの強みと限界を理解することの重要性を強調している。
また、研究チームは、ChatGPTが新しい問題に対する批判的思考スキルを欠いているため、既存の問題に対しては良い成果を出す一方で、新しい問題に対してはパフォーマンスが低下することを発見した。
詳細は、How Good Is ChatGPT at Coding, Really?を参照していただきたい。