極客網(wǎng)·人工智能2月26日 在軟件開發(fā)領(lǐng)域,AI工具越來越流行。去年GitHub發(fā)布報告稱,有了AI輔助工具,開發(fā)者編程速度提高55%。
但是,AI工具輔助編寫的代碼是不是更好呢?GitClear對2020年1月至2023年12月間編寫的1.53億行代碼進(jìn)行檢查發(fā)現(xiàn),相比以前,編寫之后修改的代碼行數(shù)明顯增加,2024年相比2021年增加了一倍。
換言之,有了AI工具,雖然編程速度加快了,但在第一次編寫時錯誤也大大增加了。形象地說,用AI輔助編寫代碼,就像聘請一名短期合同工為你工作,他關(guān)心的是如何編寫冗長的代碼,而不是保證代碼的可維護(hù)性。
AI會復(fù)制原有代碼的錯誤
開發(fā)者安全公司Snyk在報告中指出,GitHub AI編程輔助工具Copilot并不安全,如果已有代碼庫本身存在安全問題,工具編寫的代碼同樣也會不安全。
Snyk在2月22日的報告中指出,Copilot會復(fù)制代碼中存在的安全問題,如此一來,已有安全隱患會讓Copilot代碼更加不安全。
市場上已經(jīng)出現(xiàn)不少生成式AI編程工具,比如亞馬遜CodeWhisperer,ChatGPT等?,F(xiàn)有工具的最大問題在于:它無法理解語義,所以無法對代碼作出評判。
GitHub Copilot從海量過往代碼中學(xué)習(xí),形成特定模式和結(jié)構(gòu),然后生成代碼片段。這套學(xué)習(xí)方法有一定優(yōu)勢,但也有一個缺陷。Copilot代碼可能會復(fù)制已有安全漏洞,或者復(fù)制相鄰文件中的不良案例。
如何降低影響呢?Snyk給出一些建議:包括開發(fā)者手動檢查代碼;安全團(tuán)隊?wèi)?yīng)該設(shè)立SAST護(hù)欄;開發(fā)者應(yīng)該遵守安全編程指南;安全團(tuán)隊?wèi)?yīng)該給開發(fā)團(tuán)隊培訓(xùn),將每個團(tuán)隊的積壓問題分類,按優(yōu)先級排序;執(zhí)行團(tuán)隊?wèi)?yīng)該強(qiáng)制設(shè)置安全護(hù)欄。
一般來說,平均每個商務(wù)軟件項目的第一手代碼都會有40個漏洞,當(dāng)中約三分之一都是高危漏洞。AI生成工具會復(fù)制這些漏洞,影響惡劣??缯灸_本攻擊(cross-site scripting,XSS)、路徑穿越(Path Traversal)、SQL注入、硬編碼加密密鑰等安全問題比較常見。
所以,行業(yè)幾乎有一個共識:就眼下來看,AI輔助編程還沒有迎來黃金時代,AI還不夠好。
但AI輔助編程未來可期
GitHub CEO Thomas Dohmke不久前接受采訪時表示:“開發(fā)者已經(jīng)進(jìn)入AI時代。現(xiàn)在的問題已經(jīng)很明確,你準(zhǔn)備以多快的速度上船?你是不是準(zhǔn)備繼續(xù)沉醉于過去,站在歷史錯誤的一邊,忽視生產(chǎn)力提升的大好機(jī)遇?”
GitHub Copilot實際上歸微軟所有,最新財報顯示,最近一個季度Copilot付費(fèi)用戶數(shù)已經(jīng)突破130萬,相比前一個季度猛增30%,已經(jīng)有5萬家企業(yè)使用Copilot。
Thomas Dohmke稱,平臺上用戶編寫的代碼約有一半是AI生成的。Thomas Dohmke認(rèn)為,社區(qū)已經(jīng)普遍接受一個觀點,即AI生成代碼需要人類程序員監(jiān)督審核。
值得一提的是,新手程序員特別喜歡使用Copilot,因為它能協(xié)助解決編程難題。
隨著編程自動化程度的增加,代碼中的錯誤可能會越來越多,這點其實已經(jīng)引起爭論。Thomas Dohmke稱,自Copilot引入之后錯誤增加數(shù)量比較“正?!?,沒有證據(jù)證明AI導(dǎo)致錯誤猛增。
真是這樣嗎?未必。新手程序員大規(guī)模使用AI,一旦出現(xiàn)錯誤,新手可能無法發(fā)現(xiàn),整個代碼的質(zhì)量可能會下降。
微軟對AI工具充滿期待,除了編程,它還希望Copilot能幫助用戶寫郵件、制作電子表格、分析Office文檔。微軟甚至還為Windows PC鍵盤增加一個“Copilot”按鍵。谷歌也在開發(fā)類似工具。
微軟CEO納德拉在最近的財報會議上表示,圍繞GitHub Copilot和它的生產(chǎn)力問題,我們已經(jīng)看到很多的證據(jù)和數(shù)據(jù),結(jié)果不錯。納德拉預(yù)計其它Copilot應(yīng)用也會帶來良好效果。
總之,目前Copilot還是新生事物,相信再過一段時間,當(dāng)我們擁有更多數(shù)據(jù),就能對上述問題有更深刻理解。(小刀)
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )