計算機“系統”視角中的未來願景

微軟研究院AI頭條發表於2018-10-29

當你用搜尋引擎方便地查詢各種資料時;當你“調戲”小冰、Siri,看看它們究竟是人工智慧還是人工智障時;當你體驗著“自動駕駛”的驚險和痛快時,可能只是在某個裝置上點一下應用,但整個良好的體驗過程卻是由計算機系統、應用與演算法合力帶來的。計算機系統、應用與演算法的完美結合,才是推動整個計算機行業的源動力。

各種技術變革的後面,是底層計算機系統的創新和變革

我們生活在一個令人激動的系統研究與創新時代。這些創新讓計算機系統得以處理前所未見的資料規模和應付高度複雜的大型系統問題。在這些創新中,大規模分散式系統的進步以及其他相關係統領域諸如資料庫系統、程式語言與編譯器、理論與形式化方法、硬體與體系結構、安全與隱私和應用密碼學的進步都起到了關鍵性的作用。

計算機“系統”視角中的未來願景

然而,“無形”的系統因為其“看不見摸不著”的特點,很少成為媒體的焦點。

究竟什麼是計算機底層系統?一個好的計算機系統究竟意味著什麼?面向未來的系統創新和設計需要面對怎樣的技術挑戰和技術戰略前瞻?

好的系統“大象無形”

“大音希聲,大象無形”是“好系統”的樣子。

無形”這一系統設計的基本原則就督促現代系統設計必須“遠離大眾視線”。好的計算機系統就應該自然而然地陪伴著大眾,隱身在系統支援的應用之後。當一個系統的設計有問題時,它也就 “有形”並且讓人痛苦了。

系統就像是建築的地基,應用就是地基上的美麗建築,而應用開發者就是建築師。在計算機領域,我們不妨將這個抽象又簡單的名詞理解為平臺。好的地基設計使得建築師可以肆意發揮創造力而不用關心地基的細節。優秀的系統追求有序、簡潔和一致。而錯誤的系統設計往往給大眾帶來某種可見的隨意、混亂以至難以規模化管理。因此,現代系統設計的一個重要目標就是設計合適的抽象來避免使用者直接面對底層系統的複雜性。

作業系統中的程式、快取和虛擬記憶體的抽象;資料庫系統的關係模型和SQL查詢語言的抽象;分散式儲存系統的一致性協議;搜尋引擎系統中的正向和反向索引表;以及最近的深度學習系統設計中引入的張量區塊鏈中的智慧合約、雲端計算中的虛擬化及容器技術,都無不體現出新系統中抽象這一技術的重要性。

在可見的未來,系統研究仍將把“無形”作為重要設計理念,讓應用開發者和大眾可以輕鬆完成任務,無需面對底層系統的複雜性。從而賦能更多科研人員、開發者和實踐者,進而推動更多技術的創新發展。

“面向未來”是系統設計的最顯著特點

系統設計必須面向未來

一個好的地基應該是一個能夠應對未來變化的地基,同時系統設計的不斷創新將加速創造和塑造這個世界,從而重新定義我們未來生活的模式。系統研究構想的未來是什麼呢?對於未來世界的簡單形容將會是“智慧無處不在”,背後支援它的將是無處不在的儲存和計算能力,它們無形的連線著個人和整個世界,從端到雲。

未來的技術趨勢也將是一個現實世界和虛擬世界邊界消失的過程,也可以簡單地說是“虛擬和現實世界的融合”。而這些變化背後需要大量的各型可嵌入可連線的感測器和執行裝置、智慧化的資料分析和服務以及混合現實和浸入式體驗裝置的支援。

未來系統的技術關鍵

那麼,為更好地應對未來技術的需求和發展,系統研究需要什麼樣的技術路線?未來系統技術的挑戰及其對未來願景的推動作用又是怎樣的?

再一次去中心化

技術趨勢:從完全中心化的雲端計算進化到新的去中心化的計算。

如今,我們正處在計算正規化的第二次巨大歷史變革時期,即從分散式的個人計算時代到新的中心化的雲端計算時代。

