6月29日消息,由工業(yè)和信息化部、北京市人民政府共同主辦的第二十二屆中國國際軟件博覽會今日在北京展覽館舉行。工業(yè)和信息化部部長苗圩和北京市市長陳吉寧出席。在高峰論壇上,百度高級副總裁王海峰發(fā)表主題演講表示,軟件產(chǎn)業(yè)是引領(lǐng)科技創(chuàng)新的核心力量。目前軟件開發(fā)面臨一系列挑戰(zhàn),包括急劇提升的產(chǎn)品交付需求、快速膨脹的編程現(xiàn)場數(shù)據(jù)規(guī)模、常態(tài)化大規(guī)模跨地域的交互協(xié)同等。通過人工智能技術(shù)賦能則會使整個軟件開發(fā)過程發(fā)生巨大變化。
同時,在提到人工智能方面,他表示,人工智能發(fā)展了60多年,過去這若干年帶來了非常高速的發(fā)展,最核心的支撐有三點(diǎn),就是算法、算例和數(shù)據(jù),這三者共同作用導(dǎo)致人工智能迅速在各行各業(yè)產(chǎn)生非常重大的影響,而在很多方面人工智能的能力已經(jīng)超過了人類,比如說計(jì)算機(jī)下棋,包括計(jì)算機(jī)語音識別,包括一些場景下的圖象識別等等,很多方面在逐漸超過人類。
此外,他表示,展望未來,用于軟件開發(fā)的機(jī)器人會漸漸投入使用,它們和真人程序員不是互相替代的關(guān)系,而是一起合作開發(fā),讓程序員的工作效率變得更高,質(zhì)量變得更高,程序員的生活也會更美好。
以下為王海峰的全部演講內(nèi)容:
王海峰:各位來賓、各位朋友大家上午好,非常有幸有機(jī)會在軟博會上跟大家交流一下我們的一些工作,我今天講的題目是“軟件智能開發(fā)”。當(dāng)然我們這個大會的主題就是軟件,軟件也是我們這個時代一個非常重要的基礎(chǔ),剛才尤校長講起軟件定義,而人工智能也是這個時代最熱門的詞匯之一。那么軟件和智能在一起會發(fā)生什么。
首先我們看一下軟件,今天這個數(shù)字已經(jīng)被提及好幾次,2017年中國軟件和信息技術(shù)服務(wù)業(yè)的產(chǎn)值已經(jīng)達(dá)到5.5萬億,而全球19個國家軟件支出占整個GDP都已經(jīng)超過0.5%。在我國軟件是很多重要國家戰(zhàn)略和重大任務(wù)部署的基礎(chǔ),不管是大數(shù)據(jù)、人工智能、互聯(lián)網(wǎng)+等這些戰(zhàn)略,還是十三五要強(qiáng)化科技創(chuàng)新引領(lǐng)作用,著力推進(jìn)供給側(cè)改革等等,軟件都是很重要的基礎(chǔ)。
那么軟件現(xiàn)在越來越重要,而規(guī)模也越來越大,在影響各行各業(yè)。那么軟件面臨一些什么挑戰(zhàn)呢?
我們看一下,首先軟件產(chǎn)品交付的需求在極具提升。以百度為例,我們百度公司每天新增的需求卡片就達(dá)到6700張,而每天線上發(fā)布的次數(shù)也達(dá)到了700次等等。另一方面,在需求量越來越大,代碼產(chǎn)生的量也越來越大的同時,在軟件整個開發(fā)過程中,在寫程序現(xiàn)場的數(shù)據(jù)規(guī)模也極具在膨脹。比如說還是以百度公司為例,每天新增的代碼量就超過150萬行,同時又很多舊的代碼在刪除,每天刪除的代碼量也超過60萬行,每天評審的次數(shù),每天云端編譯的次數(shù),每天觸發(fā)代碼檢查的次數(shù)也都過萬次。還有一個特點(diǎn)現(xiàn)在軟件不再說一個人拿一臺電腦自己寫程序這樣一個開發(fā)過程,而是一個大規(guī)模的跨地域的交互協(xié)同,已經(jīng)常態(tài)化。
比如說以百度大腦為例,百度大腦的工程師分布在北京、上海、深圳、硅谷、西雅圖等很多不同的地區(qū),超過三千人每天在協(xié)同開發(fā)。相應(yīng)在這樣一個大規(guī)模的開發(fā)過程中,就產(chǎn)生了編程現(xiàn)場大數(shù)據(jù),這個過程中就即時產(chǎn)生以編程為中心的海量數(shù)據(jù),呈現(xiàn)出非常典型的大數(shù)據(jù)的特點(diǎn),比如說瞬時性、海量性、多樣性和可變性。那么這些大數(shù)據(jù)在軟件開發(fā)過程中,是軟件開發(fā)過程中的產(chǎn)物,另一方面為軟件開發(fā)帶來什么呢?利用這些編程現(xiàn)場大數(shù)據(jù),通過人工智能技術(shù)賦能會使軟件整個開發(fā)過程會帶來很大的變化。接下來我們再說一下人工智能。
現(xiàn)在都知道人類的第四次工業(yè)革命一個核心科技就是人工智能,人工智能的迅速發(fā)展已經(jīng)帶來了各行各業(yè)非常多的改變。人工智能發(fā)展了60多年,過去這若干年帶來了非常高速的發(fā)展,最核心的支撐有三點(diǎn),就是算法、算例和數(shù)據(jù),這三者共同作用導(dǎo)致人工智能迅速在各行各業(yè)產(chǎn)生非常重大的影響,而在很多方面人工智能的能力已經(jīng)超過了人類,比如說計(jì)算機(jī)下棋,包括計(jì)算機(jī)語音識別,包括一些場景下的圖象識別等等,很多方面在逐漸超過人類。因此也有很多人在說,會有對人工智能有一些擔(dān)心,比如說這是一個片子里提到的,人工智能是不是會取代人類很多工作,導(dǎo)致人的失業(yè)。相應(yīng)我也在百度搜索里面查一下人工智能會取代程序員,大家看到有三百多萬條結(jié)果,很多人關(guān)心人工智能會不會使程序員失業(yè)。
我們觀點(diǎn)是什么?我們認(rèn)為人工智能會利用剛才我提到的編程現(xiàn)場大數(shù)據(jù)去賦能軟件開發(fā),使整個軟件開發(fā)的過程更高效,軟件開發(fā)的結(jié)果更高質(zhì)量,而不是說替代了程序員。為什么是這樣?下邊給大家解讀。為了解讀人工智能到底怎么樣去賦能軟件開發(fā),先看一下一個典型的百度程序員他工作大概是什么樣的?他需要接需求、需要開發(fā),需要代碼的評審、編譯、構(gòu)建而且發(fā)布等等大量的工作做。下面這些數(shù)字就是百度上萬名工程師每天產(chǎn)生的代碼的相關(guān)的這些總量的數(shù)據(jù)。我們在微觀上看一下程序員的工作,比如說有了需求,要開始開發(fā)了,要看代碼,要查很多文檔。因?yàn)椴⒉皇敲恳恍写a要重頭寫,需要調(diào)用很多模塊,需要調(diào)試,需要改代碼,需要編譯測試等等。同時出了問題,也要去追查問題,追查問題要分析問題,要復(fù)現(xiàn),要定位,定位之后可能又進(jìn)入到一個開發(fā)這樣一個迭代的過程。我們都知道現(xiàn)在的軟件開發(fā)是一個高速迭代的過程。
剛才說了程序員做事情的全景,程序員每天干的事情最多的時間花在什么地方?就是讀代碼、寫代碼和調(diào)試代碼。這個過程中有大量的數(shù)據(jù),怎么樣去提升程序員的效率,以及工作的質(zhì)量?剛才我們說了讀代碼、寫代碼、調(diào)試代碼這些,如果提升這個過程的效率,就會使整個軟件開發(fā)的效率得到很大的提升,這是一個我們整個通過編程現(xiàn)場大數(shù)據(jù)做這種軟件智能開發(fā)的一個整體的技術(shù)構(gòu)架圖。我們看到有基礎(chǔ)處理的編程現(xiàn)場大數(shù)據(jù),進(jìn)行采集、清晰、校對,同時有跨地域動態(tài)感知的編程環(huán)境,有這兩層基礎(chǔ)以后,我們可以進(jìn)行一些更智能化的編程,環(huán)境框架的搭建,比如程序的學(xué)習(xí)和現(xiàn)場代碼生成,包括編成規(guī)范與風(fēng)格的指導(dǎo),現(xiàn)場代碼的構(gòu)建以及接口的推薦,包括這種缺陷的分析診治這些。有了所有的技術(shù)可以構(gòu)建一個人機(jī)協(xié)同的面向軟件開發(fā)的一個云平臺,形成一個智能的編程機(jī)器人。
給大家一點(diǎn)具體的例子,比如說有一些源代碼自動生成的補(bǔ)全的例子,這個背后除了我們有這些數(shù)據(jù),我們用人工智能技術(shù)會用到很多相關(guān)的人工智能技術(shù),比如說百度深度學(xué)習(xí)框架(英文)的平臺,就會用在現(xiàn)在大家看到場景的背后,有這樣一個深度學(xué)習(xí)的框架來支撐去學(xué)習(xí)這些編程現(xiàn)場大數(shù)據(jù),進(jìn)而可以進(jìn)行這種代碼的生成和補(bǔ)全。當(dāng)然也可以從這些數(shù)據(jù)里,自動去學(xué)習(xí)建模,怎么樣對代碼里面的問題進(jìn)行輔助的定位和修復(fù)。
稍微總結(jié)一下,我們在逐漸構(gòu)建這樣一個以編成開發(fā)為核心的快速迭代的過程,這里邊從需求到設(shè)計(jì)到測試,到部署發(fā)布、運(yùn)維等等一系列的過程,而整個過程中,我們基本可以實(shí)現(xiàn)軟件生產(chǎn)過程中這些都可以實(shí)時進(jìn)行反饋,同時整個生產(chǎn)過程是高度并行化的。展望未來,我們看到這個圖實(shí)際上是在軟件整個編程,軟件開發(fā)這樣一個演進(jìn)的過程,我們從最早期,比如說在我上學(xué)那個年代,我用到更多是一些工具,比如編輯的工具、編譯的工具等等這些,而逐漸智能化水平越來越高會逐漸發(fā)展成從這些軟件開發(fā)工具變成助手,慢慢形成軟件開發(fā)的機(jī)器人和真人的程序員,他們倆之間不是一個互相替代的關(guān)系,而是會成為這樣一個同臺的關(guān)系,一起合作開發(fā),讓程序員的工作效率變得更高,質(zhì)量變得更高,程序員的生活也會更美好。當(dāng)然了最后,程序員產(chǎn)生的軟件也會讓我們每一個人的生活更美好,讓我們的世界更美好,謝謝大家。