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