2700萬程式設計師要失業?機器編程要讓全球78億人都能寫代碼

2020-12-23 雷鋒網

數據顯示,全球78億人中,只有2700萬人會編寫代碼,佔比不到1%。不過,機器編程想讓另外99%的人也能編寫代碼。這聽起來很科幻,但英特爾在機器編程領域的進展讓我們相信讓100%的人都能寫代碼並非觸不可及。

英特爾的ControlFlag系統是全球首個自我監控系統,不需要標記數據就能學習,通過學習超過十億行代碼,可以自主檢測代碼中的錯誤,發現了許多過去被開發人員忽略的違規和異常。

機器編程到底要做什麼?為什麼全員都能編程後程式設計師不會失業?

什麼是機器編程?

機器編程並非近來提出的全新概念,在20世紀50年代時它被稱為「程序合成」,程序合成是一種使用數學證明的非常形式化的方法,它採用某種形式的輸入,然後生成一個軟體。

實際上,機器編程是構建系統,然後由系統自動構建軟體系統,硬體系統也隨之構建起來。顯然,自動生成軟體是機器編程的核心重點,其核心原則是,人類向機器表達他(她)的意圖,機器會自動創建完成該意圖所需的所有軟體。

研究機器編程是為了替代程式設計師嗎?答案當然是否定的。英特爾高級院士、副總裁、英特爾研究院院長Rich Uhlig在2020英特爾研究院開放日上表示:「關於編程,我們看到了兩種對立的趨勢。一方面,計算資源變得越來越異構,需要了解硬體以及如何最大限度使用硬體的專家級程式設計師。另一方面,軟體開發人員越來越青睞於使用更抽象的語言,以提高工作效率,但這會導致硬體難以發揮出它本身的性能。」

「研究當前的軟體是如何開發的,考慮異構硬體的未來,可以得出一個強有力的結論,那就是當前開發軟體的方式不會可維持地繼續向前發展。」英特爾首席科學家、英特爾研究院機器編程研究主任及創始人Justin Gottschlich認為,「我們對程式設計師的要求過高。」

用一個非常形象的比喻來解釋軟體開發需要的準備工作,想像你是一位技藝高超的畫家,但在畫畫之前,需要製作畫筆、畫布、畫框、畫架、顏料。「有多少畫家能做到這些?我認為這樣的畫家很少,甚至沒有,編程的門檻過高導致許多天才被埋沒。「Justin認為。

他舉了個例子,一名房地產行業的權威,對市場的理解敏銳又細緻,但現有的工具不能幫助她制定房地產決策,於是只能分開使用每一種工具,慢慢收集數據。但只要在她決策之前市場發生變化,之前的工作就需要重新開始,時間也被浪費。

不僅僅是需要精細度、精確性的地產行業,農業、生物、建築、醫療、金融領域的專家也希望能夠向機器表達他們的意圖,機器能夠構建相應的軟體實現他們的意圖。

這也是機器編程的概念以及人們為什麼需要機器編程。

如何實現機器編程?

英特爾研究院和麻省理工學院的教授團隊合作撰寫的題為《機器編程的三大支柱》的論文指出,意圖(Intention)、創造(Invention)和適應(Adaption)是機器編程的三大支柱。

簡而言之,「意圖」是人類向機器表達自己想法的能力,表達出來後機器就可以「創造」,之後繼續根據用戶指定的意圖,構造更高級的程序表達。在構造了更高級的表達後,「適應系統」會對這個更高階的程序進行轉換,化解異構硬體挑戰。

要實現這個長期的願景,需要先邁出關鍵一步。Justin說:「要讓機器編程同時從兩個方向為開發人員提供幫助。首先是提高編碼員和非編碼員的工作效率。其次是確保機器編程系統生成的是高質量、快速、安全的代碼。」

基於兩個核心價值,機器編程關鍵的第一步是改進軟體調試(Debug)。軟體Debug本質上是識別、分析和糾正軟體缺陷的過程,讓軟體變得更強大和可靠。根據2017 年劍橋大學開展的一項調查,美國程式設計師Debug的時間平均花費佔到整個開發周期的一半。

這明確了兩個問題,程式設計師的開發的軟體質量不合格,同時Debug嚴重影響了程式設計師的工作效率。據悉,英特爾研究院開發的機器編程系統可以將程式設計師的工作效率提高2倍。

利用《診斷軟體性能回歸的零正學習方法》提出的一種在高性能計算代碼中,自動進行回歸測試(由新代碼籤入引起的錯誤)的方法AutoPerf,在運行代碼時只利用名義訓練數據和硬體性能計數器,英特爾的系統證明AutoPerf可以檢測到並行編程中一些最複雜的性能bug。更重要的是,這個系統可以自動將測試應用於不同的硬體架構上,解決了硬體異構帶來的軟體編程複雜性大幅提升的挑戰。這個系統的研究成果已經在去年的機器學習頂級研究會議NeurIPS上發布。

