軟件研發(fā)面臨的主要挑戰(zhàn):系統(tǒng)復(fù)雜度的無限膨脹
目前華為公司面臨的主要問題,第一個(gè)是規(guī)模,系統(tǒng)復(fù)雜度已經(jīng)是代碼倉有上千億行,雖然公司自身只有幾十萬行,但是開源代碼加起來有上千億。版本是以千為單位,這不是全公司的,有些產(chǎn)品線一個(gè)產(chǎn)品在線上活躍的版本就是幾千個(gè)。
第二是軟件集成發(fā)布流程復(fù)雜,不管是用共主干開發(fā),還是用分成流水線發(fā)布,使得整個(gè)軟件集成和發(fā)布特別復(fù)雜。另外一個(gè)很大的問題,定位定結(jié)越來越困難,不管是自己的模塊、開源、第三方,系統(tǒng)的定位定界是難的問題。
從開源軟件整個(gè)層次也可以看出企業(yè)軟件越來越復(fù)雜,在這么多軟件里面,選擇你要的東西,這時(shí)候還要考慮資源利用率、性能、可靠性、安全隱私等等,全局的復(fù)雜性使得軟件開發(fā)越來越困難。
2019年公司變革時(shí)候的調(diào)研,從代碼量增加到團(tuán)隊(duì)規(guī)模的增加從組織流程的復(fù)雜度再到工具環(huán)境的復(fù)雜度到管理度,人力成本是下降的。
另外是交付節(jié)奏,希望按月交付、按天交付,公司是八個(gè)月一個(gè)版本,現(xiàn)在能做到6個(gè)月一個(gè)版本,所以交付節(jié)奏的加快也使得系統(tǒng)復(fù)雜度越來越大。
再看現(xiàn)在做的一些事情,大模型是否能提升軟件開發(fā)效率,不管是工業(yè)界還是學(xué)術(shù)界,尤其是微軟講多少人在用大模型,公司內(nèi)部也在用這個(gè)東西,做這個(gè)事情。華為大模型的使用是從設(shè)計(jì)開發(fā)到測試交付、維護(hù),都有可能在用這個(gè)模型。目前的規(guī)劃是做知識(shí)管理和代碼生成,這是兩個(gè)最重要的實(shí)踐。
另外智能生成實(shí)踐,大模型輔助OM開發(fā)自動(dòng)化,提升OM資源研發(fā)效率70%。這個(gè)挑戰(zhàn)在于內(nèi)容特別多、步驟特別長,整個(gè)Mini行要26個(gè)步驟,非常容易遺漏。學(xué)習(xí)曲線特別陡峭,有380多種模型屬性,落到腳本有246個(gè)API的函數(shù),應(yīng)用邏輯很復(fù)雜,這么一個(gè)復(fù)雜的東西特別容易出問題。
我記得2020年在產(chǎn)品線團(tuán)隊(duì)調(diào)查,一個(gè)新員工進(jìn)來學(xué)這個(gè)東西,大概兩個(gè)月做一個(gè)MINI行,現(xiàn)在通過大模型和各種方法,把中間的某些步驟自動(dòng)化,目標(biāo)是能夠爭取在天級(jí),就是兩三天做一個(gè)。
另外整個(gè)研發(fā)工具鏈中,剛才AI For SE與SE For AI,這些都是可以做的,包括知識(shí)獲取、AI應(yīng)用、模型與服務(wù)等。在數(shù)據(jù)這塊也是非常重要的,我們自己有教訓(xùn),很多都是用開源模型去搭,如果開源模型混上自己的數(shù)據(jù)不一定能力是提升的,如果數(shù)據(jù)沒有弄好,或者沒有對齊,經(jīng)常有時(shí)候模型訓(xùn)出來是變差的,或者某些方面的能力好了,另外方面的能力差了,所以數(shù)據(jù)是很重要的。
現(xiàn)在主要的工作重心包括模型開發(fā)、模型運(yùn)行和模型運(yùn)維運(yùn)營,這是我們正在關(guān)注的幾個(gè)方面。還有華為公司有很多內(nèi)源項(xiàng)目,最近有一百多個(gè)內(nèi)源項(xiàng)目出來,比較有名的項(xiàng)目,一個(gè)是AICoder,全球技術(shù)服務(wù)部搞的一個(gè)框架。還有一個(gè)小魯班機(jī)器人,可以自動(dòng)回答公司每一個(gè)員工日常問的問題,當(dāng)然后面有很多引擎,不一定是大模型。
面向未來,我們期望面對軟件的復(fù)雜性方面來解決這些問題,一個(gè)是怎么優(yōu)化研發(fā)過程;第二是怎么做知識(shí)積累;第三是怎么幫助個(gè)人提升能力;最后一個(gè)是在組織團(tuán)隊(duì)方面怎么促進(jìn)協(xié)作。