近期,BuzzFeed的高級數據科學家麥克斯·伍爾夫進行了一項引人入勝的實驗,旨在探索通過反復請求AI改進代碼的效果。實驗中,他使用了Claude3.5語言模型,並提出了一個經典的編程挑戰:編寫Python代碼,以找出一百萬個隨機數中,數字之和為30的最大值和最小值之間的差值。
在初始版本中,Claude生成的代碼運行時間為657毫秒。然而,隨著伍爾夫不斷輸入“寫出更好的代碼(write better code)”這一簡單指令,最終生成的代碼運行時間縮短至僅6毫秒,性能提升了整整100倍。這一結果不僅令人矚目,AI在定義“更好代碼”的過程中也展現了意想不到的變化。
在第四次請求“寫更好的代碼”時,Claude意外地將代碼轉變為類似企業應用程序的結構,添加了一些典型的企業特性,而伍爾夫並未對此提出要求。這表明,AI可能將“更好代碼”與“企業級軟件”聯繫在了一起,反映了其訓練過程中所吸收的知識。
開發者西蒙·威利森對這種迭代改進現象進行了深入分析,認為語言模型在每次新的請求中都以全新的視角來審視代碼。儘管每次請求都包含之前對話的上下文,但Claude在分析時如同第一次看到該代碼一樣,這使得它能夠不斷改進。
不過,伍爾夫在進行更多具體請求的嘗試中發現,雖然這樣可以更快地獲得更好的結果,但代碼中仍然會出現一些需要人類修復的細微錯誤。因此,他強調,精確的提示工程依然至關重要。儘管簡單的後續問題可以初步提高代碼質量,但有針對性的提示工程會帶來顯著的性能提升,儘管風險也會相應增加。
值得注意的是,在這項實驗中,Claude跳過了一些人類開發者認為理所當然的優化步驟,例如去重或先對數字進行排序。此外,提問方式的細微變化也會顯著影響Claude的輸出。
儘管這些性能提升令人印象深刻,伍爾夫依然提醒我們,人工開發者在驗證解決方案和故障排除方面仍然不可或缺。他指出,雖然AI生成的代碼不能直接使用,但其在創意和工具建議方面的能力值得關注。
劃重點:
AI通過反復指令提升代碼性能,原代碼運行時間從657毫秒降至6毫秒。
AI在代碼中自動添加企業特性,展現出其對“更好代碼”的獨特理解。
提示工程依然重要,精確的請求可以加速結果生成,但仍需人工開發者進行驗證和修復。