英特爾的另一個機器編程系統就是文章開篇提到的ControlFlag系統,可以在無人監督的情況下查找不限於性能的漏洞。

「ControlFlag可以在沒有任何人類生成的數據標籤下學習,非常讓我興奮的是,這個系統最近突破了從超過10億行代碼中學習的極限。」Justin說:「它能夠發現一些高度複雜的細微漏洞,其中有些漏洞十多年來一直被開發人員所忽略。每次我們添加更多數據,它似乎都能學到以前沒有觀察到的新事物。」

雷鋒網(公眾號:雷鋒網)了解到,ControlFlag更多研究成果將會在今年的NeurIPS上展示。

Jestin介紹,機器編程主要有兩種方法,一種是形式化方法,一種是隨機方法,目前業界更重視隨機的方法。英特爾的不同在於融合了兩種算法,並且在許多案例中實現了超過千倍的成績。比如在改進軟體開發時序質量(Temporal qualities),也就是開發軟體的時間減少到千分之一,這就有可能讓現在需要花三年開發的軟體,藉助機器編程只需要花費一天就可以完成同樣的軟體。

「在某些例子中,可以說是近乎無限的改進。因為構建某些東西需要一定的時間,然後我們把這個數字降為零。」Justin進一步指出。

機器編程會替代程式設計師嗎?

程序能夠自動化的高效構建,意味著程式設計師要失業了嗎?Justin的觀點是,如果機器編程成功,其真正過人之處是創造數千萬到數億個就業機會,為全新類型的程式設計師有非常大的創造平臺,專業程式設計師也不會被替代。

原因很簡單,首先,現存在的大多數機器編程系統都需要大量數據,這些數據通常是代碼的形式存在,而代碼是由專業程式設計師編寫,自動化將會對高技能程式設計師的需求將會增加,因為專業程式設計師寫的代碼越多,構建的機器編程系統就越先進。

更重要的是,如果意圖系統成功,將降低編程的準入門檻。這樣一來,只要他們有批判性思考的能力,就可以表達其想法,軟體就能幫助他實現,就像前面提到的房產權威的例子。

接下來的問題就是機器編程何時會被大量應用。Justin認為得益於算法、算力和數據的提升,機器編程正處於拐點。

據悉,許多機器編程的研究成果都出自英特爾2017年成立的機器編程中心卡帕研究中心(Kappa Research Center)。並且,英特爾發布了開源技術和出版物,推動機器編程的進一步發展以及與合夥夥伴的合作。英特爾還創立了叫做「機器編程研討會」,也稱MAPS,參會人數已經從四年前的20人增加到了去年差不多400人。

Justin透露,2021年英特爾還將建立一個新的機器編程中心,英特爾也會建立更廣泛的合作。

不過,無論是在硬體還是軟體領域,想要實現1000倍的提升僅靠單一技術是不夠的。Rich說:「英特爾的目標是讓每個人都能獲得百億億次級計算,英特爾研究院正在實現這一目標。為了實現目標,必須改變思考方式,將各領域專家聚集在一起,合作探索科學和技術知識的交叉領域。我們選擇了集成光電、神經擬態計算、量子計算、保密計算、機器編程這五個領域。我們認為這五個領域能夠真正大規模釋放數據價值,並且變革人們與數據互動的方式。」

比如機器編程和神經擬態的交叉研究,Justin認為,「機器編程可以幫助神經擬態計算,以非傳統的編程角度進入該架構。今天使用的機器編程的很多技術,是基於各種機器學習類型的系統。我特別感興趣的是,我們是否可以運用神經擬態計算,探索機器編程的創造性和適應性系統,目前我們還沒有探索到。」

最後,引用Justin的一句話:「對於顛覆性的技術,需要『理性的自由』,要花時間深入挖掘把事情做好,如果做事急躁,在設計和方法上妥協,可能會獲得短期收益,但系統長期的生命力會下降。」

註:文中配圖來自英特爾 雷鋒網雷鋒網

相關文章:

英特爾1億個神經元的全球最強神經擬態系統,何時改變世界?

​神經擬態計算的「一小步」, AI發展的「一大步」

