AI 時代,許多開發(fā)者都已經(jīng)上手了各式 AI 編程工具,至于評價則千差萬別。但整體而言,AI 編程的代碼正越來越多出現(xiàn)在當下的各種技術(shù)棧中,其口碑也在逐漸攀升。隨著 GPT4 的出現(xiàn),AI 編程正在邁入新的臺階,而軟件工程 3.0 時代也正在進行中。
為了更好地了解當下 AI 編程能力的發(fā)展,我們邀請到同濟大學(xué)特聘教授,“軟件工程 3.0” 定義者朱少民,請談?wù)勊?AI 編程的過去與未來。
朱少民
同濟大學(xué)特聘教授,“軟件工程 3.0” 定義者
CCF 軟件質(zhì)量工程 SIG 主席,擁有個人公眾號《軟件質(zhì)量報道》。近三十年來一直從事軟件測試、質(zhì)量管理等工作,先后獲得多項省、部級科技進步獎,已出版了二十多部著作和 4 本譯作,并經(jīng)常在國內(nèi)外學(xué)術(shù)會議或技術(shù)大會上發(fā)表演講,曾任思科(中國)軟件有限公司 QA 高級總監(jiān)、IEEE ICST 2019 工業(yè)論壇主席、多個 IEEE 學(xué)術(shù)會議的程序委員、《軟件學(xué)報》審稿人等。
5 月 28 日,朱少民將擔任 GOTC 2023 “AI 編程” 分論壇講師,并發(fā)表《軟件工程 3.0 之下 軟件開發(fā)新范式》主題演講,敬請期待!
參會報名,請訪問: https://www.bagevent.com/event/8387611
OSCHINA:AI 編程這個概念是什么時候開始興起的?現(xiàn)在處于什么樣的發(fā)展階段?
上世紀 70 年代左右就有了計算機輔助編程,但和今天的 AI 編程還是有區(qū)別的。輔助編程是想通過一些規(guī)則或者是專家系統(tǒng)來完成編程,基于規(guī)則引擎來做推理,相當于模擬人的思維,知名工具軟件 MATLAB 可以看做是輔助編程的成果。但是效果不夠好,所以后面也就停了一段時間。
這波人工智能的熱潮可以看作是 AI 第三次浪潮的延續(xù),而第一次和第二次的浪潮,實際上沒有達到我們預(yù)期的效果。
今天我們講 AI 編程,更多的是最近幾年,基于深度學(xué)習(xí)、機器學(xué)習(xí),基于深度神經(jīng)網(wǎng)絡(luò)和強化學(xué)習(xí)這些新技術(shù)來完成代碼的編寫。
那么現(xiàn)在所處的階段,不能說是成熟階段,但可以認為是接近成熟的階段。比如 Copilot X,華為的盤古模型也能生成函數(shù)級的代碼了。這些技術(shù)已經(jīng)可以在工程實踐中應(yīng)用了。
OSCHINA:現(xiàn)在市面上有很多宣稱能寫代碼的 AI 工具,開發(fā)者要怎么區(qū)分與選擇?
一方面要看你使用的編程語言。目前如果用的是 C 語言,AI 方面的能力就弱一些。如果是 Java 或者 Paython、Go 語言,那開源的代碼數(shù)據(jù)比較多,效果就會比較好。如果用到特殊的語言,也許會更困難。
另一方面就是要看功能,比如可不可以做代碼補全、代碼評審。還有代碼生成的可靠性和準確性,決策是否可靠等等。比如生成代碼的問題比較多,重構(gòu)的工作量非常大,那么就沒有意義。開發(fā)者常說的一句話:代碼寫得爛,要我改還不如我自己重寫。最后,還要看工具好不好用,例如是否通過插件實現(xiàn)的(可以保留過去編程的習(xí)慣)等等。
OSCHINA:AI 編程如果要進一步發(fā)展,需要在哪些方面有所突破?
一個是規(guī)模挑戰(zhàn),即生成代碼的量。
比如華為的盤古模型生產(chǎn)代碼是函數(shù)級的,已經(jīng)算是比較厲害的了。以前我們講代碼補全,相當于寫一行代碼給你補兩行,或者寫兩行補一行,那么這在一個函數(shù)里可能只是完成了二分之一或者三分之一,你可以理解為代碼塊或者說代碼行補全。從這種到函數(shù)級生成代碼已經(jīng)算是一大進步了,函數(shù)級至少完成了一個類的方法。
那么在此之上,再提升量級,比如完成一個完整類或模塊、Package 等。
二是準確性、可靠性。早期代碼生成的準確率大概是 40%、50%,根本不能用。工業(yè)界一般在達到 80%、90% 之后才會用。如果達到 95%,甚至是 98%,那就更好了。
三是代碼理解能力是不是更強,像邏輯關(guān)系、上下文聯(lián)系等等,相當于 AI 還可以聯(lián)想到過去的代碼。這方面,在今天也是對 AI 編程的一個主要限制。比如上下文理解,因為我們寫代碼或者整個代碼的演化時間還是很長的,我經(jīng)常和學(xué)生講,你開發(fā)產(chǎn)品的第一個版本也許一兩個月就結(jié)束了,但如果你的產(chǎn)品開發(fā)得比較好、有生命力,整個演化過程也許是幾年甚至十幾年。
那么我們今天的機器學(xué)習(xí)或者說大模型還沒有這方面的能力,無法記住幾天前的上下文,無法回憶幾年前自己生成的代碼,并依此不斷生成新的代碼、或做代碼的重構(gòu)與優(yōu)化。
這相當于講,目前的 AI 是通用的大數(shù)據(jù)學(xué)習(xí),它不能學(xué)習(xí)產(chǎn)品線代碼,然后來生成符合這個產(chǎn)品線業(yè)務(wù)邏輯的代碼。GPT-4 能不能做這樣事情,至少是要打一個問號的。
四是人機交互智能。這也要提到軟件工程 3.0,GPT-4 發(fā)布標志著軟件工程 3.0 時代的到來,其中人機交互智能將是軟件工程 3.0 的一個常態(tài)。我們把需求文檔塞進去,所有代碼就都出來了,或者說是完全自動化生成代碼,這樣理想的情況,至少最近幾年應(yīng)該都不會發(fā)生。這還需要人和大模型、機器之間不斷交互。
我們也希望有一個更好的交互機制,或者我們會提醒大模型,一個月之前的需求是不是可以重新思考,重新生成,或者把一個月之前的答案再做修改與調(diào)整。
同時這點放到今天的語境里來看相對更復(fù)雜的一點是,有時開發(fā)者不止一個人。以前簡單的模式是每個開發(fā)人員會有一個助手,但現(xiàn)在可能是一個開發(fā)者擁有好幾個機器人,甚至是機器人與機器人之間的協(xié)調(diào)。最近也有論文提到,去做一個類似管理人機交互過程,或者說是任務(wù)調(diào)度的平臺。
全球開源技術(shù)峰會(Global Open-source Technology Conference,簡稱 GOTC)是由開放原子開源基金會、 Linux 基金會亞太區(qū)、上海浦東軟件園和開源中國聯(lián)合發(fā)起的,面向全球開發(fā)者的一場盛大開源技術(shù)盛宴。
GOTC 2023 將于 5 月 27 日至 28 日在上海張江科學(xué)會堂召開。大會將以行業(yè)展覽、主題發(fā)言、特別論壇、分論壇的形式展現(xiàn),與會者將一起探討元宇宙、3D 與游戲、eBPF、Web3.0、區(qū)塊鏈等熱門技術(shù)主題,以及開源社區(qū)、AIGC、汽車軟件、AI 編程、開源教育培訓(xùn)、云原生等熱門話題,探討開源未來,助力開源發(fā)展。
進入官網(wǎng)了解更多信息。
(本內(nèi)容屬于網(wǎng)絡(luò)轉(zhuǎn)載,文中涉及圖片等內(nèi)容如有侵權(quán),請聯(lián)系編輯刪除。市場有風(fēng)險,選擇需謹慎!此文僅供參考,不作買賣及投資依據(jù)。)
原創(chuàng)文章,作者:陳晨,如若轉(zhuǎn)載,請注明出處:http://m.2079x.cn/article/572007.html