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