AI生成的代碼正在把程序員逼到“崩潰”
原創(chuàng) 王茜茜 | 2024-08-28 09:02
【數(shù)據(jù)猿導(dǎo)讀】 最近,在技術(shù)社區(qū)HakerNews里,開(kāi)發(fā)者們?cè)俅伍_(kāi)啟了對(duì)AI代碼的瘋狂吐槽。這起源于一篇名為“我厭倦了修改客戶用AI生成的代碼”文章。

最近,在技術(shù)社區(qū)HakerNews里,開(kāi)發(fā)者們?cè)俅伍_(kāi)啟了對(duì)AI代碼的瘋狂吐槽。
這起源于一篇名為“我厭倦了修改客戶用AI生成的代碼”文章。
在文章里,名叫Tacitus的小哥說(shuō)自己在今年年初開(kāi)發(fā)了一些用來(lái)做資產(chǎn)交易和相關(guān)數(shù)據(jù)收集的工具,有償開(kāi)放API給有類似需求的人,并且提供一些技術(shù)支持。
漸漸的他的付費(fèi)客戶越來(lái)越多,問(wèn)題也越來(lái)越多,當(dāng)然這也不算什么壞事,因?yàn)榭蛻舻脑鲩L(zhǎng)對(duì)于一個(gè)剛起步的事業(yè)而言是再好不過(guò)的事情,而幫助客戶解決問(wèn)題也是成長(zhǎng)的一部分。
讓人頭疼的是,Tacitus經(jīng)常收到“救命,我的交易機(jī)器人不工作了!”這樣的請(qǐng)求。在跟進(jìn)這些問(wèn)題時(shí),Tacitus發(fā)現(xiàn)客戶發(fā)來(lái)的代碼常常存在各種低級(jí)錯(cuò)誤,比如訪問(wèn)不存在的端點(diǎn),或試圖從不存在的API響應(yīng)中讀取屬性。
深入溝通后,他意識(shí)到這些問(wèn)題的根源在于客戶使用了ChatGPT生成的代碼:ChatGPT時(shí)常會(huì)產(chǎn)生“幻覺(jué)”,導(dǎo)致代碼中出現(xiàn)一些專業(yè)人士可以發(fā)現(xiàn)但毫無(wú)編程知識(shí)的客戶無(wú)法察覺(jué)的小問(wèn)題。
對(duì)于那些只是想構(gòu)建簡(jiǎn)單腳本的客戶,Tacitus通常會(huì)幫助他們修復(fù)這些幻覺(jué)代碼,這對(duì)他來(lái)說(shuō)并不費(fèi)力。但問(wèn)題在于,修復(fù)后客戶往往會(huì)提出更大的要求:“既然AI寫的代碼稍微修改一下就能用,那我能不能用AI實(shí)現(xiàn)更復(fù)雜的應(yīng)用呢?”
這是最讓Tacitus感到無(wú)語(yǔ)的地方。“客戶開(kāi)始期望我提供無(wú)限制的免費(fèi)支持,甚至希望我為他們免費(fèi)構(gòu)建整個(gè)應(yīng)用程序。一旦拒絕,他們會(huì)非常生氣,”他說(shuō)。
“這些客戶應(yīng)該雇傭開(kāi)發(fā)者來(lái)修復(fù)AI生成的bug……我不想成為那個(gè)專門修復(fù)AI bug的開(kāi)發(fā)者!”他在文章最后憤憤地說(shuō)道。
留言區(qū)很快充滿了開(kāi)發(fā)者們的共鳴,他們紛紛分享自己與AI生成代碼的痛苦經(jīng)歷。
“我在工作中也遇到過(guò)類似的情況,當(dāng)時(shí)我的同事問(wèn)我,為什么他那短短10行的代碼會(huì)出現(xiàn)問(wèn)題。原來(lái)他有兩個(gè)變量“file_name”和“filename”,并用其中一個(gè)變量代替了另一個(gè)變量。我問(wèn)他是怎么得到這樣的代碼的,他說(shuō)他用 Copilot 來(lái)創(chuàng)建它。在不了解生成式AI的作用的情況下使用其代碼永遠(yuǎn)不是一個(gè)好主意。”
“......Claude確實(shí)能快速生成代碼,而我可能需要一周時(shí)間來(lái)編寫同樣的代碼。但是,這些代碼中隱藏了許多陷阱……希望能有一個(gè)好的測(cè)試工具與代碼生成工具配合使用。”
“我懷疑 LLM 的幻覺(jué)能否產(chǎn)生安全性良好的代碼。在我看來(lái),使用來(lái)自 LLM 的代碼可能會(huì)讓你的程序稍微快一點(diǎn)實(shí)現(xiàn),但最終只會(huì)增加調(diào)試和測(cè)試所需的時(shí)間,因?yàn)槠渲锌赡艽嬖诟鞣N問(wèn)題,從瑣碎的(未使用的變量)到非常微妙且難以發(fā)現(xiàn)的邏輯問(wèn)題,這些都需要對(duì) LLM 拼湊起來(lái)的庫(kù)和框架有更深入的了解。此外,從長(zhǎng)遠(yuǎn)來(lái)看,這種做法會(huì)剝奪人們對(duì)這些知識(shí)的理解,因此他們會(huì)發(fā)現(xiàn)正確完成測(cè)試和調(diào)試階段越來(lái)越具有挑戰(zhàn)性。”
除了吐槽之外,也有敏銳的開(kāi)發(fā)者看到了商機(jī)。
“....對(duì)于那些想要專門修復(fù) AI 生成應(yīng)用程序的人來(lái)說(shuō),這簡(jiǎn)直是一個(gè)金礦。很多企業(yè)要么在熟人的幫助下,要么在類似Upwork的兼職平臺(tái),找個(gè)所謂的開(kāi)發(fā)者,結(jié)果開(kāi)發(fā)者用AI來(lái)創(chuàng)建應(yīng)用...如果你能打造一個(gè)解決這種問(wèn)題的企業(yè),你肯定能早日退休。”
事實(shí)上,已經(jīng)有創(chuàng)業(yè)公司瞄準(zhǔn)了這塊“蛋糕”。
由印度裔工程師Harjot Gill在硅谷創(chuàng)立的CodeRabbit宣稱,能夠利用AI模型分析代碼并提供反饋。8月15日,CodeRabbit宣布完成了由CRV領(lǐng)投,F(xiàn)lex Capital和Engineering Capital參與的1600萬(wàn)美元A輪融資。
然而,效果仍然存在爭(zhēng)議。
Graphite的Greg Foster在一篇博客文章中分享了將OpenAI的GPT-4應(yīng)用于代碼審查的內(nèi)部實(shí)驗(yàn)經(jīng)驗(yàn)。
雖然GPT-4能夠捕捉到一些有價(jià)值的內(nèi)容——如輕微的邏輯錯(cuò)誤和拼寫錯(cuò)誤——但也產(chǎn)生了大量誤報(bào)。Foster指出,即使經(jīng)過(guò)微調(diào),這些誤報(bào)仍未顯著減少。
Greg Foster給出的例子還是用AI審查人類工程師輸出的代碼。如果使用AI來(lái)審查AI生成的代碼,問(wèn)題可能會(huì)更加嚴(yán)重,導(dǎo)致幻覺(jué)式錯(cuò)誤層出不窮,就像在“垃圾上堆積更多垃圾”,陷入死循環(huán)。
在OpenAI推出擁有編程能力的ChatGPT之后,幾乎所有科技巨頭和領(lǐng)先的AI公司都提供了代碼助手工具:微軟有GitHub Copilot,谷歌推出了Gemini Code Assist,亞馬遜AWS的CodeWhisperer也已經(jīng)上線,Meta的Llama 3也具備編程功能。
微軟資深工程師Andrew是第一批使用GitHub Copilot的人。他告訴當(dāng)公司開(kāi)始為每個(gè)開(kāi)發(fā)人員提供這項(xiàng)功能時(shí),大家都很興奮,體驗(yàn)感也很好。因?yàn)镃opilot能夠基于上下文自動(dòng)生成代碼,尤其是在處理常規(guī)需求時(shí),省去了手動(dòng)輸入的繁瑣過(guò)程。相比之前只能補(bǔ)全有限語(yǔ)句的輔助工具,Copilot還拓展了編程思維,提供多種不同的實(shí)現(xiàn)方式。
然而,隨著使用的深入,問(wèn)題逐漸顯現(xiàn)。針對(duì)一些復(fù)雜需求,Copilot更容易產(chǎn)生“幻覺(jué)”,輸出一些“瞎編”的代碼,根本無(wú)法使用。
Andrew表示,在日常工作中,Copilot生成的代碼大多數(shù)情況下需要手動(dòng)修改,但總體上仍然提高了工作效率。
剛?cè)肼殎嗰R遜的Jack表示,作為一名“轉(zhuǎn)碼”選手,AI代碼助手大大提升了他的“刷題”速度。
對(duì)開(kāi)發(fā)者們而言,“刷題”指的是在準(zhǔn)備技術(shù)面試或提升算法技能時(shí),通過(guò)LeetCode等題庫(kù)平臺(tái)不斷練習(xí)編程。對(duì)于LeetCode上的題目,Copilot等助手往往能給出正確答案,因?yàn)檫@些題目大多集中在算法和數(shù)據(jù)結(jié)構(gòu)的經(jīng)典問(wèn)題上,如排序、查找、動(dòng)態(tài)規(guī)劃、樹(shù)和圖的遍歷等。AI模型能夠識(shí)別并復(fù)用這些常見(jiàn)的編程模式,生成符合題目要求的代碼。
但Jack也坦言,過(guò)度依賴AI工具可能削弱思考能力。“如果你習(xí)慣依賴AI,就無(wú)法真正掌握那些本應(yīng)理解的編程知識(shí)和思路。下次遇到類似問(wèn)題時(shí),你仍然無(wú)法獨(dú)立解決。尤其是在一對(duì)一面試中,如果遇到通過(guò)AI解決的高難度題目,由于時(shí)間有限且無(wú)法求助AI,可能會(huì)導(dǎo)致面試失敗。”他說(shuō)道。
這都是Jack的親身經(jīng)歷,因此在后來(lái)的刷題訓(xùn)練中,他盡量減少了對(duì)AI的依賴。
無(wú)論是經(jīng)驗(yàn)豐富的Andrew,還是初出茅廬的Jack,他們都認(rèn)為Copilot只能作為輔助工具,開(kāi)發(fā)者不能完全依賴它,更不用說(shuō)毫無(wú)編程知識(shí)的人試圖用AI來(lái)構(gòu)建應(yīng)用程序了。
Axios報(bào)道援引多家報(bào)告結(jié)果稱,現(xiàn)在有超過(guò)一半的程序員正在使用生成式AI來(lái)編寫或編輯運(yùn)行軟件——而且這個(gè)數(shù)字還在不斷上升。
然而,生產(chǎn)力的提高是有代價(jià)的——這一點(diǎn)Andrew和Jack也提到過(guò)。
根據(jù)開(kāi)發(fā)者分析工具GitClear的一項(xiàng)研究,AI可能對(duì)整體代碼質(zhì)量帶來(lái)負(fù)面影響。通過(guò)分析1.53億行代碼,研究比較了2023年與之前幾年AI尚未廣泛用于代碼生成時(shí)的變化,發(fā)現(xiàn):
“代碼更改率”(即編寫后不到兩周便被刪除的代碼行比例)正在上升,預(yù)計(jì)在2024年將翻倍。研究指出,代碼更改率的增加意味著生產(chǎn)環(huán)境中出現(xiàn)錯(cuò)誤的風(fēng)險(xiǎn)更高。
此外,生成代碼中“復(fù)制/粘貼”行為的增長(zhǎng)速度超過(guò)了“更新”、“刪除”或“移動(dòng)”代碼的速度。GitClear創(chuàng)始人Bill Harding表示,AI生成的代碼在這方面更像是由短期開(kāi)發(fā)者編寫的,他們無(wú)法充分考慮如何將代碼與更多的項(xiàng)目進(jìn)行整合。總部位于美國(guó)西雅圖的GitClear是一家提供開(kāi)發(fā)者生產(chǎn)力分析工具的公司。
Harding總結(jié)道,AI代碼助手雖然在代碼生成方面表現(xiàn)出色,但也可能導(dǎo)致“AI引發(fā)的技術(shù)債務(wù)”。換句話說(shuō),代碼行數(shù)的增加并不一定意味著代碼質(zhì)量的提升。
與此同時(shí),今年3月份,前亞馬遜技術(shù)項(xiàng)目經(jīng)理、《Architecting for Scale》一書(shū)的作者Lee Atchison也在自己發(fā)布在LinkedIn上的文章中指出,近年來(lái)代碼復(fù)雜性和與復(fù)雜代碼相關(guān)的維護(hù)成本有所增加,這在很大程度上歸因于AI生成代碼的激增。
雖然生成式AI工具在代碼創(chuàng)建方面節(jié)省了時(shí)間和成本,但這些節(jié)省下來(lái)的資源可能會(huì)在后期的維護(hù)和修復(fù)過(guò)程中被抵消。
Atchison的擔(dān)憂并非沒(méi)有依據(jù)。斯坦福大學(xué)的一項(xiàng)研究發(fā)現(xiàn),使用AI助手編寫的代碼,其安全性明顯低于由人類程序員獨(dú)立編寫的代碼。目前尚未發(fā)生任何與未經(jīng)檢查的AI生成代碼相關(guān)的公共災(zāi)難,但CodeSignal的CEO Tigran Sloyan警告,這可能只是時(shí)間問(wèn)題。
基于市場(chǎng)對(duì)AI技術(shù)的樂(lè)觀預(yù)期和潛在市場(chǎng)規(guī)模的巨大吸引力,各類AI編程助手如雨后春筍般涌現(xiàn),融資額動(dòng)輒千萬(wàn)美元,估值甚至高達(dá)數(shù)億美元:
Augment在2024年4月融資2.5億美元。投資者包括 Sutter Hill Ventures、Index Ventures、Innovation Endeavors、Lightspeed Venture Partners 和 Meritech Capital。
Magic正在以15億美元的估值尋求超過(guò)2億美元的融資。此前Magic從NFDG Ventures和谷歌母公司旗下的CapitalG等投資者那里籌集了1.4億美元。
Cognition在今年4月份聲稱完成了1.75億美元的融資,估值高達(dá)20億美元。值得注意的是,Cognition正是Devin的母公司,Devin曾因以“第一個(gè)AI程序員”的宣傳噱頭刷爆了中文科技媒體圈,成為業(yè)內(nèi)的熱門話題。
Glean在2024年2月以22億美元的估值籌得2億美元,投資者包括 Kleiner Perkins、Lightspeed Venture Partners、Sequoia Capital 等。
除此之外,市場(chǎng)上還有許多同類型的初創(chuàng)企業(yè),如Tabnine、Codegen、Refact、TabbyML、Sweep、Laredo等等,它們的融資信息就不再一一列舉。
雖然AI技術(shù)為軟件開(kāi)發(fā)帶來(lái)了新的可能性,但它在處理復(fù)雜、特定需求的項(xiàng)目時(shí),仍然存在明顯的不足。這意味著,現(xiàn)在備受資本追捧的AI編程工具在實(shí)際應(yīng)用中所帶來(lái)的生產(chǎn)力提升,可能遠(yuǎn)低于市場(chǎng)預(yù)期——它們的高估值是否合理,仍然值得商榷。
來(lái)源:數(shù)據(jù)猿
刷新相關(guān)文章
我要評(píng)論
不容錯(cuò)過(guò)的資訊
-
1第十四屆智慧城市與智能經(jīng)濟(jì)博覽會(huì) 倒計(jì)
-
2Wondershare Technology Modao onlin
-
3Anthropic opens the large model C
-
4【評(píng)委確認(rèn)】張世翔 上海健康醫(yī)學(xué)院教授
-
5【評(píng)委確認(rèn)】李振葉 廈門大學(xué)附屬婦女兒
-
6AI生成的代碼正在把程序員逼到“崩潰”
-
7Anthropic向所有用戶開(kāi)放大模型Claude;
-
8【評(píng)委確認(rèn)】王天剛 乖寶寵物首席數(shù)智官
-
9芯存儲(chǔ) AI未來(lái)!2024全球閃存峰會(huì)在南京
-
10?OpenAI 招聘內(nèi)部風(fēng)險(xiǎn)技術(shù)調(diào)查員;消息
大數(shù)據(jù)企業(yè)推薦more >
大家都在搜
