生成式人工智能和編碼:是時(shí)候重新思考軟件開(kāi)發(fā)
盡管存在嚴(yán)重的危險(xiǎn),但使用生成式人工智能工具進(jìn)行編程的效率優(yōu)勢(shì)幾乎是無(wú)法抗拒的。人們需要一種全新的人在循環(huán)中的軟件管理方法。
有充分的證據(jù)表明,包含生成式人工智能的軟件開(kāi)發(fā)工作包含了與任何人類(lèi)程序員可能犯的錯(cuò)誤完全不同的錯(cuò)誤。然而,大多數(shù)企業(yè)修復(fù)人工智能編碼錯(cuò)誤的計(jì)劃都依賴(lài)于簡(jiǎn)單地將有經(jīng)驗(yàn)的人類(lèi)程序員插入循環(huán)中。
有經(jīng)驗(yàn)的程序員直觀(guān)地知道程序員會(huì)犯什么樣的錯(cuò)誤和捷徑。但是,他們需要接受培訓(xùn),以便在軟件創(chuàng)建軟件時(shí)發(fā)現(xiàn)出現(xiàn)的各種錯(cuò)誤。
AWS公司首席執(zhí)行官M(fèi)att Garman的評(píng)論加速了這一對(duì)話(huà),他預(yù)計(jì)大多數(shù)開(kāi)發(fā)人員最早將在2026年不再編碼。
開(kāi)發(fā)工具領(lǐng)域的許多供應(yīng)商都認(rèn)為,這可以通過(guò)使用人工智能應(yīng)用程序來(lái)管理人工智能編碼應(yīng)用程序來(lái)解決。就連金融巨頭摩根士丹利也在考慮用人工智能來(lái)管理人工智能。
作為一個(gè)實(shí)際問(wèn)題,唯一安全和遠(yuǎn)程可行的方法是培訓(xùn)編程經(jīng)理了解生成式人工智能編碼錯(cuò)誤的本質(zhì)。事實(shí)上,考慮到人工智能編碼錯(cuò)誤的本質(zhì)是如此不同,培訓(xùn)新人來(lái)管理人工智能編碼工作可能會(huì)更好,這些人還沒(méi)有沉浸在發(fā)現(xiàn)人類(lèi)編碼錯(cuò)誤的過(guò)程中。
部分問(wèn)題在于人性。人們傾向于放大和誤解差異。如果管理者看到一個(gè)實(shí)體——無(wú)論是人類(lèi)還是人工智能——犯了管理者自己永遠(yuǎn)不會(huì)犯的錯(cuò)誤,他們往往會(huì)認(rèn)為這個(gè)實(shí)體在編碼問(wèn)題上不如管理者。
但考慮到自動(dòng)駕駛汽車(chē)的情況,我們不妨考慮一下這個(gè)假設(shè)。據(jù)統(tǒng)計(jì),這些車(chē)輛比人類(lèi)駕駛的汽車(chē)安全。自動(dòng)化系統(tǒng)從不疲勞,從不醉酒,從不故意魯莽。
但自動(dòng)駕駛汽車(chē)并不完美。而它們所犯的各種錯(cuò)誤,比如全速撞上一輛停下來(lái)等車(chē)的卡車(chē),這會(huì)讓人類(lèi)爭(zhēng)辯說(shuō):“我絕不會(huì)做這么愚蠢的事情。我不相信他們。”
但是,僅僅因?yàn)樽詣?dòng)駕駛汽車(chē)會(huì)犯奇怪的錯(cuò)誤,并不意味著它們比人類(lèi)司機(jī)更不安全。但人性無(wú)法調(diào)和這些差異。
管理編碼也是同樣的情況。生成式人工智能編碼模型可以非常有效,但當(dāng)它們偏離預(yù)定時(shí),它們就會(huì)走得太遠(yuǎn)。
SaaS公司Query Pal的首席執(zhí)行官DevNag一直在從事生成式人工智能編碼工作,他覺(jué)得許多企業(yè)IT高管還沒(méi)有準(zhǔn)備好接受這項(xiàng)新技術(shù)的不同之處。
Nag說(shuō),“它犯了很多奇怪的錯(cuò)誤,就像來(lái)自另一個(gè)星球的外星人。代碼的行為是人類(lèi)開(kāi)發(fā)人員不會(huì)做的。它就像一個(gè)外星智能,不像我們那樣思考,而且它的方向很奇怪。人工智能會(huì)找到一種病態(tài)的方式來(lái)與系統(tǒng)博弈。”
TomTaulli撰寫(xiě)了多本人工智能編程書(shū)籍,包括今年的《人工智能輔助編程:更好的規(guī)劃、編碼、測(cè)試和部署》。
Taulli說(shuō):“例如,你可以讓這些llm(大型語(yǔ)言模型)創(chuàng)建代碼,它們有時(shí)會(huì)組成一個(gè)框架,或者一個(gè)想象的庫(kù)或模塊,來(lái)做你想讓它做的事情?!彼忉屨f(shuō),LLM實(shí)際上并沒(méi)有創(chuàng)建一個(gè)新的框架,而是假裝這樣做。
人類(lèi)程序員甚至不會(huì)考慮這樣做,Taulli指出,“除非人類(lèi)程序員瘋了,否則他們不會(huì)憑空編造一個(gè)想象的庫(kù)或模塊?!?/p>
當(dāng)這種情況發(fā)生時(shí),如果有人注意的話(huà),很容易被發(fā)現(xiàn)?!叭绻覈L試安裝它,你會(huì)發(fā)現(xiàn)那里什么也沒(méi)有。如果出現(xiàn)幻覺(jué),IDE和編譯器就會(huì)給你一個(gè)錯(cuò)誤?!?/p>
把應(yīng)用程序的全部編碼,包括對(duì)可執(zhí)行程序的創(chuàng)造性控制,交給一個(gè)周期性產(chǎn)生幻覺(jué)的系統(tǒng),在我看來(lái)是一種可怕的方法。
利用生成式人工智能編碼效率的更好方法是將其作為幫助程序員完成更多工作的工具。正如AWS的加曼所建議的那樣,將人類(lèi)排除在外將無(wú)異于自殺。
如果生成式人工智能編碼工具可以讓它的思維漫游,并創(chuàng)建一些后門(mén),這樣它以后就可以在不打擾人類(lèi)的情況下進(jìn)行修復(fù),這些后門(mén)也可以被攻擊者使用?
企業(yè)往往在測(cè)試應(yīng)用程序,尤其是自主開(kāi)發(fā)的應(yīng)用程序的功能方面相當(dāng)有效,以確保應(yīng)用程序能做它應(yīng)該做的事情。當(dāng)檢查應(yīng)用是否可以做任何不該做的事情時(shí),應(yīng)用測(cè)試往往會(huì)失敗。這是一種滲透測(cè)試的心態(tài)。
但在生成式人工智能編碼現(xiàn)實(shí)中,這種滲透測(cè)試方法必須成為默認(rèn)方法。它還需要由在生成式人工智能錯(cuò)誤的古怪世界中受過(guò)良好教育的主管來(lái)管理。
企業(yè)IT肯定在尋找一個(gè)更高效的編碼未來(lái),程序員承擔(dān)更多的戰(zhàn)略角色,他們更多地關(guān)注應(yīng)用程序應(yīng)該做什么以及為什么要做,而花更少的時(shí)間去費(fèi)力地編碼每一行。
但這種效率和這些戰(zhàn)略收益將付出高昂的代價(jià):支付更好的、受過(guò)不同訓(xùn)練的人來(lái)確保人工智能生成的代碼保持正常運(yùn)行。