推動這每一次計算正規化變革的力量都來自於計算機技術本身的發展,新技術帶來的各種新型應用,以及它們對經濟和社會發展的巨大影響。現在一個顯然的技術趨勢就是如何從完全中心化的雲端計算進化到新的去中心化的計算。例如:IoT和邊緣計算的興起就在這個背景下產生。更重要的,從計算機架構和哲學範疇出發,去中心化一直是整個世界占主導地位的一種系統設計。在中心化的系統中,基於聯盟的私有化區塊鏈系統是難以實現的。

計算機“系統”視角中的未來願景

完全去中心化也是不切實際的。我們相信未來讓資料和計算如何無縫在雲端和終端遷移、互動以及協作將成為系統研究的一個重要方向。這其中,從作業系統、儲存系統乃至一致性協議都需要進一步改進。

  • 可擴充套件的強一致性

強一致性協議一直是分散式系統研究的核心。可靠的分散式控制系統、數字銀行提供的可靠交易等都依靠著一致性協議的設計與實現。隨著網際網路連線了更多的地域和人群,分散式系統需要處理的關鍵資料規模也不斷擴大。在跨洲際的資料中心間如何實現可擴充套件的強一致性協議也將是系統研究的重點。

一致性、可用性和網路容錯支援一直是分散式系統強一致性協議難以一起解決的三個問題。但是隨著網路技術的進步,可擴充套件的強一致性協議在資料中心乃至網際網路上得到了很大的發展。資料中心內乃至跨資料中心的一致性協議,從以前的非強一致性協議不斷地轉換為以Paxos和BFT為基礎的強一致性協議。而區塊鏈的出現,也讓整個網際網路為背景的強一致性協議變成可能。在未來的發展中,通過資料分割槽、圖為基礎的排序、非同步協商以及更創新的協議設計,可擴充套件的強一致性協議的效能和應用範圍將得到更進一步的提升。

  • 無限的資料與計算

效率、可用性和可靠性是計算和資料平臺最重要的指標,亦是研究的重點。不同於傳統資料庫,在雲端計算這個領域中,計算和儲存通常是分離的系統。計算平臺的發展中,從Map-Reduce,Spark到Flink, 較好地解決了計算效率及可擴充套件性的問題。未來計算對實時性的要求越來越高,如何針對性的設計相應的計算平臺,是系統研究的一個課題。儲存平臺的發展,從BigTable,MongoDB到Spanner, 遵循以提高可擴充套件性為首要需求,但對一致性的要求也越來越強的特點。高可擴充套件及強一致性的儲存平臺將是未來的趨勢之一。

分散式資料庫也在不斷髮展,支援的資料種類開始多樣化,從圖資料到文件資料和流資料。在可見的未來,同一個系統如何能夠同時處理事務性的應用(OLTP)和分析性的應用(OLAP),如何能夠同時處理表、圖、文件等不同的資料型別,如何能夠支援從單機到整個資料中心的擴充套件,如何能夠支援跨資料中心的一致性和FailOver, 這些都是重要的問題並且正得到解決。

  • 智慧邊緣計算

隨著軟硬體技術的不斷進步,各種新型智慧裝置不斷湧現,推動了智慧家居、自動駕駛、智慧工廠、智慧城市等新應用新場景的不斷髮展。相應地,計算模式也再次展現出了去中心化的趨勢。即正在從集中式的雲端計算模式逐漸演變成雲端計算邊緣計算共存的分散式模式。其中,邊緣計算是指邊緣裝置可以脫離雲端計算進行本地資料處理和獨立智慧決策邊緣計算正在快速發展,在將來的計算中發揮著越來越重要的作用

智慧邊緣計算的興起其實是一件水到渠成的事情。首先,隨著萬物互聯和裝置智慧化的趨勢不斷加深,資料呈現出了爆炸式的增長。傳輸和處理這些資料遠遠超出了目前網路和資料中心的承受能力。其次,雲端計算無法滿足一些新場景新應用的需求,比如實時資料處理和使用者隱私資料保護。以自動駕駛為例,海量的資料需要得到實時的處理,從而系統才能對各種路況進行快速反應。把這些資料傳送到雲上進行處理會帶來過高的延遲,無法滿足自動駕駛系統的實時性要求。很多資料都包含使用者隱私,比如智慧家居中的智慧音響和智慧攝像頭採集的資料。從保護使用者隱私的角度來說,這些資料不應該傳送到雲上處理。這些需求使得在邊緣裝置上對資料進行本地處理成了唯一選項。另外,最重要的是,硬體的發展使智慧邊緣計算成為可能。隨著專用智慧晶片比如各種深度學習晶片的出現,邊緣裝置也擁有了巨大的視覺和語音等方面的資料處理能力,為各種智慧邊緣計算的應用提供了有力的支撐。

