AI生成代碼在真實倉庫中的大規模實證研究
一項大規模研究發現,在真實軟件倉庫中,AI輔助生成的代碼與人類編寫代碼在代碼級指標上差異較小,但在提交大小、穩定性和代碼重複率等方面存在新特徵。
大型語言模型(LLM)正在徹底改變軟件工程領域,使開發者能夠生成從簡單代碼片段到完整項目的內容。隨着AI輔助代碼越來越多地集成到真實世界的系統中,瞭解其特性和影響變得至關重要。然而,現有的研究大多侷限於實驗室環境,使用合成基準和簡單任務,且覆蓋的指標有限。AI輔助代碼在真實代碼庫中的實際表現以及它與人類編寫代碼之間的差異仍然不清楚。
為了填補這一空白,研究人員進行了一項大規模測量研究,首次在真實倉庫中對比了AI輔助代碼與人類編寫的代碼。他們研究了一套全面的指標集,包括代碼級方面(如結構和圖複雜度、編碼風格、安全質量等)和提交級特徵(如提交大小、頻率、提交後穩定性等)。研究結果提供了新的發現:一些結果與實驗室環境中的觀察相反——例如,在真實世界中,AI與人類在代碼級指標上的差異很小,而不是更顯著;另一些結果以更細緻的觀察擴展了先前的研究,如不同編程語言之間安全質量的差異;還有更多結果是首次提出的,例如代碼重複率、提交大小和穩定性等。
基於這些全面的真實世界結果,研究還討論了AI輔助編程的實際意義。例如,AI生成的代碼在整體上與人類代碼表現相似,但在代碼重複率等具體指標上可能更高,這提示開發者需要關注代碼複用帶來的維護問題。此外,AI輔助的提交通常規模更大,但後續穩定性與人類提交相當。這些發現為AI編程工具的優化和最佳實踐提供了重要參考,同時也強調了在評估AI代碼時考慮真實環境差異的必要性。