自動(dòng)編程還能自主檢測(cè)Bug,人類(lèi)可更專(zhuān)注于創(chuàng)造
機(jī)器編程與機(jī)器學(xué)習(xí)有很大的不同,機(jī)器編程是教系統(tǒng)自己編程。雖然還處于早期階段,但這種新穎的自我監(jiān)控系統(tǒng)有望成為一種強(qiáng)大的生產(chǎn)力工具,并幫助軟件開(kāi)發(fā)人員完成耗時(shí)費(fèi)力的DEBUG工作
文︱朵啦
軟件進(jìn)步靠研發(fā),研發(fā)進(jìn)展靠程序員,程序員寫(xiě)代碼靠996。
軟件產(chǎn)品是核心競(jìng)爭(zhēng)力,如果不能領(lǐng)跑同行,就會(huì)被時(shí)代的浪潮拍死在沙灘上。頭部公司每年都要在研發(fā)上砸下巨資,對(duì)于大公司需要靠研發(fā)投入保持競(jìng)爭(zhēng)力;對(duì)于小公司來(lái)說(shuō),軟件產(chǎn)品就是事關(guān)生存的“最后一根稻草”。隨著異構(gòu)時(shí)代的到來(lái),海量數(shù)據(jù)由多樣化的專(zhuān)用處理器組合管理,系統(tǒng)功能日趨繁復(fù),管理這些系統(tǒng)所需的軟件就越來(lái)越復(fù)雜,bug出現(xiàn)的可能性也越來(lái)越高。開(kāi)發(fā)人員要花費(fèi)越來(lái)越多的時(shí)間來(lái)修復(fù)bug,而不是編寫(xiě)代碼。
寫(xiě)代碼、改bug成了程序員996的工作核心;而軟件開(kāi)發(fā)周期未知而漫長(zhǎng),怕是996都無(wú)法解決。一覺(jué)睡起來(lái),原本1%的代碼就自動(dòng)寫(xiě)到了99%,bug自動(dòng)修復(fù),你敢想嗎?——Hi,這不再是夢(mèng)了。
構(gòu)建系統(tǒng),然后由系統(tǒng)自行構(gòu)建自己的軟件系統(tǒng),這種被稱(chēng)為“機(jī)器編程”的領(lǐng)域應(yīng)運(yùn)而生。英特爾首席科學(xué)家、英特爾研究院機(jī)器編程研究主任及創(chuàng)始人Justin Gottschlich表示,機(jī)器編程與機(jī)器學(xué)習(xí)有很大的不同,機(jī)器編程是教系統(tǒng)自己編程。雖然還處于早期階段,但這種新穎的自我監(jiān)控系統(tǒng)有望成為一種強(qiáng)大的生產(chǎn)力工具,并幫助軟件開(kāi)發(fā)人員完成耗時(shí)費(fèi)力的Debug工作。
檢測(cè)bug,軟件自己搞定
“機(jī)器編程”一詞在英特爾研究院和麻省理工學(xué)院聯(lián)合發(fā)布的《機(jī)器編程的三大支柱》論文中首次提出,通過(guò)機(jī)器學(xué)習(xí)和其他方法,機(jī)器編程可以設(shè)計(jì)實(shí)現(xiàn)自動(dòng)編寫(xiě)軟件的軟件。這將使程序員們有更大自由度和更多的精力去創(chuàng)造新的軟件。對(duì)于英特爾研究院機(jī)器編程研究,自動(dòng)生成軟件領(lǐng)域是機(jī)器編程的核心重點(diǎn)。這個(gè)研究領(lǐng)域,英特爾研究院機(jī)器編程研究稱(chēng)之為“機(jī)器編程”。它的核心原則是,人類(lèi)向機(jī)器表達(dá)他(她)的意圖,機(jī)器會(huì)自動(dòng)創(chuàng)建完成該意圖所需的所有軟件。英特爾研究院機(jī)器編程研究對(duì)于某些工作負(fù)載進(jìn)行專(zhuān)業(yè)化處理,計(jì)算資源變得越來(lái)越異構(gòu)化,所以這需要專(zhuān)家級(jí)的程序員,他們非常了解硬件以及如何最大限度地利用硬件。但與此同時(shí),軟件開(kāi)發(fā)人員越來(lái)越青睞于使用更抽象的語(yǔ)言,以提高工作效率。這反過(guò)來(lái)會(huì)導(dǎo)致硬件難以發(fā)揮出它本身的性能。
不久前,英特爾科學(xué)家與麻省理工學(xué)院(MIT),以及佐治亞理工學(xué)院(Georgia Tech)的研究人員共同推出了一種新的機(jī)器編程(MP)系統(tǒng)——機(jī)器推斷代碼相似性(MISIM)全新機(jī)器編程系統(tǒng)。是一款檢測(cè)軟件意圖的自動(dòng)化引擎,通過(guò)識(shí)別代碼結(jié)構(gòu)、分析與其它功能相似代碼的句法差異實(shí)現(xiàn)。正如Justin所闡述的,“這是實(shí)現(xiàn)機(jī)器編程偉大愿景的重要一步!蓖瑫r(shí)Justin表示:“如果機(jī)器能做到自動(dòng)檢查和修復(fù)bug,我想大多數(shù)開(kāi)發(fā)人員一定非常愿意讓它來(lái)承擔(dān)這項(xiàng)工作,至少我會(huì)。”
抱著實(shí)現(xiàn)機(jī)器編程的美好愿景,英特爾研究院機(jī)器編程研究在12月進(jìn)一步推出了機(jī)器編程研究系統(tǒng)ControlFlag,除了自動(dòng)編程,它還可以自動(dòng)檢測(cè)代碼中的錯(cuò)誤。在初步測(cè)試中,ControlFlag使用超過(guò)10億個(gè)未標(biāo)記的產(chǎn)品級(jí)代碼來(lái)訓(xùn)練和學(xué)習(xí)新的缺陷。英特爾研究院機(jī)器編程研究認(rèn)為ControlFlag是一個(gè)強(qiáng)大的新工具,可以大大減少評(píng)估和調(diào)試代碼所需的時(shí)間和成本。
首先,ControlFlag是完全自我監(jiān)督的機(jī)器編程系統(tǒng),不需要人類(lèi)對(duì)其進(jìn)行訓(xùn)練及指導(dǎo)。ControlFlag的無(wú)監(jiān)督模式識(shí)別方法使它可以在本質(zhì)上學(xué)習(xí)適應(yīng)開(kāi)發(fā)者的風(fēng)格。在要評(píng)估的控制工具的有限輸入信息中,ControlFlag可以識(shí)別編程語(yǔ)言中的各種樣式,不受代碼使用的編程語(yǔ)言限制。
第二,ControlFlag檢測(cè)bug的功能集成了機(jī)器學(xué)習(xí)、形式化方法、編程語(yǔ)言、編譯器和計(jì)算機(jī)系統(tǒng)。據(jù)悉,ControlFlag通過(guò)一個(gè)稱(chēng)為異常檢測(cè)的功能來(lái)進(jìn)行bug檢測(cè),通過(guò)學(xué)習(xí)經(jīng)驗(yàn)證的例子來(lái)檢測(cè)正常的編程模式,并找出代碼中可能導(dǎo)致bug的異常。該工具將學(xué)會(huì)識(shí)別和標(biāo)記這些風(fēng)格選擇,并根據(jù)其見(jiàn)解進(jìn)行自動(dòng)的錯(cuò)誤識(shí)別和建議解決方案,以便ControlFlag能夠盡可能地避免將兩個(gè)開(kāi)發(fā)團(tuán)隊(duì)之間的風(fēng)格差異視為代碼錯(cuò)誤。
自動(dòng)檢測(cè)bug的系統(tǒng)好不好用?英特爾已經(jīng)開(kāi)始評(píng)估內(nèi)部使用ControlFlag來(lái)發(fā)現(xiàn)自己的軟件和固件產(chǎn)品化中的錯(cuò)誤。這是英特爾開(kāi)發(fā)人員快速分析項(xiàng)目的一個(gè)關(guān)鍵組成部分,該項(xiàng)目旨在通過(guò)提供專(zhuān)家支持來(lái)幫助程序員加快速度!
機(jī)器編程更偏向隨機(jī)
英特爾機(jī)器編程研究系統(tǒng)ControlFlag從超過(guò)十億行的代碼中學(xué)習(xí),英特爾研究院機(jī)器編程研究表示,這在機(jī)器編程系統(tǒng)中尚屬首次。另外,對(duì)于跨架構(gòu)硬件來(lái)說(shuō),能夠正確、高效、安全地編寫(xiě)代碼的程序員稀少,從而導(dǎo)致代碼中存在難以發(fā)現(xiàn)的新錯(cuò)誤。而ControlFlag檢測(cè)現(xiàn)有軟件中的違規(guī)或異常情況,使可能已經(jīng)在生產(chǎn)質(zhì)量系統(tǒng)中存在了20多年的隱疾得以發(fā)現(xiàn)。過(guò)去可能有數(shù)百名開(kāi)發(fā)人員查看過(guò)這些代碼,但都沒(méi)有意識(shí)到任何問(wèn)題,現(xiàn)在ControlFlag可以實(shí)現(xiàn)人力不能達(dá)到的效果。
英特爾研究院機(jī)器編程研究融合了兩種方法,來(lái)推動(dòng)大量的機(jī)器編程研究,一種是形式化方法,一種是隨機(jī)方法(stochastic approaches)。英特爾研究院機(jī)器編程研究分析目前業(yè)界在機(jī)器編程領(lǐng)域方面的工作發(fā)現(xiàn),機(jī)器編程更偏向隨機(jī)方法,并得到了很大的重視,例如深度神經(jīng)網(wǎng)絡(luò)和貝葉斯網(wǎng)絡(luò)(Bayesian networks)等等。事實(shí)上,英特爾研究院機(jī)器編程研究表示,他們的某些合作伙伴或競(jìng)爭(zhēng)對(duì)手正在做神經(jīng)網(wǎng)絡(luò)編程,使用神經(jīng)網(wǎng)絡(luò)來(lái)替換大量代碼。這樣做有好處,但是當(dāng)遇到諸如可解釋性或debug問(wèn)題時(shí),這樣做也有風(fēng)險(xiǎn)。
在正確的應(yīng)用場(chǎng)景,機(jī)器編程對(duì)開(kāi)發(fā)效率的提升驚人。Justin表示,在某個(gè)案例中,用傳統(tǒng)的軟件技術(shù),開(kāi)發(fā)完成大約需要三年時(shí)間,有了先進(jìn)的機(jī)器編程技術(shù),只需要花一天的時(shí)間,就能開(kāi)發(fā)完成同樣質(zhì)量的軟件。“很多例子表明,不管是與我們的合作伙伴項(xiàng)目,還是我們自己內(nèi)部的開(kāi)發(fā)項(xiàng)目,機(jī)器編程都將生產(chǎn)率提高了一千倍以上。”
降低行業(yè)準(zhǔn)入門(mén)檻,從業(yè)者創(chuàng)造性會(huì)更強(qiáng)
機(jī)器編程發(fā)展是否會(huì)讓英特爾的程序員失業(yè)呢?Justin表示:不會(huì)。相反,機(jī)器編程實(shí)際上會(huì)創(chuàng)造數(shù)千萬(wàn)到數(shù)億個(gè)就業(yè)機(jī)會(huì)。他進(jìn)一步解釋到:首先,當(dāng)今存在的大多數(shù)機(jī)器編程系統(tǒng)都需要大量的數(shù)據(jù),這些數(shù)據(jù)通常是以代碼的形式存在,而代碼是由專(zhuān)業(yè)程序員編寫(xiě)。因此,隨著自動(dòng)化的發(fā)展,英特爾研究院機(jī)器編程研究對(duì)高技能程序員的需求增加,以推進(jìn)系統(tǒng)的進(jìn)步升級(jí)。最重要的是,如果英特爾研究院機(jī)器編程研究的意圖系統(tǒng)成功,即允許用戶(hù)向機(jī)器表達(dá)他或她的意圖的系統(tǒng),這將降低行業(yè)準(zhǔn)入門(mén)檻。
機(jī)器編程會(huì)為全新類(lèi)型的程序員創(chuàng)造大平臺(tái),從業(yè)者創(chuàng)造性會(huì)更強(qiáng),而機(jī)器和系統(tǒng)會(huì)把這些想法綜合起來(lái)做出軟件。如今,通過(guò)ControlFlag和類(lèi)似的系統(tǒng),程序員可以顯著減少調(diào)試時(shí)間,并將更多的時(shí)間花在人類(lèi)程序員最擅長(zhǎng)的工作——向機(jī)器呈現(xiàn)創(chuàng)造性的新思想。完全實(shí)現(xiàn)的ControlFlag可以通過(guò)自動(dòng)化繁瑣的軟件開(kāi)發(fā)工作(如測(cè)試、監(jiān)控和調(diào)試)來(lái)幫助緩解上述挑戰(zhàn),同時(shí)可以解決當(dāng)前軟件開(kāi)發(fā)中耗時(shí)費(fèi)力代價(jià)昂貴的bug修復(fù)問(wèn)題。
圖:在全球78億人中,只有2700萬(wàn)人會(huì)編寫(xiě)代碼,占比不到 1%。英特爾希望借助機(jī)器編程技術(shù),使所有人獲得編程能力。
英特爾推進(jìn)機(jī)器編程的最終目標(biāo)是讓每個(gè)人都能創(chuàng)建軟件。當(dāng)這一目標(biāo)完全實(shí)現(xiàn)時(shí),每個(gè)人都可以通過(guò)自己最擅長(zhǎng)的方式,如代碼、自然語(yǔ)言或其他方式向機(jī)器表達(dá)自己的設(shè)計(jì)意圖,從而創(chuàng)建軟件。這是一個(gè)大膽的目標(biāo),需要英特爾及合作伙伴付出許多努力。
做理性自由的破題者
算法與算力的進(jìn)步,以及可用代碼庫(kù)的極大豐富,讓機(jī)器編程擁有適宜的孕育環(huán)境;隨著近年計(jì)算技術(shù)的迅猛發(fā)展,機(jī)器編程迎來(lái)重要拐點(diǎn)。英特爾一直以來(lái)的作風(fēng)便是積極打破傳統(tǒng),開(kāi)拓新的研究或工程領(lǐng)域,這些領(lǐng)域在英特爾研究院機(jī)器編程研究突破界限之前還無(wú)人涉及。此次異構(gòu)系統(tǒng)領(lǐng)域亦是一片“處女地”,英特爾的創(chuàng)新驅(qū)動(dòng)力來(lái)自于對(duì)這一未來(lái)技術(shù)趨勢(shì)的預(yù)測(cè)。
如前所述,異構(gòu)系統(tǒng)非常復(fù)雜,能夠切實(shí)掌握異構(gòu)系統(tǒng)編程技術(shù)的工程師少之又少,英特爾研究院機(jī)器編程研究正在開(kāi)發(fā)某種機(jī)制,讓程序員或非程序員不僅能夠輕松訪問(wèn)異構(gòu)硬件,還能充分使用其他系統(tǒng)可用資源,以大幅降低異構(gòu)編程難度。這也是英特爾機(jī)器編程的基本驅(qū)動(dòng)力之一。
為推動(dòng)機(jī)器編程的開(kāi)源合作,英特爾、發(fā)布了開(kāi)源技術(shù)和出版物,推動(dòng)機(jī)器編程的進(jìn)一步發(fā)展以及與合伙伙伴的合作。英特爾還創(chuàng)立了叫做“機(jī)器編程研討會(huì)”,也稱(chēng)MAPS,參會(huì)人數(shù)已經(jīng)從四年前的20人增加到了2019年底的近400人。Justin透露,2021年還將建立一個(gè)新的機(jī)器編程中心,英特爾將會(huì)與業(yè)界建立更廣泛的合作。
最后,引用Justin的一段話(huà):對(duì)于顛覆性的技術(shù),需要“理性的自由”。一切構(gòu)想需要花時(shí)間埋頭深入挖掘,把事情做好。否則,如果做事急躁,可能會(huì)在設(shè)計(jì)和方法上做出妥協(xié)。雖然可能獲得短期收益,但系統(tǒng)的長(zhǎng)期生命力可能會(huì)下降。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線(xiàn)大會(huì)
-
4月30日立即下載>> 【村田汽車(chē)】汽車(chē)E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線(xiàn)下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線(xiàn)會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書(shū)】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專(zhuān)題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類(lèi)新物種登上歷史舞臺(tái)
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線(xiàn)自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?