智慧邊緣計算也面臨著諸多挑戰。邊緣裝置的計算能力和記憶體大小有限,一些龐大的模型執行在邊緣裝置上將導致系統效能承壓。同時,對於依賴於電池供電的移動裝置來說,能耗也是一個很大的問題。因此,如何對系統的效能和能耗進行優化,是一個值得持續研究的課題。另外,訓練一個好的深度學習模型往往需要花費巨大的人力物力。在邊緣計算中,模型是儲存和執行在邊緣裝置上的。因此,如何保護模型資料不被非法複製和盜用就成了一個重要的問題。

需要指出的是,邊緣計算並不是要替代雲端計算,而是和雲端計算有著很強的互補關係。比如,遍佈各地的邊緣裝置就是一個很令人頭疼的問題。邊緣裝置可以連線到一個雲服務上,通過雲服務對邊緣裝置進行管理、監控、更新和部署,從而大大降低管理成本,保證邊緣裝置的順利執行。

邊緣計算雲端計算可以相互結合,共同完成一些任務。比如在街道監控的場景下,邊緣的智慧攝像頭可以對資料進行預處理,然後再把處理過的資料傳送到雲上進行進一步處理,比如進行人臉識別和車號牌識別等。這樣就能充分利用邊緣和雲的所有資源,達到快速事件檢測、降低網路傳輸、按需進行資料深度處理的效果。我們相信,邊緣計算雲端計算一定會協同發展,為人工智慧時代的各種新應用、新場景和新業務提供越來越好的服務。

安全、隱私和可信計算為重要基礎

技術趨勢:安全硬體、區塊鏈和可驗證的軟體技術將一起構成新的安全基礎。

現實世界和虛擬世界的不斷融合,去中心化計算需要新的安全、隱私和可信的技術進步。對於一直以安全、隱私和信任作為核心的系統領域,會更多的思考如何把資料的所有權安全的交還給使用者,而僅以合規的模式來商業化這些資料,以達到為更多人的提供高效技術。

計算機“系統”視角中的未來願景

未來,安全硬體、區塊鏈和可驗證的軟體技術將一起構成這個新的安全基礎。安全硬體將是信任的基石:例如Intel推出的SGX技術和ARM推出的TrustZone基礎。

區塊鏈背後,是以新的Byzantine容錯的一致性協議、新的雜湊鏈式資料結構、採用零知驗證和多方安全計算加密的資料塊交換協議以及去中心化的協議而設計的。

這些新的系統設計帶來的是未來的全新加密經濟學系統,將為人們帶來一個可信的、隱私安全的合作、通訊和交易協議,即使在不完全信任的多個實體間。

最後,可驗證的軟體的進展也將穩固這個新的安全基礎。從小規模的協議驗證到分散式通訊協議的驗證,未來的軟體驗證技術將在更復雜的軟體系統中得到實際應用。

  • 區塊鏈

隨著第一個可行區塊鏈系統Bitcoin的落地實現和廣泛應用,人們看到了去中心化的、去信任的、中立性的系統的巨大發展潛力。數以千計的加密貨幣系統隨之誕生,有的只是簡單複製Bitcoin,有的則在功能和效能上有著顯著改進。接著以太坊誕生了。它首次在一個分佈於全球的區塊鏈系統上實現了智慧合約,使得使用者能程式設計建立去中心化應用。智慧合約極大地降低區塊鏈應用的開發門檻,開發者無需從底層編寫程式碼,構建底層系統架構和部署網路,而是在以太坊上直接程式設計開發各種區塊鏈應用。這促使了新型加密貨幣、價值代幣、新型合作交易協議的爆炸性增長。隨著越來越多研究人員和開發者對區塊鏈技術的探索研究,區塊鏈技術的理論基礎、開發技術、設計理念、系統結構等各方面都將快速穩健地向前發展。

區塊鏈系統的發展與創新中,有幾個值得關注的方向:

