作為在電腦科學領域深耕21年的基礎與應用研究機構,微軟亞洲研究院始終致力於推動電腦科學全領域的前沿發展,著眼於下一代革命性技術的創新與突破。
在即將過去的2019年,微軟亞洲研究院持續探索電腦科學的邊界,收穫了累累的科研碩果,在 ACL、EMNLP、NeurIPS、ICML、AAAI、IJCAI、CVPR、ICCV、SIGGRAPH、KDD、WWW、SIGCOMM、NSDI、MobiCom 等 電腦科學國際頂級會議上共發表230餘篇論文,全面覆蓋了機器學習、自然語言處理、計算機視覺、圖形學、視覺化、語音、資料探勘、軟體工程、計算機系統、網路、資料庫與安全等領域。
站在2020年的入口,腳下交織著過去與未來的風,我們對未來翹首以盼。在接下來的幾天,我們將從 機器學習、系統、資料智慧、語音與自然語言、計算機視覺與圖形學五大領域出發,盤點2019年值得注目的技術熱點,並展望各個領域的未來發展趨勢。
本文將與大家分享的是2019年機器學習和系統領域的突破與進展,以及未來趨勢。如果說 機器學習可以算是 AI 的大腦,那麼 系統網路就像 AI 的身體軀幹。AI 的進一步普及,需要對機器學習演算法、模型、理論等進行不斷地最佳化和提煉,同時也需要能夠構建出高效、穩定、可信乃至“精巧”的 AI 系統,為 AI 應用的真正落地做好諸多準備。
AI 與 System,互生互長
當人們為構建 AI 應用而尋找底層系統架構時,常常會發現尋找或開發出一個高效、穩定、可信的 AI 系統卻不是件易事。這種情況在如今 AI 和雲端計算相結合的趨勢下愈加明顯。AI 方案提供商們不可能再像早期實驗室研究那樣,不計成本地追求效能,而且隨著支撐 AI 應用的高效能運算節點的引入和大規模應用,傳統系統架構本身也制約了效能的提升。因此,腳踏實地地考慮效能、穩定性、可擴充套件性、價效比等多方面因素在 AI 應用背景下的再平衡,設計和開發更加“精巧”的 AI 系統是未來的發展方向。同時,如何充分挖掘 AI 技術的潛力,來提升系統研究和設計本身也是一個重要課題。
System for AI:AI 落地需要更好的系統支撐
各類 AI 技術和應用的不斷創新,讓計算機系統得以處理前所未見的大規模資料和應付高度複雜的大型系統問題,從模型訓練到應用推理,各個層面都對系統的構建提出了嚴峻的考驗。
在微軟亞洲研究院看來,要更好地支撐機器學習、深度學習、強化學習等 AI 演算法的執行,系統需要從硬體到軟體到網路全面重構。例如,神經網路的訓練會涉及多種系統問題,包括如何充分發揮 GPU 利用率、如何在以 GPU 為主的高效能運算叢集中實施大資料量、高並行度的神經網路訓練、如何避免大型叢集訓練時發生硬體故障等。近兩年來,微軟亞洲研究院在 OSDI 2018、USENIX ATC 2019、Eurosys 2019 等大會上發表了多篇論文,從三個方面對支撐 AI 的系統(System for AI)進行了抽象和提升,包括針對深度學習提出了新的叢集排程框架 Gandiva[1],釋出了第一個能夠支援大規模圖形神經網路訓練的系統架構 NeuGraph[2],以及針對大規模神經網路分散式訓練的基於 RDMA 的網路通訊技術[3]。這一系列工作預示著 AI 系統的未來: 只有從單個網路的最佳化到底層系統架構的全棧式重構,才能更好地支援現在及未來深度學習的工作負載。
與此同時,為支撐規模越來越大的分散式機器學習系統執行,底層通訊網路平臺也需要跟隨 AI 的步伐不斷進行創新,進一步提高通訊效能和效率。微軟亞洲研究院近年來關注於硬體網路方面的研究,其基於可程式設計硬體的技術不僅有助於降低網路延遲和 CPU 開銷、提高吞吐量、提升網路速度,更有利於提升分散式機器學習系統的可擴充套件性和效率。相關研究成果發表在了 NSDI 2018、NSDI 2019 和 SIGCOMM 2019 大會上[4-6]。
事實上,對於深度學習的系統研究目前還處於早期階段,很多研究成果集中在商業化的研究機構,學術界由於缺乏企業級大規模系統支撐的研究和產品化混合訓練的環境,難以進行更深入的研究。為此,微軟亞洲研究院將多項系統相關的研究成果(OpenPAI、SPTAG、NNI等)開源。同時,為了培養 AI 和系統這一研究方向的人才,微軟亞洲研究院透過系統教學工作組(MSRA System Teaching Workshop)平臺,與國內高校一起設計新的教學課程。首期課程將圍繞人工智慧和系統交叉領域的前沿方向展開,希望為學術界乃至產業界提供更多參考。所有這些工作都秉承了微軟亞洲研究院一直以來注重開放、合作的傳統,為未來的技術進步和多元發展奠定了基礎,並促進了領域研究的正迴圈。
系統如何設計才最優?AI for System 來幫忙
為 AI 應用打造更好的系統,是系統研究順其自然的演變結果。如同在單機時代,為 PC 打造作業系統;在雲時代,為雲平臺打造分散式網路、資料庫;在 AI 時代,自然是進一步提升系統的能力,以支撐 AI 的全方位應用需求。
但 AI 時代的特別之處在於,AI 所具有的能力也可以反向為系統研究提供新的思路和方法,即反哺系統研究(AI for System),讓研究員們可以利用 AI 手段去提升系統的設計、開發、維護等。尤其在系統複雜度呈幾何量級上升的今天,很多系統問題已經無法完全靠人的直覺和經驗去解決,而是需要進行大量的資料分析來驅動複雜系統的最佳化。
一直以來,系統研究都有一個要解決的核心問題:系統怎麼設計才是最優?如今,研究員們有了機器學習這個有力的工具,這個問題的解決也比以往更加高效。過去一年,微軟亞洲研究院系統組的研究員在 ATC 2018 和 ATC 2019 大會上發表論文,提出了一種方法,透過自動最佳化系統並引入現實因素,讓機器學習在真實場景中發揮作用[7],此外,研究員們還應用機器學習技術於最佳化系統執行邏輯,讓系統變得更加智慧化[8]。
微軟亞洲研究院系統組與微軟 Azure、必應(Bing)、廣告等多個產品部門有著非常緊密的長期合作,因此最佳化問題需要在為不同大規模系統服務的背景下展開。而在合作過程中,研究員們在考慮,是否可以打造一個通用的 AI for System 框架,為成百上千個系統抽象出通用的平臺。基於這個 AI for System 平臺化的想法,微軟亞洲研究院系統組在今年的 SIGOPS Operating Systems Review[9],提出了“系統”和“學習”為中心的協同設計,為構建系統最佳化提供了一個原則性的方法論。同時,在 NNI 這個開源專案下,給出了初步的為 AI for System 研究設計的示例程式碼。
讓 AI 在邊緣計算上更好地執行
隨著各種智慧裝置和新型應用的不斷湧現,計算模式正從集中式的雲端計算向分散式的邊緣計算轉變。一方面是大量的智慧裝置(智慧監控攝像頭、自動駕駛汽車等)產生了海量的資料,很難把所有資料都上傳到雲端進行處理。另一方面是新的應用和場景需要在本地進行資料處理。比如人們越來越關注隱私,不願意把個人資料上傳;自動駕駛、工廠流水線控制等,出於實時性和可靠性的要求,需要在本地進行計算等等。另外,隨著 AI 演算法的不斷成熟,人們開始設計各種專用的 AI 處理器,不僅功能強大,而且功耗低,價格便宜,使得在終端裝置上執行各種 AI 任務成為了可能。
在邊緣計算時代, 如何利用 AI 賦能於各種邊緣裝置和應用,讓 AI 更好地為人們的工作和生活服務,就成為了一個重要的研究課題。這需要結合 AI 和系統兩個方面,讓 AI 在邊緣計算上更好地執行。微軟亞洲研究院系統組的研究員們在如何透過模型-軟體-硬體的協同設計對模型推理進行加速、如何保護使用者的隱私和模型資料的安全、如何讓分佈在不同地方的裝置聯合起來,相互協作從新獲取的資料中不斷學習等方面進行了研究;並在 MobiCom 2018/2019、AAAI 2019、CVPR 2019 等多個頂會上發表了相關研究成果[10-13]。
安全是智慧技術的核心要素
如今,AI 技術正在給人類的工作和生活帶來顛覆性的變革,因此,微軟認為企業與組織必須制定並採取明確的原則,以構建可信賴的 AI。在微軟,包括科研在內的所有 AI 領域的相關工作都必須遵循以下六大原則:公平、可靠和安全、隱私、包容、透明、責任。其中,可靠和安全也是在整個計算機領域都備受重視的研究方向。除了智慧化、跨領域和開源以外,可靠和安全也是系統研究未來發展的一大趨勢。
一個頗有顛覆性的熱點是對業界二、三十年來所預設的硬體安全的再認識:比如 CPU 的“指令預執行”最佳化可以洩露資訊(Meltdown & Spectre 攻擊),電容的頻繁充放電足以導致相鄰記憶體資料的改變(Rowhammer 攻擊)。因此大家對於安全也越發謹慎,安全意識和思維方式也有所轉變: 以前如果不知道不安全,往往就預設為是安全的;但現在,大家傾向於只有能夠證明是安全的,才是真正的安全。這種意識的轉變使得計算機領域中一些最根本的價值受到了進一步重視,比如邏輯、可計算性、複雜性等。而微軟亞洲研究院也一直持續關注相關領域的研究,研究範圍涉及多方計算、區塊鏈、聯邦學習、零知識證明等方向。在安全方向上,研究員在 Micro 2018 和 USENIX Security 2018 均有成果發表[14-15]。
未來的計算能力將隱形於我們周圍,計算支援的智慧將無處不在。只有不斷的創新,才能保證各種技術無縫、穩定、安全、高效、持續地協同進行,而這就是未來計算與智慧系統領域發展需要不斷突破的方向。
機器學習愈親民,AI 愈實用
過去幾年,以機器學習為代表的人工智慧取得了突破性的進展,2019年這些勝利的果實又得到了進一步的鞏固,並穩定地向前發展。機器學習理論體系已經日趨成熟,機器學習模型、演算法也已在一些真實業務場景中嶄露頭角,甚至開始在物流、金融等行業的關鍵系統中發揮作用。
然而
AI 應用的進一步普及,需要對機器學習演算法、模型、理論等進行不斷地最佳化和提煉,現階段的機器學習研究和開拓也正是遵循這一發展脈絡不斷前行,為 AI 應用的落地做好更多的準備,如簡化訓練方式、提升模型速度、深度理解機器學習等,這些著力點都是為了讓機器學習更加普適,促進 AI 向實用型、通用型演進。
讓機器學習拿來即用
- 從監督資料學習到無標註資料學習
深度學習是機器學習中最具影響力的一項技術,研究者眾多,但其突破更多的是在從監督資料進行學習方面,而這種方法的樣本數量少,並不能發揮神經網路大容量的優勢。2019年開始,包括 Pre-training(預訓練)、對偶學習、遷移學習等方法的無標註資料學習成為熱點。
Pre-training 以 BERT 為代表,之後陸續出現了 Xlnet、RoBERTa、T5 等預訓練模型。針對 Pre-training 的研究,微軟亞洲研究院的 MASS、UniLM、VLBERT[16-18] 等預訓練模型都超越了 BERT,進而將 Pre-training 研究推向了新的高度;而且這些預訓練方法不僅在很多公開資料集中面取得了重大突破,也在實際的商業產品中得到了廣泛應用。
在無標註資料方面,微軟亞洲研究院在三年前便提出了對偶學習,它主要是利用兩個機器學習任務之間的結構對偶屬性,從無監督資料獲得反饋訊號進行學習。在2019年的 ICML 上,對偶學習被應用到了語音識別和語音合成中,進一步驗證了這一學習正規化可以從很少量的標註資料中學到好的語音合成模型[19]。今年,微軟亞洲研究院基於對偶學習,又提出了多智慧體對偶學習[20],並在2019國際機器翻譯大賽(WMT 2019)上獲取8項冠軍。
WMT 2019國際機器翻譯大賽結果
-
更快的模型和演算法,實際應用才可能落地
深度學習使用的訓練資料越多,模型就越大,從而模型訓練時間、支援其執行的計算資源,以及實際使用中的模型推理時間也越來越長。因此, 加快模型和演算法的訓練、推理速度,才能讓模型在實際中更快、更好地應用。
對此,微軟亞洲研究院提出了快速的語音合成演算法FastSpeech[21],其中的非自迴歸深度模型能夠把 mel spectrum 的生成速度提速270倍,同時端到端的語音生成速度提速40倍。FastSpeech 演算法對商業化的語音合成產品提速降費非常有效。
實際應用前的演練——強化學習用在複雜遊戲中
圍繞著機器學習的另一個熱門方向“強化學習”的探索,近年來一直側重於較小的遊戲如 Mojoco,或者是相對簡單的影片遊戲如 Atari 的研究,但今年,如何將深度學習用於解決更復雜遊戲裡的問題,吸引了大量的注意力,例如針對星際爭霸設計的 AlphaStar,其挑戰就是如何從非完全資訊中進行學習,如何處理多人博弈以及更大的動作空間。
微軟亞洲研究院針對麻 將設計的 AI 系統 Suphx,其在技術上的主要挑戰是:如何處理超大的隱藏資訊空間以及非常強的隨機性。為了應對這些挑戰,Suphx 基於深度強化學習,提出了近似常熵探索機制和先知教練來加強訓練,並在 打 牌時實時進行策略適應。微軟亞洲研究院認為, 多人麻 將中的複雜策略和帶有隨機性的博弈過程更貼近人類的真實生活,AI 在其中的突破將更能應用於實際環境中。
機器學習進入傳統行業:物流、金融……
深度學習的發展給許多傳統領域問題的解決提供了全新的思路,微軟亞洲研究院的一些機器學習模型和演算法成果,已經與物流、金融等業務場景進行深度結合,並取得了不錯的效果。
在物流領域的資源排程方面,微軟亞洲研究院透過與東方海外航運合作,探索出了針對資源排程的一套全新解決方法:競合多智慧體強化學習。相比於傳統運籌學方法在全域性上求解最佳化,競合多智慧體強化學習把每一個港口和船隻建模成智慧體,對原來的複雜問題分而治之,以去中心化的方式進行求解,透過協調智慧體之間的利益分配與轉移,來促進智慧體之間的合作,同時協調他們之間的競爭,最終起到全域性最佳化的目的。該方法預計可以大幅提升業務效率並節省運營成本。實際上,大到全球範圍的航運,小到城市內的快遞業務, 人工智慧的演算法已經越來越多地被應用到物流行業中的供需預測、資源排程、路徑最佳化、供需評價等任務中。
在金融領域的量化投資方面,微軟亞洲研究院與華夏基金合作研究,聚焦“AI+指數增強”,透過探索兩項核心人工智慧技術——時空卷積神經網路和時變注意力模型,自動構建有價值的投資因子,並實現了動態的因子非線性複合。這種“AI+指數增強”的方法可以挖掘出與傳統投資方法低相關性的投資組合,幫助金融企業實現差異化競爭。 未來,人工智慧演算法在證券、銀行、保險等行業還將發揮出更大的潛能。
更好地理解機器學習“黑盒”
深度學習在實踐中“大展身手”的同時,研究人員也非常期待能深入理解它。比如深度神經網路的最佳化目標是非凸的,理論上很難保證找到最優點,但是實際上隨機梯度下降總會找到不錯的解;再比如神經網路設計和訓練有很多竅門,像跳層連線、注意力機制、批歸一化、學習率階梯指數下降等。為什麼這些竅門會起作用?如何設計出新的或者更好的“竅門”?
今年在這些問題的理解上學術界有了很多進展,其中平均場理論、神經切線核、過引數化、學習率階梯指數下降等研究備受關注。不過, 當前的分析方法跟實際的深度神經網路訓練還有一定距離,而更具挑戰的是,如何真正理解這些並設計出新網路、新演算法來提高效能。
基於對深度神經網路路徑空間的分析,微軟亞洲研究院提出 G-SGD[22], 使得在最佳化 ReLU 網路時避免了在權重空間進行神經網路最佳化的冗餘性問題,並基於對跳層連線的穩定性分析,提出了 tau-ResNet[23],對殘差塊中的引數分支輸出縮小 1/sqrt(L),從而在非常深的網路中保持前傳和後傳的穩定性,實際效果一致,且優於原始 ResNet。
另外,基於有跳層連線的網路與一階常微分方程的對應,以及對注意力機制的分析,微軟亞洲研究院的研究員們提出了馬卡龍網路[24],來改進像 Transformer 這種帶有注意力機制的網路,在 NLP 專案上取得了一致超越 Transformer 的效能。相關研究已經在今年的 ICLR 和 NeurIPS workshops 上發表、展示。
未來,知其然、更知其所以然
未來,對於深度學習、機器學習等人工智慧技術的研究, 我們不僅要知其然,更要知其所以然,讓 AI 在可控的、安全的範圍內發揮最大價值。因此,對 AI 的可解釋性、因果分析、魯棒性、隱私保護的研究,將會是研究人員的長期奮戰目標。
機器學習演算法在多領域、多場景中的應用,使模型和演算法的可解釋性愈發受到重視,在追求演算法或模型的高準確度時,我們更希望知道 AI 為什麼做出這種決策或預測。與可解釋性相關的,還有因果分析,我們理解問題後,不僅希望做出預測、決策,還想了解中間的因果關係,例如瞭解導致某種疾病的原因就可以更好的避免這種疾病, 因果分析可以讓我們更好地理解世界,甚至實現強人工智慧。
另外, 在一些與安全高度相關的應用場合,如安防中的人臉識別、醫療應用、無人駕駛的決策演算法等, 演算法和模型的魯棒性尤為關鍵;同時, 面對日益嚴峻的隱私保護挑戰,如何在使用機器學習技術時保護隱私或者加強隱私保護,也是未來一個非常重要的課題。