自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么人工智能生成的代碼不夠好?如何變得更好?

譯文 精選
人工智能
近年來,大型語言模型(LLM)迅速興起,帶動了生產(chǎn)率的大幅提高。編程助手的蓬勃發(fā)展,數(shù)百萬個多行代碼塊通過按鍵便可輕松實現(xiàn)生成及合并。這一切就像變魔術(shù)一樣。

譯者 | 晶顏

審校 | 重樓

我們是否過早地標準化了人工智能生成的代碼?以下是它的不足之處及改進方式。

近年來,大型語言模型(LLM)迅速興起,帶動了生產(chǎn)率的大幅提高。編程助手的蓬勃發(fā)展,數(shù)百萬個多行代碼塊通過按鍵便可輕松實現(xiàn)生成及合并。這一切就像變魔術(shù)一樣。但在每個人的內(nèi)心深處都有一個揮之不去的想法——我真的能相信這段代碼嗎?

時至今日,質(zhì)疑人工智能在軟件開發(fā)中的價值無疑是可笑的,因為它早已不可避免地根深蒂固。微軟報告稱,有1.5億開發(fā)人員使用GitHub Copilot。Stack Overflow在2024年的調(diào)查發(fā)現(xiàn),61.8%的開發(fā)者在開發(fā)過程中使用人工智能。谷歌聲稱超過四分之一的新代碼是人工智能生成的。

簡而言之,人工智能生成的代碼已經(jīng)成為常態(tài)!但它真的能勝任這項任務嗎?

AI生成代碼存在的問題

Exabeam首席產(chǎn)品官史蒂夫?威爾遜(Steve Wilson)表示:“讓我們面對現(xiàn)實吧!LLM不是軟件工程師。它們就像有著金魚記憶的實習生,雖然很擅長快速完成任務,但并不擅長追蹤大局?!?/p>

隨著對人工智能依賴的增加,這種“大局”正在被邊緣化。具有諷刺意味的是,根據(jù)《2025年軟件交付狀況報告》顯示,開發(fā)人員的總工作量正在增加——大多數(shù)開發(fā)人員需要花更多的時間來調(diào)試人工智能生成的代碼和解決安全漏洞。

Onymos聯(lián)合創(chuàng)始人兼工程副總裁巴瓦尼?萬加拉(Bhavani Vangala)表示:“人工智能的輸出通常相當不錯,但仍然不夠可靠。它需要更加準確和一致。開發(fā)者仍然需要審查、調(diào)試和調(diào)整它?!?/p>

為了改進人工智能生成的代碼,我們必須解決關鍵問題:不信任、代碼質(zhì)量問題、上下文限制、幻覺和安全風險。人工智能顯示出令人難以置信的前景,但人類的監(jiān)督仍然至關重要。

代碼膨脹和上下文限制

AI代碼完成工具傾向于從頭開始生成新代碼,而不是重用或重構(gòu)現(xiàn)有代碼,從而導致技術(shù)債務。更糟糕的是,它們傾向于重復代碼,失去了代碼重用的機會,并增加了必須維護的代碼量。當冗長或低效的代碼增加了技術(shù)債務時,就會出現(xiàn)代碼膨脹和可維護性問題。

GitClear公司發(fā)布的《2025年AI Copilot代碼質(zhì)量報告》分析了2.11億行代碼變化,并發(fā)現(xiàn)在2024年,重復代碼塊的頻率增加了8倍。研究還指出,除了增加不必要的技術(shù)債務之外,克隆的代碼塊還會造成更多的(高出15%到50%)安全漏洞

這些問題源于人工智能有限的上下文。人工智能擁有的上下文無疑是越多越好,但提供給人工智能模型的信息量總是有限的。GitHub報告稱,Copilot Chat有一個64k-128k的令牌上下文窗口,相當于大約30到100個小文件或5到20個大文件。雖然上下文窗口正在增長,但它們?nèi)匀徊蛔阋哉莆胀暾能浖軜?gòu)或建議適當?shù)闹貥?gòu)。

缺乏“大局觀”思維

雖然人工智能擅長模式識別,但它看不到代碼背后的“原因”,缺乏高級工程師所具備的全面背景和解決問題的能力,這限制了它在業(yè)務邏輯、用戶體驗或長期可維護性之間進行權(quán)衡的能力。

編碼本質(zhì)上是一項創(chuàng)造性的、以人為中心的活動。人工智能無法創(chuàng)造以前不存在的新事物。而開發(fā)人員則可以利用創(chuàng)造力和對人類偏好的了解來構(gòu)建專門為最終用戶設計的解決方案。