1)區塊鏈系統正從網路、儲存、計算緊密結合的一體化設計,轉為分層分片的各部分依賴程度最小化的模組化設計。這樣的設計使得節點從每筆交易都要計算、儲存、傳送的繁重壓力裡解放出,使得交易可在系統內並行化、非同步處理,甚至跨鏈執行。這不僅能夠提高區塊鏈系統的交易吞吐量,解決現有區塊鏈系統主要的效能限制問題,也使得移動裝置、物聯網終端等輕量級裝置可獨立參與區塊鏈網路。

2)為滿足隱私保護法和內容監管審查,區塊鏈不可更改、不可刪除的資料儲存設計正被人們重新研究區塊鏈系統的狀態轉移必須是可驗證的且無需檢驗全部的交易歷史,因為交易賬本可能會包含資料擁有者、法院、利益攸關方要求刪除的洩露隱私、不恰當、或敏感的資料。

3)為快速創新和迭代,社群正試錯式地設計和實現區塊鏈系統,特別是智慧合約。為了讓區塊鏈系統從存在錯誤風險的實驗型系統轉型成穩定的主流分散式系統,形式化驗證技術正快速發展以檢測區塊鏈系統各個部分的漏洞和不安全因素,也有越來越多的協助軟體工具幫助減少智慧合約在編寫使用時出現的錯誤。

4)現有的區塊鏈系統,主要通過硬分叉來實現新功能、漏洞修復、新引數設定、協議升級,這需要所有節點手動下載和執行新的軟體版本。現在每個硬分叉版本需要社群在鏈下進行個案式的協調和管理。為成為可持續性的平臺,區塊鏈系統正在試驗鏈上治理和升級機制,以使決策制定和程式碼部署都能在鏈上高效透明地進行。 

我們認為在眾多基於區塊鏈的實驗和應用的推動下,區塊鏈及其相關的分散式系統和密碼學為基礎的技術將迅速成熟,併為將來無形無界的未來系統提供關鍵的、具有安全和隱私保護功能的可信計算基礎。其智慧合約的概念也會進一步推動高效的數字化變革並大幅度提高生產力。

軟體和硬體一體設計的革命

過去幾十年中,通用硬體的研究一直是計算機體系結構研究的重點,例如CPU。雲端計算大規模應用及深度學習的出現,引發了當今對硬體體系結構設計的變革。

這樣對於系統研究,軟體和硬體的一體設計變為一個未來的重要趨勢。如何更好的定義硬體和軟體之間的邊界以及合適的抽象、如何找出它們之間的最好劃分成為了系統體系結構設計的重要問題。例如,對於深度學習Tensor和計算圖的引入就軟體和硬體如何合作完成這種新的計算模式提出了新的要求;大資料領域、資料運算的抽象結合定製的加密和壓縮晶片也將進一步提高雲端計算平臺處理大資料的效率。

在新的一體化設計革命中,新的特定領域程式語言、編譯器和優化、以及虛擬化技術也將同時變革。

硬體和體系結構的革命

計算機體系結構的進步和半導體積體電路的發展分不開。可以毫不誇張地說,計算機的發展是積體電路技術最大的推動力,也是最大的獲益者。過去半個多世紀以來,積體電路一直大致保持著摩爾定律預測的速度發展,高度整合的晶片帶來一次又一次計算機體系結構的革命,從個人電腦(Desktop)到移動計算,從伺服器到雲端計算。而另一方面,計算的需求推動了中央處理器 (CPU)、記憶體(DRAM)、圖形加速器 (GPU) 以及高速網路晶片的發展。而基於半導體矽的CMOS積體電路晶片技術由於受到物理規律的限制,已經開始達到瓶頸。一方面晶片的線寬(Feature Size)在5奈米以下已經很難進一步縮小,而另一方面功耗和散熱已經成為現代晶片技術難以繞過的難題。在這種情況下,計算所需的硬體和體系結構會何去何從?

首先在計算上異構系統正成為近年來計算機體系結構研究的一個熱點深度學習加速器、FPGA為基礎的可重構硬體、通用可程式設計加速器以及新的通用處理器都在不斷創新。而記憶體硬體的創新例如高速非易失性記憶體(Non Volatile Memory,NVM)、記憶體封裝的創新例如HBM(High Bandwidth Memory )以及體系結構的創新例如記憶體解聚(Memory Disaggregation)也將幫助計算從記憶體訪問頻寬和延遲的瓶頸中解放出來。

