21世紀(jì)經(jīng)濟(jì)報(bào)道記者張梓桐 上海報(bào)道
只需要用戶發(fā)出一個(gè)命令,就可以實(shí)現(xiàn)生成視頻、網(wǎng)頁,設(shè)計(jì)小游戲等任務(wù)——這一科幻電影中的場景,似乎正在成為現(xiàn)實(shí)。
近日,美國AI初創(chuàng)公司Cognition AI發(fā)布一條視頻,宣布了首位完全自主的AI程序員Devin的誕生。并表示,Devin已經(jīng)通過了一些“頂尖AI公司”的面試,甚至還在自由職業(yè)平臺(tái)上完成了不少工作。
此外,大廠也在積極布局這一領(lǐng)域。日前微軟宣布其GitHub AI 代碼助手GitHub Copilot付費(fèi)用戶已經(jīng)超過100萬,在美國以外的地區(qū)具有很大的吸引力。
從國內(nèi)實(shí)踐來看,阿里云正在內(nèi)部全面推行AI編程,并推出了一款名為“通義靈碼”,輔助程序員寫代碼、讀代碼、查 BUG、優(yōu)化代碼等。百度自去年便已推出“Comate”編碼智能推薦工具。據(jù)21世紀(jì)經(jīng)濟(jì)報(bào)道記者了解,目前百度公司內(nèi)部程序員基本都在使用相關(guān)工具進(jìn)行編程輔助。此外,科大訊飛同樣在星火大模型中同樣設(shè)置了AI編程工具。
不只是大廠在探索AI代碼領(lǐng)域。4月9日,北京大學(xué)軟件工程研究所開源了由其aiXcoder 團(tuán)隊(duì)全新自研的7B代碼大模型。
但與此同時(shí),AI代碼的商業(yè)價(jià)值也在接受著市場的拷問。當(dāng)前微軟的AI編程助手Github Copilot每月收費(fèi)為10美元/人,但這一功能目前對(duì)企業(yè)而言更多是“燒錢”行為。有報(bào)道稱,Github Copilot單個(gè)用戶每月為微軟造成的虧損超過20美元(一些用戶造成的損失甚至超過80美元/月)。
虧損的根源來自開發(fā)和運(yùn)營人工智能模型的高昂成本。與常規(guī)軟件開發(fā)和運(yùn)營過程中,用戶越多成本越低的規(guī)模經(jīng)濟(jì)不同,人工智能模型可能需要對(duì)用戶的每個(gè)需求進(jìn)行密集的新計(jì)算。換言之,使用產(chǎn)品的客戶越多,基礎(chǔ)設(shè)施費(fèi)用就越高,導(dǎo)致那些為人工智能收取固定費(fèi)用的公司面臨更高的虧損。
除此之外,傳統(tǒng)開發(fā)模式下,程序員每天需要耗費(fèi)大量精力編寫重復(fù)性代碼、調(diào)試優(yōu)化、編寫代碼注釋等基礎(chǔ)工作,大幅擠壓了核心業(yè)務(wù)代碼編寫的時(shí)間。因此,上述技術(shù)的顛覆性出現(xiàn)也引發(fā)了海內(nèi)外代碼生成領(lǐng)域?qū)τ?AI程序員是否能被顛覆“的熱烈討論。
圍繞上述問題,近日,北京大學(xué)計(jì)算機(jī)學(xué)院長聘教授李戈接受了21世紀(jì)經(jīng)濟(jì)報(bào)道記者的專訪,在他看來,AI在軟件開發(fā)自動(dòng)化領(lǐng)域的確有非常大的潛力,但當(dāng)前AI工具尚處于輔助工具的角色,主要任務(wù)仍然需要由人類來完成。要走向人們所設(shè)想的“軟件開發(fā)自動(dòng)化”的場景,還有很多工作需要做。
AI仍處輔助角色
《21世紀(jì)》:當(dāng)前,隨著代碼大模型應(yīng)用的深入,出現(xiàn)了一些程序員是否會(huì)被AI替代掉的討論,在您看來,如何評(píng)價(jià)當(dāng)前AI在軟件開發(fā)中的作用?
李戈:就當(dāng)前狀況而言,人們已經(jīng)基于代碼大模型提供了一系列的軟件開發(fā)自動(dòng)化功能,但由于受到一些技術(shù)和資源的限制,人工智能在軟件開發(fā)領(lǐng)域的應(yīng)用尚處于“無法脫離人類開發(fā)者獨(dú)立工作”的狀態(tài)。也就是說,尚處于“輔助人類開發(fā)者”完成工作的狀態(tài)。
在使用AI工具的過程中,當(dāng)前還沒有辦法能夠確保大模型所生成的代碼、文檔等是完全正確的,通常這些生成結(jié)果可以作為“備選”信息提供給開發(fā)者參考,在交互過程中,開發(fā)者仍需要花費(fèi)時(shí)間去甄別、判斷推薦信息的可用性,甚至有時(shí)會(huì)出現(xiàn)“因?yàn)榛ㄙM(fèi)更多時(shí)間閱讀、甄別、判斷推薦信息,反而降低了工作效率”的現(xiàn)象。
當(dāng)然,隨著大模型能力和軟件開發(fā)工具的進(jìn)一步發(fā)展,隨著推薦準(zhǔn)確率的進(jìn)一步提升,需要開發(fā)者閱讀、甄別、判斷推薦信息的時(shí)間會(huì)進(jìn)一步降低,直到跨越“投入產(chǎn)出比邊界”之后,上述工具的作用才能得到進(jìn)一步的發(fā)揮。該個(gè)邊界與軟件開發(fā)所處的具體領(lǐng)域、軟件開發(fā)的交互方式、所開發(fā)代碼所包含的業(yè)務(wù)邏輯的復(fù)雜程度、開發(fā)中所使用的大模型的規(guī)模和能力都有關(guān)系。也許未來在某些特定領(lǐng)域,在領(lǐng)域代碼大模型的支持下,有可能優(yōu)先實(shí)現(xiàn)上述邊界的突破。
《21世紀(jì)》;您帶領(lǐng)的團(tuán)隊(duì)自2013年起就開始了“基于深度學(xué)習(xí)的代碼生成和理解”方面的探索,您如何評(píng)價(jià)深度學(xué)習(xí)或大模型在軟件開發(fā)方面的潛力?
李戈:軟件開發(fā)是一個(gè)綜合了多種類型具體任務(wù)的復(fù)雜過程。在軟件工程領(lǐng)域,對(duì)于軟件的一種理解是“軟件是現(xiàn)實(shí)世界的解決方案在計(jì)算機(jī)系統(tǒng)中的映射”。通俗來講,我們可以把現(xiàn)實(shí)世界中的軟件開發(fā),看作一個(gè)轉(zhuǎn)換過程,是把描述現(xiàn)實(shí)世界解決方案的需求,轉(zhuǎn)換為計(jì)算機(jī)程序代碼、可運(yùn)行程序、配置文件等具體軟件制品的過程。
如果能夠?qū)ΜF(xiàn)實(shí)世界的解決方案進(jìn)行充分、準(zhǔn)確的描述,我們或許可利用深度神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)解決方案到可運(yùn)行計(jì)算機(jī)代碼的映射,也就是說,利用大模型有可能實(shí)現(xiàn)或部分實(shí)現(xiàn)“需求”到“程序”的映射,從而帶給我們實(shí)現(xiàn)軟件開發(fā)自動(dòng)化這個(gè)愿望的可能。
然而,要完成這一過程,至少需要滿足兩個(gè)理論上的條件:其一,需要對(duì)解決方案進(jìn)行足夠精確和充分的描述;其二,由于解決方案到計(jì)算機(jī)代碼的映射非常復(fù)雜,所以可能需要能力非常強(qiáng)的神經(jīng)網(wǎng)絡(luò)和大量的訓(xùn)練樣本才能完成這一映射,這還是很有挑戰(zhàn)的。
當(dāng)然,我們并不否認(rèn)大模型在軟件開發(fā)中的潛在作用,當(dāng)前的AI工具尚處于輔助人們編寫程序代碼的狀態(tài),軟件生命周期包含了很多不同類型的活動(dòng)和環(huán)節(jié),大模型只是在部分環(huán)節(jié)上起到了輔助人類開發(fā)者的作用,尚不涉及其他中級(jí)或高級(jí)自動(dòng)化的能力。未來,隨著大模型能力的不斷提升,有望進(jìn)一步拓展大模型在軟件自動(dòng)化開發(fā)領(lǐng)域的應(yīng)用范疇。
代碼大模型垂直能力待提升
《21世紀(jì)》:在您看來,當(dāng)前代碼大模型在軟件開發(fā)領(lǐng)域的應(yīng)用,還存在哪些制約條件或挑戰(zhàn)?
李戈:大模型在軟件開發(fā)領(lǐng)域的應(yīng)用,與自然語言等其他領(lǐng)域的應(yīng)用相比,的確存在較多明顯不同,這是由軟件開發(fā)的特殊性所決定的。
首先,軟件代碼作為一個(gè)企業(yè)的核心知識(shí)產(chǎn)權(quán)制品,具有較強(qiáng)的私有化屬性,這使軟件開發(fā)的環(huán)境也具有較強(qiáng)的私密性。軟件企業(yè)通常將代碼共享的范圍限定在企業(yè)范圍之內(nèi),特別對(duì)于核心代碼,通常制定更加嚴(yán)格的訪問約束。為了防止核心代碼泄露,軟件企業(yè)通常不允許將代碼提交至部署在公共云環(huán)境中的大模型中。因此,在上述約束條件下,軟件企業(yè)通常要在私有環(huán)境中部署大模型。這對(duì)企業(yè)部署大模型的計(jì)算資源和大模型的能力都提出了要求,特別是對(duì)參數(shù)量受限的大模型的實(shí)戰(zhàn)能力的要求。
其次,軟件開發(fā)通常對(duì)特定領(lǐng)域的業(yè)務(wù)邏輯知識(shí)存在高度依賴。在軟件開發(fā)的過程中,不同的軟件企業(yè)通常擁有不同的軟件開發(fā)框架,擁有自己個(gè)性化的代碼庫。這些軟件開發(fā)框架和個(gè)性化代碼庫通常與軟件開發(fā)企業(yè)所在領(lǐng)域的業(yè)務(wù)邏輯密切相關(guān),屬于強(qiáng)領(lǐng)域知識(shí)。在軟件開發(fā)過程中,只有充分理解上述領(lǐng)域知識(shí)和業(yè)務(wù)邏輯,大模型才能夠做出正確、有效的推薦。然而,由于通用大模型的訓(xùn)練數(shù)據(jù)多來自于公開數(shù)據(jù),在公開數(shù)據(jù)中很難學(xué)習(xí)到特定領(lǐng)域的業(yè)務(wù)邏輯知識(shí),從而帶來了“用通用數(shù)據(jù)訓(xùn)練的大模型,難以支持特定領(lǐng)域軟件開發(fā)”的問題。因此,如何使部署于私有環(huán)境中的大模型能夠?qū)W會(huì)特殊領(lǐng)域的業(yè)務(wù)邏輯知識(shí),是當(dāng)前代碼大模型的應(yīng)用中亟需解決的一個(gè)問題。這也是我所帶領(lǐng)的北京大學(xué)的研究團(tuán)隊(duì),當(dāng)前重點(diǎn)研究的內(nèi)容之一,我們希望能進(jìn)一步給出更加有效的解決方案。
再次,大模型在受限計(jì)算環(huán)境中的高效學(xué)習(xí)的問題。在實(shí)際軟件開發(fā)場景中應(yīng)用時(shí),必然需要對(duì)通用大模型進(jìn)行進(jìn)一步的個(gè)性化訓(xùn)練,這就對(duì)訓(xùn)練數(shù)據(jù)、計(jì)算資源和學(xué)習(xí)方法等提出了要求。然而,在當(dāng)前技術(shù)條件下,大模型的訓(xùn)練或精調(diào)仍需要大量的訓(xùn)練數(shù)據(jù)和計(jì)算資源,缺乏類似于人類學(xué)習(xí)能力的高效學(xué)習(xí)技術(shù),常常是耗費(fèi)了大量訓(xùn)練數(shù)據(jù)卻只能學(xué)習(xí)到有限的領(lǐng)域知識(shí)。同時(shí),對(duì)軟件企業(yè)而言,又常常難以提供足夠數(shù)量的優(yōu)質(zhì)訓(xùn)練數(shù)據(jù)和相對(duì)充足的計(jì)算資源。因此,如何進(jìn)一步提升代碼大模型的學(xué)習(xí)和訓(xùn)練效率,也是當(dāng)前應(yīng)用中的挑戰(zhàn)。
《21世紀(jì)》:未來,大模型對(duì)軟件開發(fā)模式將產(chǎn)生哪些影響?
李戈:站在軟件生命周期的角度,當(dāng)前大模型的作用主要集中在代碼自動(dòng)生成、代碼自動(dòng)補(bǔ)全、代碼自動(dòng)重構(gòu)、單元測試用例自動(dòng)生成、代碼注釋或文檔自動(dòng)生成等幾個(gè)任務(wù)中,這些任務(wù)隸屬于軟件生命周期的編碼開發(fā)和軟件測試階段,也就是說,當(dāng)前大模型在軟件開發(fā)中的應(yīng)用主要集中在編碼和測試階段中。
然而,隨著大模型和智能化軟件開發(fā)技術(shù)的發(fā)展和應(yīng)用的深入,大模型的應(yīng)用將逐步向軟件生命周期的其他階段滲透。在需求分析階段,大模型有望起到幫助開發(fā)者自動(dòng)進(jìn)行需求分析,并輔助生成需求分析說明書或相關(guān)文檔的作用;在軟件設(shè)計(jì)階段,大模型有望起到輔助自動(dòng)生成軟件設(shè)計(jì)文檔的作用;在軟件部署階段,大模型有望起到自動(dòng)生成配置文檔、輔助生成部署方案的作用;在軟件維護(hù)階段,大模型有望起到自動(dòng)生成日志代碼、自動(dòng)分析運(yùn)行日志等作用。而在上述諸階段中,我認(rèn)為在未來大模型支持下的軟件開發(fā)過程中,尤以其在軟件需求分析和軟件測試階段的作用更值得重視。
本文鏈接:專訪北京大學(xué)計(jì)算機(jī)學(xué)院長聘教授李戈:AI編程尚屬輔助角色,未來仍需加強(qiáng)垂直場景能力丨GAI進(jìn)化論⑧http://www.sq15.cn/show-2-4782-0.html
聲明:本網(wǎng)站為非營利性網(wǎng)站,本網(wǎng)頁內(nèi)容由互聯(lián)網(wǎng)博主自發(fā)貢獻(xiàn),不代表本站觀點(diǎn),本站不承擔(dān)任何法律責(zé)任。天上不會(huì)到餡餅,請(qǐng)大家謹(jǐn)防詐騙!若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。