因此,在生成整個程序或需要更廣泛背景的領域,人工智能工具通?!袄速M的時間多于節(jié)省的時間”。當它們被要求編寫較長形式的例程時,生成的代碼質(zhì)量會顯著下降。

幻覺和安全風險

幻覺仍然是一個問題。Exabeam的威爾遜表示:“人工智能不僅會犯錯,而且會自信地犯錯。它將發(fā)明不存在的開源軟件包,引入微妙的安全漏洞,并一本正經(jīng)地做這一切。”

這些錯誤通常源于糟糕的數(shù)據(jù)語料庫。人工智能在合成數(shù)據(jù)上的訓練可能會產(chǎn)生一個回音室,導致模型崩潰。

Crowdbotics研究與創(chuàng)新副總裁科里?海梅爾(Cory Hymel)同樣指出,缺乏高質(zhì)量的訓練數(shù)據(jù)是最大的障礙。例如,GitHub Copilot使用的流行模型OpenAI Codex就是在包含錯誤的公開可用代碼上訓練的,這些錯誤會對模型質(zhì)量造成影響。

安全漏洞是另一個問題。人工智能生成的代碼可能包含可利用的漏洞。雖然人工智能擅長修復漏洞,但它通常很難找到這些漏洞。OpenAI的一篇研究論文指出:“AI代理可以非常快地查明問題的根源,通過在整個存儲庫中使用關鍵字搜索來快速定位相關文件和函數(shù)——這一過程通常比人類快得多。然而,它們通常對問題如何跨越多個組件或文件的理解有限,并且無法解決根本原因,從而導致解決方案不正確或不夠全面?!?/p>

其他行業(yè)報告也發(fā)現(xiàn)了越來越多的人工智能缺陷。例如,Apiiro的研究發(fā)現(xiàn),自2023年中期以來,代碼庫中暴露的個人身份信息(PII)和支付數(shù)據(jù)激增了三倍,這歸因于采用人工智能輔助開發(fā)。

法律灰色地帶也可能阻礙人工智能代碼的使用,并引入合規(guī)性問題——一些人工智能工具聲稱對它們輸出的代碼擁有所有權(quán),而另一些工具則保留知識產(chǎn)權(quán)用于模型再培訓目的。

不信任和采用障礙

“這一切都歸結(jié)為信任——人們信任人工智能生成的新應用程序嗎?”Salesforce負責產(chǎn)品管理的副總裁丹?費爾南德斯(Dan Fernandez)問道。谷歌發(fā)布的《2024年DORA報告》發(fā)現(xiàn),平均而言,開發(fā)人員只“有點”信任人工智能生成的代碼。

Durkin認為,采用人工智能的最大障礙是對其準確性的信任。與人類開發(fā)人員不同,人工智能沒有內(nèi)在的良心或責任,這使得合規(guī)性和可靠性檢查對人工智能的輸出更為重要。

人工智能的不透明性也使得人們很難信任關鍵的應用程序。Contentful的工程執(zhí)行副總裁杰夫?加布里埃爾(Jeff Gabriel)表示:“對于任何人工智能提供的代碼,信任都是一個大問題,尤其是對于遺留代碼,這是大多數(shù)軟件投資發(fā)生的地方?!?/p>

Rez0corp創(chuàng)始人、漏洞賞金獵人約瑟夫?塞克爾(Joseph Thacker)表示:“最大的障礙可能是許多公司內(nèi)部對人工智能的反對?!彼赋?,公司高層經(jīng)常禁止員工使用人工智能。

人工智能生成的代碼將如何改進

盡管人工智能生成的代碼面臨障礙,但解決方案正在路上——許多人重新審視了基本的編碼最佳實踐。

驗證AI輸出

就像人類生成的代碼一樣,必須對人工智能生成的代碼進行嚴格的測試。Vultr首席營銷官Kevin Cochrane表示:“開發(fā)人員仍應仔細審查、完善和優(yōu)化人工智能生成的代碼,以確保其符合安全性、性能和可維護性的最高標準?!?/p>

人工智能輸出的自動化測試將是關鍵。開發(fā)者可以通過自動化測試、靜態(tài)代碼分析和屏蔽訓練AI模型的敏感數(shù)據(jù)來改善AI輸出。此外,人工智能增加的代碼吞吐量給下游流程和系統(tǒng)帶來了壓力,需要在QA測試中實現(xiàn)強大的自動化,以確保持續(xù)的可靠性。