英特爾1億個神經元的全球最強神經擬態系統,何時改變世界?

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 機器編程究竟是什麼?發展難點在哪裡?
    量子計算等列為影響未來10年的顛覆性技術;目前包括微軟、谷歌、Facebook等在內的全球巨頭,都加入了機器編程的賽道。現在大部分人的電腦上都運行著微軟的作業系統,微軟也成了世界上市值最高的公司之一,深刻地影響了全世界。也是在不久前,騰訊公司展示了微信第一版的幾行代碼,就是這個程序,歷經8年的成長,現在變成了影響幾億人生活、工作的重要工具。 編程對於這個世界的意義,當然不僅僅是創造了一批赫赫有名的IT大佬,創造了微軟和騰訊。
  • 未來機器編程會「搶」程式設計師飯碗嗎
    那麼,機器編程指的是搬運代碼模型,還是具有相當的自主開發特徵;目前機器編程的主要方法有哪些,效能如何,具備怎樣的優勢;為什麼有專家認為機器編程不僅不會取代程式設計師,還會創造出大量就業機會,其可能首先大規模應用於什麼領域?代碼將不再是「手工藝品」如今,幾乎各個行業都離不開編程。傳統編程看似簡單,其實對人的要求很高。
  • 能把Python代碼寫得這麼優雅的都是神仙程式設計師吧!
    「人生苦短,我用Python」,說的就是Python開發「快」的優勢,相同的代碼量能夠完成其他語言數倍代碼量 的任務。一般情況下,像C++、C、JAVA 、GO這類編譯型語言要比PHP、Python、JavaScript這類解釋性語言要快一些,但是各有各的優勢。
  • 美國確診超46萬!美國州長竟然搶起高齡程式設計師了,什麼情況?
    這樣的背景下美國的失業數據連續飆升,4月9日報導,全美有約660萬人首次登記申請失業救助,相比於兩周之前翻了一倍。自美國總統川普3月13日宣布「國家緊急狀態」以來,已有至少1600萬美國人申請失業救濟,相信後面數據還會繼續飆升!美國人民存儲率很低,但美國畢竟是一個發達國家,各項國家福利保障比較完善,這些失業人都紛紛去領取失業保險金。
  • 天網是用COBOL寫的?1984年《終結者》竟然用了他的代碼
    近日,代碼的原作者Swirsky很驚訝,不敢相信這是真的。 說到這個梗的來源,還得從上周美國新澤西州急聘懂COBOL語言的程式設計師說起。由於新冠疫情,失業人數暴增,新澤西州幾十萬份失業救濟申請壓垮了用了好幾十年的失業系統,急需懂COBOL語言的人來修。
  • 自動駕駛、自主編程……人工智慧來的太快,連程式設計師都要下崗了
    事實上,AI的確不能讓程式設計師這個職業消失,但是它將淘汰大部分低端程式設計師!早在2017年穀歌已經研究出了能自動生成完整軟體程序的機器人,名為「AI Programmer」,其編程水準已經能擊敗初級程式設計師。
  • 代碼你打算寫到幾歲?雷軍、張一鳴都曾寫過...
    李彥宏——為檢索信息寫代碼李彥宏中學就喜歡計算機編程,還參加過全國青少年程序編程大賽,得過獎,但是在省級比賽中沒能拿到名次。這個經歷讓李彥宏覺得,全國計算機水平在他之上的人很多。一直到高考填志願,他都沒敢報計算機專業,而是去北大讀了圖書館系。
  • 這些程式設計師說,穿成偽娘寫出來的代碼更好
    01 / 向程式設計師大佬遞女裝碼農界流傳著這麼一句座右銘:「三流碼農寫UI,二流碼農寫架構,一流碼農寫算法,頂級碼農穿女裝。」女裝程式設計師,是一群使用同種方式(穿女裝)達到各種個人目的(減少bug、降溫、不喜歡格子襯衫、期待編程之神附身等目的)的程式設計師,並以炫耀代碼通過率與發照片的形式吸納萌新。
  • 3D遊戲編程:遊戲代碼的整體結構是什麼樣子的?
    也就是說,你能把前面17節的內容完全掌握了,你的3D遊戲編程基礎就有了,接下來再講解代碼,你就很容易明白了。從這一節開始,我們將要把整個3D遊戲示例程序的代碼講解一遍。由於有Direct3D的幫忙,我的程序代碼只有1000來行,所以,即便你是初學者,也是可以學明白這些代碼的。
  • |程式設計師|電腦|二進位|編程|軟體學院
    (實際上一周3000行有效代碼已經是非常大的工作量了)01.因為各種項目的代碼量很大,所以程式設計師最多時間在寫代碼。(其實調試優化和不知所措的時間會更多)10.程式設計師數學都好。(我自己開除程式設計師籍好吧……)@鴨脖 新聞學院某理工直男說:「新聞學院還用學編程?」
  • 只加兩行代碼,為什麼要用兩天?
    開發者面對這樣的指責,翻白眼之餘卻也不免委屈,軟體開發是把物理世界映射到虛擬世界的一種神奇魔法,回顧我們做出的變更,有太多理由能解釋這兩行代碼為什麼要用兩天時間。因為問題報告對於重現方法的描述不夠明確。有時候,我們需要耗費幾個小時才能可靠地重現某些問題。
  • 10年後編程還有意義嗎?
    具體來說這個問題有三層意思:到 2025 年程式設計師還有沒有用,到那個時候所謂的 「程式設計師」 是指什麼?代碼本身還有沒有用,到那時候代碼會變成什麼樣子?機器智能會不會取代(目前意義的)代碼或程式設計師兩者的其中一個或者全部?大家基本上傾向於認為,到 2025 年時編程仍然有意義,但有人說 2025 年以後情況可能就不是這樣了。
  • IT頭條:10年後編程還有意義嗎?
    具體來說這個問題有三層意思:到 2025年 程式設計師還有沒有用,到那個時候所謂的 「程式設計師」 是指什麼?代碼本身還有沒有用,到那時候代碼會變成什麼樣子?機器智能會不會取代(目前意義的)代碼或程式設計師兩者的其中一個或者全部?大家基本上傾向於認為,到 2025年時編程仍然有意義,但有人說 2025年 以後情況可能就不是這樣了。
  • 深度:10年之後編程還有意義嗎?
    具體來說這個問題有三層意思:到 2025 年程式設計師還有沒有用,到那個時候所謂的 「程式設計師」 是指什麼?代碼本身還有沒有用,到那時候代碼會變成什麼樣子?機器智能會不會取代(目前意義的)代碼或程式設計師兩者的其中一個或者全部?大家基本上傾向於認為,到 2025 年時編程仍然有意義,但有人說 2025 年以後情況可能就不是這樣了。
  • 程式設計師地鐵寫代碼,被嘲諷太能裝:你沒資格嘲笑一個努力奮鬥的人
    程式設計師,工作強度大,任何時間、任何地點、任何情況下,只要公司有要求、客戶有需求,就得迅速寫代碼、維護程序。一位熱心的網友在網上了發了個帖子。在照片中,一位程式設計師正在緊張著寫代碼,從場景看,是在地鐵上。02 照片在網上曬出後,竟然引來很多人的嘲諷對於對於這名在地鐵上都專注寫代碼的程式設計師大哥,不少網友展開了熱議。但畫風卻突然轉變,直接開啟了嘲諷模式。很多網友直接說這個程式設計師太能裝了,什麼工作會有這麼著急,非要在地鐵上敲代碼?
  • 超過三十歲就不適合寫代碼了?看看國外程式設計師怎麼說
    並非每個人都成為首席工程師——但是他們可以繼續工作! 他們的薪水仍然很高,如果你喜歡工作……你是否在乎自己的頭銜? 我確實看到有人繼續擔任特定的角色,並且不承擔更多的工作和責任,因為他們在自己的位置幹得開心。30歲以上的程式設計師有哪些方式可以保持活躍在在技術崗位上,而不必轉向人道主義(管理性)的方向?像 @bubba 和 @ash 說的——一定要從你的經驗中學習。
  • 此AI能互譯C+、Java和Python,以後只學一種編程嗎
    如果要問這個世界有多少種程式語言,想必我們很多人都會發懵,要麼嘀咕思考一會,要麼找資料查詢。沒幾個人——或者說沒一個人能清楚地羅列出現在到底有多少種程式語言。的確,計算機程式語言不僅分好幾種類,而且數量繁多。一人客覺得,除了機器語言、彙編語言比較單一外,高級語言多得簡直能讓人看得眼睛發花,學得頭皮發麻。
  • 我是35歲程式設計師,失業後幹啥都賠錢,愁得頭髮都掉光了!
    我,35歲失業程式設計師,幹啥都賠錢,月薪3萬這樣的好日子再也沒有了!如果說現在什麼行業哪個崗位最吃香,無疑就是程式設計師,不管你寫代碼的實力如何,月薪八九千是最低的,在深圳程式設計師的平均薪資超2萬元,成為了最賺錢的職業,超過了傳統的金融行業。
  • 樂睿童|編程明明是程式設計師的工作,關孩子什麼事?
    對矽谷的160家科技公司的調查發現來自印度的公司創始人的比例最高印度在全球軟體外包市場的佔有率高達60%。而身為全球最大的軟體外包國家,印度對編程的教育是高度重視的。因為這些站在商業和知識風口浪尖上的家庭都已經意識到,這個世紀將會是一個信息技術的世紀。人工智慧時代,失業浪潮襲來在人工智慧時代,各行各業都將發生翻天覆地的變化。
  • 網罟知道 10年後編程還有意義嗎?
    具體來說這個問題有三層意思:到 2025年程式設計師還有沒有用,到那個時候所謂的「程式設計師」 是指什麼?代碼本身還有沒有用,到那時候代碼會變成什麼樣子?機器智能會不會取代(目前意義的)代碼或程式設計師兩者的其中一個或者全部?大家基本上傾向於認為,到 2025年時編程仍然有意義,但有人說 2025年以後情況可能就不是這樣了。