在儲存上,NVM也可能是新的超低延遲SCM(Storage Class Memory)的基礎。即SSD對資料中心儲存帶來巨大變革後,下一代開放通道(Open Channel)SSD會進一步提高資料中心儲存系統的IO吞吐頻寬以及降低開銷。與此同時,儲存系統、也需要類似記憶體解聚的體系結構創新。而在網路方面,低延遲無丟包的可擴放互聯、可程式設計交換機和網路卡會讓計算間的互聯(Interconnect)更加暢通。

系統和智慧的相互促進

技術趨勢:用系統思維的角度,以簡潔、有序、一致性的原則重新設計深度學習系統的架構或模型,同時,利用統計學習的方法來分析複雜系統將是系統基礎研究的重要方向。

  • 人工智慧而設計的系統

為了能便捷高效的處理深度學習任務,圍繞人工智慧的系統工作也在如火如荼的展開。然而,由於深度學習計算模式和需求與以往大資料處理不同,該領域出現了大量具有探索性但較為“碎片化”的工作。例如,為了支援深度學習在不同的裝置上計算,僅計算框架就先後出現了數十個,而且這些框架的設計獨立,無法互相相容,造成了大量重複性工作,且給使用者帶來很多選擇上的困擾。另外,一些圍繞深度學習的新系統工作仍在進行,這些大量碎片化的工作使得整個深度學習系統架構變得複雜而低效。因此,現在急需用系統思維的角度,以簡潔、有序、一致性的原則重新設計深度學習系統的架構或模型。如何較好的解決人工智慧系統領域中存在的低效、不一致、易用性差等問題,成為未來人工智慧系統研究的一個發展趨勢和重要方向。

  • 自動化的編譯和優化框架將成為人工智慧系統棧中解決程式設計靈活性和計算效能的關鍵部分

未來的人工智慧計算系統的前端表達能力將越來越靈活,逐漸趨於通用計算;同時,後端的計算能力將越來越強大。面對前、後端的快速發展,自動化的編譯優化框架成為了銜接兩者的必經之路。深度學習編譯器往往從更高的計算抽象層出發,涉及到如超程式設計模型、高維資料結構、自動化求導等,並需要解決更復雜的優化問題,例如如何統一前後端語言從而實現全面的程式碼優化、針對加速晶片的模型稀疏化和模型壓縮、自動化的程式碼融合以及與其它計算邏輯的融合等都會成為人工智慧自動化編譯框架中亟待解決的問題。

人工智慧時代,大規模計算系統不僅要在大規模裝置上才能高效地處理海量資料,更需要能支援多種不同型別任務的混合執行的能力。未來,不同的計算任務在實際中的邊界將變得越來越模糊,很多現實的應用中的資料分析都是由這些計算任務組合而成的綜合體。這樣的綜合系統將會面臨一些新的挑戰,如系統介面的抽象、執行機制的設計以及全域性系統的優化等。但同時,這樣的系統能更好的對計算資源進行管理和利用,對整體計算應用可以從整體計算流水線上進行優化,在研究上也暴露出更多的跨任務種類的排程和優化機會,跨任務型別的大規模計算系統將會成為新的系統發展方向。

  • 更智慧化的系統

現在和將來,如何利用統計學習的方法來分析複雜系統將是系統基礎研究的重要方向。 

傳統的系統研究以量化分析和形式化方法為基礎來描述和分析系統的行為和效能。但是現在更多大型系統有著更多的隨機性,控制變數和環境變數大大增加。這些新的變化,讓人工智慧可能發揮更大的作用。現在,在諸如資料中心製冷系統控制、資料中心資料儲存優化、網路負載均衡等領域,基於統計學習的方法正得到廣泛應用。在將來,系統研究者需要探索如何將該方法更加廣泛的應用到大型複雜系統的設計和控制中去。

計算機“系統”視角中的未來願景

相信以上技術的協同發展,會助力底層計算機系統的創新和設計,成為推動計算世界無形無界的那隻手。

未來可期。

相關文章