IEEE Spectrum:AI 輔助編程能力出現退化跡象

新聞
HongKong
8
06:11 PM · Jan 09 ,2026

IEEE Spectrum 近期刊發的一篇文章《Newer models are more prone to silent but deadly failure modes》指出,過去一年中,多款大型語言模型在代碼生成任務上的實際表現並未持續提升,部分情況下甚至出現質量下降。一些開發者發現,新一代模型生成的代碼雖然“能跑”,但可靠性不如舊版本,修正成本反而上升。

文章提到,早期 AI 編程工具常見的問題是語法錯誤或明顯邏輯錯誤,這類問題通常會直接觸發報錯,開發者可以快速定位並修復。但在更新的模型中,錯誤形態正在發生變化:模型更傾向於生成表面合理、可以執行,但在語義或邏輯層面存在問題的代碼。這類“靜默失敗”不會引發異常,卻可能在後續流程中造成更嚴重的隱患

文章舉例稱,在處理數據分析任務時,新模型有時會在關鍵字段缺失的情況下,擅自改寫邏輯以避免程序崩潰,導致結果看似正常,實則偏離原始需求。相比之下,一些舊模型反而更傾向於提示潛在問題或要求用户確認輸入條件。

下面是一個簡單的 Python 代碼示例,作用是加載一個數據框,然後查找不存在的列

df = pd.read_csv('data.csv') 
df['new_column'] = df['index_value'] + 1 # ‘index_value’ 不存在

顯然,這段代碼永遠無法成功運行。Python 會生成一條易於理解的錯誤信息,解釋説找不到列“index_value”。任何看到這條信息的人都會檢查數據框,並注意到缺少這一列。

文章作者將此錯誤信息發送給了九個不同版本的 ChatGPT,主要基於 GPT-4 的各種變體以及較新的 GPT-5。作者要求每個版本都修復此錯誤,並明確表示只需要完整的代碼,不需要任何註釋。

  • GPT-4 / GPT-4.1 大多給出合適的提示,建議檢查該列是否存在,如果不存在則進行修復。
  • GPT-5 則傾向於偷偷改寫程序,它直接取每一行的實際索引(而不是虛構的“index_value”),然後加 1 來創建新列 new_column。這是最糟糕的結果:代碼執行成功,乍一看似乎是正確的,但結果值本質上是一個隨機數。在實際應用中,這會在後續代碼中造成更大的麻煩。

文章作者認為,這種退化趨勢可能與模型訓練目標和評估機制有關。當前訓練過程往往更強調“輸出可被接受、代碼能夠運行”,而非嚴格保證語義正確性和安全性。同時,越來越多由 AI 生成、但未經過充分審查的代碼被納入訓練數據,也可能放大這一問題。

作者最後指出,AI 編程工具依然具備顯著價值,但在實際工程中仍需開發者保持審慎,依賴完善的測試與人工審查來兜底。短期內,AI 更適合作為輔助工具,而非可以完全信任的自動化編程替代方案。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.