大腦以及二進(jìn)制代碼(圖:Canva)
寫代碼已經(jīng)成了許多工作的一項關(guān)鍵技能。一些國家和學(xué)校甚至認(rèn)為,編程語言是一種可以接受的外語。而在各種熙熙攘攘之中,程序代碼的性質(zhì)也正在發(fā)生巨大的變化。
隨著低代碼和無代碼平臺迅猛增長,個人和組織都可以用相對較少的傳統(tǒng)上稱為編寫代碼的東西,來創(chuàng)建強(qiáng)大的生產(chǎn)應(yīng)用程序。該趨勢的下一步,就是人工智能生成代碼,比如,最近的Open AI Codex和Github Autopilot就展示了這一步的實現(xiàn)。
那么,這些趨勢意味著什么呢?編寫代碼會過時嗎?
背景是什么?
在我們回答這個問題之前,要先把這些趨勢置于背景之中,這是有幫助的。在編程代碼的早期,使用匯編語言和機(jī)器語言是當(dāng)時的常態(tài)。編寫代碼后來演變?yōu)楦呒壵Z言,開發(fā)人員可以用一種與機(jī)器無關(guān)的語言描述高層次的意圖,再用編譯器在下面生成特定機(jī)器的代碼。
這種趨勢一直持續(xù)到現(xiàn)在,今天的主流語言(例如python)帶有許多可多次使用的庫。所以,要創(chuàng)建強(qiáng)大的應(yīng)用程序也相對簡單,只需要編寫少量的新代碼即可。
低代碼/無代碼是什么?
低碼/無碼是這種演變的下一步。開發(fā)人員無需去尋找和組裝可重用的代碼塊。低碼平臺能夠遵照高層次的指示及識別正確的可重用代碼塊并組裝出必要的代碼。開發(fā)人員則仍然要作出許多決定,例如構(gòu)建什么樣的應(yīng)用以及軟件應(yīng)該如何運(yùn)作等等。
那么低碼是自己做一些決定或是什么都由開發(fā)者決定呢?答案是前者,而且根據(jù)平臺的不同,自動化做決定的數(shù)量也不一樣。之前的編譯器其實也是這樣。比如說開發(fā)者使用編譯器編寫一個循環(huán),開發(fā)者很少會指定該循環(huán)應(yīng)該如何用機(jī)器代碼實現(xiàn)。編譯器決定如何用機(jī)器代碼實現(xiàn)該循環(huán),用到的實現(xiàn)方法,可能是一系列啟發(fā)式算法和由編譯器設(shè)計者絞盡腦汁創(chuàng)建的算法。
人工智能可以寫代碼嗎?
人工智能寫代碼是最近的發(fā)展,這是比低碼更高大上的一種方法。低代碼平臺上的人類(即低代碼平臺設(shè)計者)可能已經(jīng)組裝了自動化邏輯,在用戶提供了高層次的指示后,自動化邏輯得以觸發(fā)并生成代碼。人工智能在研究了大量的現(xiàn)有代碼語料庫后確立一些組裝規(guī)則,進(jìn)而可以生成代碼。
對于用戶而言,人工智能生成的代碼可能看起來和低碼平臺生成的代碼一樣,但這些代碼是人工智能創(chuàng)造的低碼。這意味著現(xiàn)在可以更容易地用人工智能創(chuàng)建新的低碼平臺,而平臺自動化模式則是基于人工智能。
這一類的平臺可以做很多事情:
創(chuàng)建應(yīng)用程序
如今,業(yè)界的一些人工智能原型已經(jīng)可以根據(jù)人類的日常語言指示編寫簡單的應(yīng)用程序,這顯示了人工智能在這領(lǐng)域的發(fā)展前景。這些人工智能用了許多用不同語言編寫的程序例子進(jìn)行訓(xùn)練,但從簡單的層面上看就是個代碼的自動更正。而從更復(fù)雜的層面上看,它實際上是一個引擎,這個引擎可以為開發(fā)者指定的任務(wù)編寫代碼。
調(diào)試代碼
現(xiàn)在,程序員用到的一些集成開發(fā)環(huán)境(IDE)已經(jīng)可以識別代碼中的簡單語法問題。新的人工智能技術(shù)在這方面則更進(jìn)了一步,它能通過分析代碼庫、錯誤修復(fù)和代碼更新進(jìn)行訓(xùn)練,達(dá)到檢測常見錯誤模式并在新代碼中找到這些錯誤。
編寫人工智能代碼
現(xiàn)在已經(jīng)可以將一個數(shù)據(jù)集交給自動化工具,使得自動化工具生成正確的代碼類型,再從數(shù)據(jù)集中構(gòu)建一個人工智能。這種類型的人工智能自動化已經(jīng)可以用于一些特定的學(xué)習(xí)背景,例如在各種生產(chǎn)人工智能環(huán)境里用于生成后端代碼,去教初中和高中學(xué)生如何利用人工智能編寫代碼。
圖中顯示的編譯器、人類設(shè)計的自動化和人工智能設(shè)計的自動化逐步擴(kuò)展了編程助手平臺。新技術(shù)的出現(xiàn)擴(kuò)展了編程助手的適應(yīng)范圍,編程助手也涵蓋了更大范圍的使用案例。(圖:AIClub.World)
程序員該何去何從?
無疑,這些趨勢將產(chǎn)生深遠(yuǎn)的影響。許多開發(fā)者擔(dān)心這將使他們丟掉工作——但筆者不這樣認(rèn)為。
編譯器并沒有讓開發(fā)者失業(yè),而是大規(guī)模地增加了所需的開發(fā)者數(shù)量、代碼的使用以及所創(chuàng)建的應(yīng)用程序的規(guī)模和范圍。筆者預(yù)計上述的趨勢也是這樣。但這將從根本上改變編寫代碼的性質(zhì)(如果你是一個熟練的匯編語言開發(fā)人員,相關(guān)的工作有限)。這些趨勢令人類成為設(shè)計者的角色,而不是實施者。未來的開發(fā)者將可以自由地專注于可用性、設(shè)計、特征功能等等,而無需擔(dān)心如何使用特定的API等細(xì)節(jié)問題。
當(dāng)然,該趨勢的發(fā)展還有待觀察。生產(chǎn)軟件是一項復(fù)雜的工作,結(jié)合了設(shè)計、功能、實施、測試、修改和維護(hù)、DevOps等等。任何能實施自動化的東西都可以令開發(fā)者騰出手來處理其他事情。可以說,我們正在挺進(jìn)一個新的領(lǐng)域,人類的任務(wù)在這個領(lǐng)域中將集中在功能、設(shè)計、道德等主題上,而低層次的實施將由人工智能和自動化來處理。
總結(jié)
回到標(biāo)題的問題——人工智能“上位”會讓程序員消失嗎?
筆者認(rèn)為不會。開發(fā)人員的工作是創(chuàng)造一個產(chǎn)品,產(chǎn)品需滿足用戶的需求,相應(yīng)的解決方案需要特定運(yùn)行的環(huán)境(如公司使用什么技術(shù)、現(xiàn)有的基礎(chǔ)設(shè)施、團(tuán)隊技能、法律限制等)和許多其他因素。而人工智能生成的代碼是對大多數(shù)這些事情的補(bǔ)充。不過筆者確實認(rèn)為,人工智能正在從根本上改變編寫代碼的含義并將在未來持續(xù)改變編寫代碼的含義。關(guān)鍵是我們?nèi)绾闻c我們編碼教育以及行業(yè)編碼實踐保持同步。
企業(yè)或技術(shù)領(lǐng)導(dǎo)者務(wù)必確保你的團(tuán)隊了解這些發(fā)展以及如何利用這些發(fā)展,這一點很重要。低碼已經(jīng)在幫助開發(fā)人員提高生產(chǎn)力。人工智能生成代碼是一個相對較新的現(xiàn)象,但我們可以預(yù)期,人工智能生成代碼在未來幾年內(nèi)會變得更加普遍。即使是熟練的開發(fā)人員也可以受益于持續(xù)的教育和培訓(xùn)計劃,達(dá)到保持對最新技術(shù)的了解的目的。如果現(xiàn)在還沒有這樣的計劃的話,最好制定一個。
好文章,需要你的鼓勵
浙江大學(xué)團(tuán)隊提出動態(tài)專家搜索方法,讓AI能根據(jù)不同問題靈活調(diào)整內(nèi)部專家配置。該方法在數(shù)學(xué)、編程等任務(wù)上顯著提升推理準(zhǔn)確率,且不增加計算成本。研究發(fā)現(xiàn)不同類型問題偏愛不同專家配置,為AI推理優(yōu)化開辟新路徑。
清華大學(xué)研究團(tuán)隊提出SIRI方法,通過"壓縮-擴(kuò)張"交替訓(xùn)練策略,成功解決了大型推理模型"話多且準(zhǔn)確率低"的問題。實驗顯示,該方法在數(shù)學(xué)競賽題上將模型準(zhǔn)確率提升43.2%的同時,輸出長度減少46.9%,真正實現(xiàn)了效率與性能的雙重優(yōu)化,為AI模型訓(xùn)練提供了新思路。
南洋理工大學(xué)與騰訊聯(lián)合研究團(tuán)隊開發(fā)出Rolling Forcing技術(shù),實現(xiàn)AI視頻實時流式生成的重大突破。該技術(shù)通過滾動窗口聯(lián)合去噪、注意力錨點機(jī)制和高效訓(xùn)練算法三項創(chuàng)新,解決了長視頻生成中的錯誤累積問題,可在單GPU上以16fps速度生成多分鐘高質(zhì)量視頻,延遲僅0.76秒,質(zhì)量漂移指標(biāo)從傳統(tǒng)方法的1.66降至0.01,為交互式媒體和內(nèi)容創(chuàng)作開辟新可能。
華中科技大學(xué)研究團(tuán)隊發(fā)現(xiàn),通過讓AI模型學(xué)習(xí)解決幾何問題,能夠顯著提升其空間理解能力。他們構(gòu)建了包含約30000個幾何題目的Euclid30K數(shù)據(jù)集,使用強(qiáng)化學(xué)習(xí)方法訓(xùn)練多個AI模型。實驗結(jié)果顯示,幾何訓(xùn)練在四個空間智能測試基準(zhǔn)上都帶來顯著提升,其中最佳模型達(dá)到49.6%準(zhǔn)確率,超越此前最好成績。這項研究揭示了基礎(chǔ)幾何知識對培養(yǎng)AI空間智能的重要價值。