人工智能還可以在自我監(jiān)管方面發(fā)揮作用——雙重檢查代碼質(zhì)量,使用預測模型識別潛在風險,并進行安全掃描。此外,更廣泛地使用負責任的AI (RAI)過濾器來篩選有害內(nèi)容、安全漏洞,并通知用戶公共代碼匹配,這些都很重要。

漸進式部署也可以通過衡量單個代碼更改的影響來幫助避免缺陷。像金絲雀部署、功能標志或功能管理這樣的技術(shù)允許團隊在有限的暴露情況下驗證代碼。

更好的訓練數(shù)據(jù)

這一切都歸結(jié)于訓練數(shù)據(jù),因為正如俗話所說,“垃圾輸入,垃圾輸出”。因此,我們需要更多的清理并使用高質(zhì)量的代碼樣本作為訓練數(shù)據(jù)。避免模型崩潰需要向人工智能模型提供附加數(shù)據(jù),而不是反芻輸出。

為LLM提供特定于項目的上下文,如定制庫、風格指南、軟件材料清單或安全知識,也可以提高準確性。確保人工智能模型接受可信數(shù)據(jù)的訓練,并針對特定應用進行微調(diào),這將有助于提高人工智能生成代碼的準確性,并最大限度地減少輸出中的幻覺。

一些基于IDE的解決方案和技術(shù)的出現(xiàn)也為開發(fā)人員提供了更多的實時上下文。此外,檢索增強生成(RAG)將有助于引用特定于版本的軟件庫或代碼庫。

精細調(diào)整模型

公司不再依賴大規(guī)模的通用模型,而是轉(zhuǎn)向針對特定編碼任務的更小、更專業(yè)的模型。Fernandez表示,“對于開發(fā)人員生命周期中的每個用例來說,最大的模型并不是必需的。我們正在探索一種小型模型的聯(lián)合架構(gòu),在這種架構(gòu)中,低功耗的LLM可以為開發(fā)人員處理許多任務?!?/p>

改進的訓練和精細調(diào)整的模型可能會產(chǎn)生更高程度的準確性,但是最好的結(jié)果可能發(fā)生在公司防火墻后。Crowdbotics公司表示:“2025年,經(jīng)過公司現(xiàn)有代碼訓練的微調(diào)模型將會興起,這些模型在‘墻后’運行,其表現(xiàn)將大大超過公開的模型?!?/p>

增強提示工程

另一個方面是改進提示工程。Contentful的Gabriel表示:“我們還需要研究如何提示,這包括額外的上下文和針對系統(tǒng)特定場景的潛在微調(diào)。”

提示工程將成為軟件工程師工作的必要組成部分。為了實現(xiàn)這一目標,開發(fā)者有責任提升自己的技能,學習如何編寫更好的提示,以獲得自己想要的AI輸出。

新的人工智能解決方案也會有所幫助。rez0corp的Thacker稱:“最大的影響將來自更好的模型和更好的編碼應用程序,它們提供了更多的上下文?!彼傅氖荂ursor等解決方案和最近升級的GitHub Copilot。

新的人工智能代理工具

新的人工智能代理將通過引入自檢功能,繼續(xù)成為整體改進軟件工程的焦點。例如,GitHub增加了Copilot Autofix,它可以實時檢測漏洞并提供修復建議,并為Copilot工作區(qū)添加了構(gòu)建和修復代理。

Fernandez表示:“我預計人工智能生成的代碼將在明年常態(tài)化?!彼赋?,面向軟件開發(fā)人員的人工智能代理正在不斷興起,這些代理將從代碼生成擴展到測試、文檔和代碼審查。

此外,開發(fā)人員還應該調(diào)查無數(shù)可用的工具,找到那些有效的工具,并考慮如何用那些無效的工具填補空白。當然,這一過程將需要個人和組織的投資。

展望未來,許多人預計開源將進一步引領人工智能民主化。GitLab首席產(chǎn)品官大衛(wèi)?德桑托(David DeSanto)表示:“我預計我們將看到更多的開源模型出現(xiàn),以解決特定的用例?!?/p>

圍繞人工智能使用的治理策略

提高開發(fā)人員對人工智能生成代碼的信心也將依賴于為負責任的使用設置護欄。有了適當?shù)淖o欄來確保負責任和可信的人工智能輸出,企業(yè)和開發(fā)人員將更容易采用和信任人工智能生成的代碼。

要實現(xiàn)這一目標,領導層必須確立明確的方向,為那些能夠訪問AI生成代碼的人設定明確的界限,并通過更嚴格的流程來建立開發(fā)者的信心。

