IEEE 評估 AI 寫程式的能力 簡單問題成功率達 89% 困難問題僅 0.66%

coding

研究指出,程式設計師經歷了數十年撰寫人工智能(AI)模型的程式碼,現在 AI 正在進行一個圓滿的循環,開始自己寫程式碼。然而,AI 程式碼生成器能否與人類程式設計師媲美呢?

ai coding

ChatGPT 寫程式能力評估

《IEEE Transactions on Software Engineering》六月期刊發佈的一項研究評估了 OpenAI 的 ChatGPT 所生成程式碼的功能性、複雜度和安全性。研究結果顯示,ChatGPT 在生成功能性程式碼方面,成功率範圍廣泛,從低至 0.66% 到高達 89%,取決於任務的難度、程式語言及其他多種因素。

AI 生成程式碼的優勢與挑戰

格拉斯哥大學講師 Yutian Tang 表示,基於 AI 的程式碼生成可以提升生產力並自動化軟體開發任務,但需了解這些模型的優勢與局限。通過全面分析,可以發現 ChatGPT 程式碼生成中可能出現的問題和局限,從而改進生成技術。

ChatGPT 的測試與表現

Tang 的團隊測試了 GPT-3.5 在五種程式語言(C、C++、Java、JavaScript、Python)中處理 728 個 LeetCode 測試平台上的程式問題的能力。ChatGPT 在解決不同語言的問題時表現尚佳,尤其在處理 2021 年前的 LeetCode 問題時,成功率較高。具體來說,簡單、中等和困難問題的成功率分別約為 89%、71% 和 40%。

然而,對於 2021 年後的算法問題,ChatGPT 生成功能性正確程式碼的能力下降。例如,簡單問題的成功率從 89% 下降到 52%,困難問題的成功率從 40% 下降到 0.66%。

ChatGPT 的局限與改進建議

Tang 認為,ChatGPT 對 2021 年前的問題表現較佳,可能是因為這些問題在訓練數據集中較常見。隨著程式設計的演變,ChatGPT 尚未接觸到新的問題和解決方案,缺乏人類的批判性思維,只能處理先前遇到的問題。

值得注意的是,ChatGPT 生成的程式碼在運行時間和記憶體開銷方面優於至少 50% 的人類解決方案。研究還探索了 ChatGPT 在接收 LeetCode 反饋後修正自身錯誤程式碼的能力。隨機選擇了 50 個 ChatGPT 最初生成錯誤程式碼的場景,結果顯示,雖然 ChatGPT 能修正編譯錯誤,但對於理解錯誤的修正能力有限。

研究還發現,ChatGPT 生成的程式碼存在一些漏洞,如缺少空指針測試,但大多數易於修復。研究結果顯示,C 語言生成的程式碼最複雜,其次是 C++ 和 Python,後兩者的複雜度與人類編寫的程式碼相似。

Tang 建議,開發者在使用 ChatGPT 時,應提供更多資訊幫助其更好地理解問題或避免漏洞。例如,面對複雜的程式問題時,開發者可以提供相關知識,並在提示中告知 ChatGPT 需注意的潛在漏洞。

加入本站 WhatsApp 頻道最新限免情報立即知。

全新本站官方《限時情報王》 iOS 版 登場。限免已完結?不想錯過重大限免應用,可到本站追蹤 Telegram 頻道FacebookIG