近年來,隨著計算機領域的快速發展,有一種對立的趨勢逐漸顯露:計算機資源愈發異構化,因而需要更多硬體領域的專家級程式設計師vs軟體開發人員更青睞抽象高效的程式語言,導致硬體效能得不到充分發揮。
這樣的趨勢下,如果有一款工具可以讓計算機自己程式設計豈不是解決了這個矛盾?基於這種思考,英特爾提出了「機器程式設計」這個概念,旨在通過自動化工具提公升開發效率。而機器程式設計具體是什麼呢,接下來就為你詳細介紹。
「機器程式設計」首次提出是在 2018 年英特爾研究院和麻省理工學院聯合發布的《機器程式設計的三大支柱》**當中,融合了機器學習、形式化方法、程式語言、編譯器、計算機系統等多個領域。通俗地說,機器程式設計就是通過機器學習和自動化方法,設計出可以自己編寫軟體的軟體,即教系統自己程式設計。
而除了上文所說,機器程式設計可以補充跨架構專業程式設計人員的缺口之外,它還能解決軟體開發和維護上的一大痛點問題:bug。因此,機器程式設計的核心原則是,人類向機器表達他(她)的意圖,機器去自動建立完成該意圖所需的所有軟體。英特爾將機器自動建立軟體的部分稱為創造和適應,由此得出機器程式設計的三大支柱:分別是意圖(intention)、創造(iinvention)和適應(adaptation)。
英特爾首席科學家、英特爾研究院機器程式設計研究主任及創始人justin gottschlich表示,儘管目前軟體顯著提高了人們的工作效率,但在全球 78 億人中,只有 2,700 萬人會編寫**,佔比不到 1%。因而,機器程式設計的未來願景是降低程式設計的門檻,讓每個人都能建立軟體,將這 1% 變成 100%。
抱著這份美好的願景,英特爾開始踏上了機器程式設計這段旅程的第一步。justin認為,要想讓機器編**正能夠幫助到開發人員,那麼有兩點必不可少:
一、提高編碼員和非編碼員的工作效率;
二、確保機器程式設計系統生成的是高質量、快速、安全的**。
基於這兩點,發展機器程式設計關鍵的第一步是:改進軟體除錯(debug)。所謂 debug ,就是識別、分析和糾正軟體缺陷,讓軟體變得更加強大且可靠的過程。據 2017 年劍橋大學開展的一項調查顯示,美國程式設計師平均花費 50% 的時間在 debug 上,嚴重影響了工作效率。此外,debug在本質上意味著軟體的質量不合格,否則就不用debug。
再進一步研究就可以發現,debug幾乎都是因為程式設計師向機器傳達意圖不正確所導致的,而機器程式設計所追求的讓人機交流準確無誤,正好就可以糾正這一點。假設機器可以完美地捕捉到人的意圖,那麼 debug 基本上就消失了。英特爾通過實驗也得到了意外的收穫:利用機器程式設計,程式設計師的工作效率提高了 2 倍,軟體的質量也得到了提公升。
這個結果意味著機器程式設計的願景並非空想。上周五英特爾推出了可自主檢測**中的錯誤機器程式設計研究系統 controlflag,雖然系統還處於早期階段,但在初步測試中,controlflag 就利用超過 10 億行未標記的產品級別的**進行了訓練並學習了新的缺陷,使這個自我監督系統有望成為乙個強大的生產力工具。
controlflag檢測bug的功能正是通過機器程式設計實現的,具體來說,controlflag通過被稱為異常檢測(anomaly detection)的功能進行運轉:通過學習經過驗證的例子來檢測正常的程式設計模式,發現**中可能造成bug的異常。另外值得一提的是,不論開發者使用的是何種程式語言,controlflag 都可以通過學習檢測到其中的異常。
然而,強大會不會意味著取代?功能如此優越的機器程式設計未來是否會讓部分程式設計師失業?
這種擔憂並不難理解,畢竟如果機器程式設計可以實現自動化構建程式,那原來做這件事的人該怎麼辦?
而這個問題,justin 其實經常被問到,但 justin 始終認為,機器程式設計如果成功,那未來只會創造數千萬甚至數億個就業機會,而非取代專業程式設計師使其失業。
他的理由很簡單,總體來看是兩個方面:
一、當今存在的大多數機器程式設計系統都需要大量的資料。資料通常是以**的形式存在,而**則是由專業程式設計師所編寫。因此,一旦自動化程式設計完全實現,那麼對高技能程式設計師的需求將會增加,因為專業程式設計師寫的**越多,那麼通過大量學習,所構建的機器程式設計系統就越先進;
二、降低程式設計行業門檻。機器程式設計如果完全實現,那麼使用者就可以向機器表達他或她想要的系統從而進行自動化程式設計。只要有批判性思考的能力,並將軟體創造的步驟和想法邏輯合理化,那麼所有人都能程式設計的願景就不會遙遠。
因此, justin 一直堅持乙個觀念:自動化不僅不會取代任何現有的程式設計師,反而它會為全新型別的程式設計師創造非常大的平台,讓他們可以毫無顧忌地發揮想象力。或許這些程式設計師的程式設計技能會稍遜色,但強大的創造性會彌補這個不足,只要有能力表達他們的想法,那麼機器和系統會幫他們把這些想法綜合起來做出軟體。
justin曾經說過,機器程式設計正處於拐點,但拐點並非一夜之間到來。機器程式設計進入拐點,大致是因為三個基本進步的實現。
一、演算法的進步。在確定性演算法和隨機演算法方面都得到了進步,這些形式化方法和機器學習演算法為建立機器程式設計系統提供了大量的機會。目前很多可以實現的事情在10年前都做不到。
二、算力的進步。如果無法以易於處理的形式去執行,那麼就算能夠執行演算法,但卻需要10年,20年才能完成。隨著過去十年英特爾在算力方面的進步,特別是異構計算方面,讓英特爾有了解鎖機器程式設計的第二塊鑰匙,成為了關鍵的轉折點。
三、資料。大多數系統往往需要大量的資料,目前資料量正好非常豐富。以github為例,2023年其**庫超過了2億。這是乙個巨大的**量,因為任何乙個**庫都可能包含多個原始檔。而這些原始檔,每乙個都可能包含數百或數千行**。因此這個數字變得非常大,增長非常快。
因此,就拐點而言,這三件事合在一起,才讓今天成為可能。至於這是如何發生的,justin 認為其驅動力是英特爾看見了即將進入異構系統的未來。異構系統程式設計人員的缺失,讓英特爾意識到需要某種機制,讓程式設計師或非程式設計師不僅能訪問異構硬體,還能充分利用可用資源。同時這也是英特爾機器程式設計的基本驅動力之一。
機器程式設計已經起步,如果完全實現,那全民程式設計的時代就不再遙遠,你準備好了嗎?
英特爾 勒索軟體成黑客慣用伎倆
英特爾公司近日發布的乙份安全報告稱,黑客正致力於把安全漏洞變為現金,他們會加密使用者的資料,繼而要求使用者為解密資料支付 贖金 報告顯示,2015年第四季度,全球勒索軟體數量較上一季度增加了26 報告沒有估量勒索軟體的總價值,但是發現有600萬惡意軟體嘗試安裝,這些惡意軟體會對電腦中的內容加密,並封...
英特爾旗下AI晶元公司被勒索軟體竊取53GB資料
程式設計客棧 www.cppcns.com 12月15日 訊息 美國當地時間週日,勒索軟體pay2key公布了從哈巴納實驗室 habana labs 獲得的內部檔案細節,據稱共洩露了53gb資料。據悉,哈巴納實驗室是一家總部位於以色列的晶元初創企業,去年12月份,英特爾以約20億美元收購了這家公司,...
英特爾的新型處理器能防禦勒索軟體的攻擊
英特爾正在為其新的第11代core vpro移動處理器帶來勒索軟體保護,其目標是在硬體級別增強安全性和可見性,而又不會破壞使用者體驗。英特爾 博銳 平台是一種企業產品,旨在包括企業和員工所需的新技術,包括安全工具和更高的效能。其新的vpro處理器和平台更新旨在提供位於作業系統下方的應用程式,資料和較...