確保模型訓練數(shù)據(jù)的透明度也有助于緩解道德和知識產(chǎn)權(quán)風險。而對于有安全意識的組織來說,本地人工智能可能是避免數(shù)據(jù)隱私問題的答案。在氣隙系統(tǒng)中運行自托管模型,離線部署允許人工智能在受監(jiān)管的環(huán)境中使用,同時保持數(shù)據(jù)安全。

在人類和人工智能之間取得平衡

接受本文采訪的所有專家都認為,人工智能將幫助開發(fā)人員,而不是徹底取代他們。事實上,大多數(shù)人認為保持開發(fā)人員的參與是保持代碼質(zhì)量的必要條件。目前,在使用人工智能生成的代碼時,人類的監(jiān)督仍然至關重要。

為什么?部分原因是道德方面的挑戰(zhàn)。完全自動化仍然是不可能實現(xiàn)的,因為人類的監(jiān)督對于解決復雜的架構(gòu)和確保道德標準至關重要。也就是說,人工智能推理有望得到改善。下一階段是人工智能成為一個合法的工程助手,不僅會寫代碼,還能理解它。

其他人甚至更加樂觀。Contentful的Gabriel表示:“我認為最有價值的人工智能驅(qū)動系統(tǒng)將是那些可以完全交給人工智能編碼的系統(tǒng)?!北M管他承認這還并不現(xiàn)實。就目前而言,未來的前景仍然是人工智能和人類并肩合作,開發(fā)人員將更多地承擔監(jiān)督者的角色,而不是親自編寫每一行代碼。

最終目標是在人工智能帶來的生產(chǎn)率提高和避免過度依賴之間取得適當?shù)钠胶狻H绻_發(fā)者過于依賴人工智能而缺乏對底層代碼的扎實理解,將極有可能喪失創(chuàng)造力和技術(shù)深度,阻礙創(chuàng)新步伐。

瘋狂的旅程

亞馬遜最近聲稱,它的人工智能重寫了一個Java應用程序,節(jié)省了2.6億美元。其他機構(gòu)也面臨著證明類似結(jié)果的壓力。Kentosh表示:“目前,大多數(shù)公司都在某種類型的人工智能輔助開發(fā)服務或Copilot上進行了投資,他們需要看到投資的回報?!?/p>

由于許多因素,人工智能的采用將繼續(xù)加速。Thacker補充道:“我認識的大多數(shù)開發(fā)者都在某種程度上使用人工智能。對他們中的許多人來說,人工智能正在編寫他們每天產(chǎn)生的大部分代碼?!?/p>

然而,盡管人工智能有效地消除了重復性任務,但它仍然需要人工干預才能完成“最后一英里”。Crowdbotics的Hymel表示:“大多數(shù)代碼庫都是樣板和可重復的。我們將看到人工智能被用來為應用程序奠定51%以上的‘基礎’,剩余的將交由人類來完成?!?/p>

最后,Wilson提醒稱:“雖然人工智能生成的代碼還不夠好,但如果你忽視它,你就已經(jīng)落后了。接下來的12個月將是一段瘋狂的旅程。”

原文標題:Why AI-generated code isn’t good enough (and how it will get better),作者:Bill Doerrfeld

責任編輯:姜華 來源: 51CTO內(nèi)容精選
相關推薦

2024-02-20 16:14:36

人工智能開源AI

2023-08-22 13:56:02

人工智能邊緣計算

2020-04-15 09:56:29

人工智能技術(shù)SaaS

2020-11-03 10:45:53

人工智能AIAI偏差

2020-08-11 09:13:20

人工智能自動駕駛技術(shù)

2024-01-12 17:36:16

人工智能機器學習

2017-12-13 12:44:07

人工智能技術(shù)AI

2021-10-26 10:00:35

人工智能AI

2025-01-22 13:47:26

2020-01-06 17:37:03

人工智能區(qū)塊鏈技術(shù)

2012-03-27 09:36:59

編程語言

2022-02-03 14:47:29

Windows 11微軟Bug

2024-09-03 10:27:03

2022-07-22 11:02:46

人工智能AI網(wǎng)絡安全

2024-02-26 11:31:33

人工智能數(shù)據(jù)中心

2022-12-06 07:34:36

語音助手自動語音音箱

2023-05-17 17:32:25

2012-07-05 11:09:25

2021-01-14 22:13:03

人工智能教育互聯(lián)網(wǎng)

2022-09-07 11:34:49

人工智能智能建筑
點贊
收藏

51CTO技術(shù)棧公眾號