TuX²:面向機器學習的分布式圖計算系統

2021-02-13 微軟研究院AI頭條

當下,機器學習的技術成果已經深入到了我們生活中的各個方面。從網頁檢索系統,到電影書籍推薦系統、廣告展示系統……這些看似隱形卻又存在感十足的技術無一不得到了機器學習的支撐。可以這麼說:沒有計算機技術的發展,就不會有這些智能服務的高效便捷。

在人們計算體驗改善的過程中,算法的進步自然功不可沒。例如,話題模型(topic-modeling)、點擊率預測(click-through prediction)等一系列算法的出現與不斷優化,使得例如推薦系統等信息服務的質量逐步提高。但是,在海量的數據規模上,要應用這些算法以解決問題,僅有理論是遠遠不夠的。我們顯然不能指望單臺計算機運行串行程序來維持當今網際網路級別的計算和服務。而隨著數據內容的增長和用戶量的劇增,更多的信息也使得我們面臨的挑戰愈加嚴峻。因此為了不斷應對新時期信息處理規模的需要,從科學研究到工程實踐,分布式計算的相關理論都得到了長足的發展,多個分布式系統先後湧現。它們將規模龐大的計算機聯合起來,從而有效地解決大規模的計算問題。其中,圖計算系統就是其中一隻重要的分支,從Pregel到GraphLab再到PowerGraph,她們解決的問題範圍逐步增大,性能也不斷提升。

而介紹圖計算系統,首先我們會問:什麼是圖呢?圖(Graph),將信息中的實體,以及實體之間的關係,分別抽象表達成為頂點以及頂點間的邊這樣的結構數據。圖計算系統就是主要針對圖結構數據處理的系統,並在這樣的數據上進行針對性優化的高效計算。

我們處理機器學習的問題時,為什麼會考慮到用圖計算系統呢?


首先,從其本質上來講,我們機器學習中需要處理的很多信息是由實體和關係構成的。例如:用戶和電影就是實體,他們之間的喜好構成了實體間的關係;搜索查詢和商品也是實體,他們之間的點擊率構成了實體間的關係……

下圖表示了如何將邏輯回歸(LR: Logistic Regression)計算抽象成圖計算。其中的綠色和黃色頂點分別表示樣本(sample)和特徵(feature),而聯結它們的藍色邊則是 「樣本具有特徵」 關係。樣本點上具有標籤y,特徵上具有權重w,而LR的目的就是希望通過回歸計算不斷更新各個w,從而得到適合該模型的權重w,以便通過此模型為只具有特徵關係的樣本預測標籤。

將邏輯回歸抽象成圖計算

其次,這樣的抽象會使我們有機會更有效地處理。圖計算系統已經在處理這樣的圖數據的長期實踐中積累了大量的經驗。圖計算系統可以利用圖結構的特性,有效地進行數據存儲和調度執行。譬如,我們可以通過基於圖的劃分方法將數據更平均的分發給多臺機器,讓他們並行執行,保證各機器的負載均衡,並且可以根據圖的結構信息來更好的安排數據的存放以改進計算時的數據局部性,從而帶來更高的性能。

諸如PageRank這樣的應用,傳統的圖計算系統已經可以很高效地處理了。用戶可以利用系統提供的編程模型接口實現相應算法的邏輯,然後將數據灌入系統運行即可。然而,許多常用的機器學習應用並不能直接採用傳統的例如PowerGraph這樣的系統。這是因為,與傳統的圖計算應用相比,許多機器學習應用處理數據有著不同於傳統圖算法的模式。例如小分批(mini-batch)和延時同步並行(SSP: Stale Synchronous Parallel)。前者需要按照指定的批量為單位處理數據,而後者是一種區別於傳統的圖計算中純同步/純異步當中的一種同步方式。這都需要對傳統圖計算系統進行重新設計,從而支持相應的功能。而這些重新設計的挑戰在某種意義上也是機會——我們可以利用這些機器學習應用共同的內在屬性,從而提高算法的執行效率。

因此,基於分布式圖計算系統的經驗和機器學習應用的理解,我們提出了分布式機器學習系統——圖學習TuX2Tu Xue Xi。TuX2作為一個全新的分布式圖引擎,致力於融合圖計算和分布式機器學習系統。TuX2繼承了傳統圖計算系統中的優勢:簡潔的計算模型,高效的數據排布,均衡的負載分配以及超過10億條邊的規模處理能力;並對於分布式機器學習進行了大幅擴展和優化,以支持異質性、延時同步並行(Stale Synchronous Parallel),並提出了一種新的編程模型——MEGA(Mini-batch, Exchange, GlobalSync, Apply)。

我們在TuX2上實現了一系列具有代表性的分布式機器學習算法,涵蓋了監督學習和非監督學習。通過與機器學習系統的對比,我們發現實現相同的算法,TuX2隻需要約25%的代碼量,因為我們的圖計算模型從開發者手中接管了很多瑣碎的處理細節,包括數據排布、數據劃分和並行。在640億條邊的大規模數據上的多個實驗結果充分表明,相比於目前最先進的圖計算系統PowerGraph和PowerLyra,TuX2具有一個量級上的性能優勢,並且與參測的兩個目前最先進的分布式機器學習系統相比,實現了至少48%的性能提升。

本文所介紹的工作發表於會議14th USENIX Symposium on Networked Systems Design and Implementation (NSDI 2017): TuX2: Distributed Graph Computation for Machine Learning》Wencong Xiao, Jilong Xue, Youshan Miao, Cheng Chen, and Ming Wu, Wei Li, Lidong Zhou。(請點擊閱讀原文或將網址複製至瀏覽器中打開即可查看:https://www.usenix.org/conference/nsdi17/technical-sessions/presentation/xiao)

微軟亞洲研究院系統組從事計算機系統領域重大課題的基礎性研究,在分布式系統、存儲系統、雲計算、網絡、及計算機語言等方面均有理論與實踐經驗豐富的專家。自成立以來,系統組一直致力於設計、開發、分析、優化大規模分布式系統,其中一些系統已經在微軟產品中應用,支持各種在線服務。系統組成員在此過程中收穫了寶貴的第一手實踐經驗,而這些經驗更進一步激發了一系列新的研究項目,並在計算機系統及相關領域的頂級會議上收穫豐富成果。微軟亞洲研究院系統組多項工作發表於OSDI、SOSP、NSDI、EuroSys、SoCC、USENIX ATC等一系列高水平學術會議上。

你也許還想看:

感謝你關注「微軟研究院AI頭條」,我們期待你的留言和投稿,共建交流平臺。來稿請寄:msraai@microsoft.com。微軟小冰進駐微軟研究院微信啦!快去主頁和她聊聊天吧。

相關焦點

  • 面向未來系統設計的機器學習
    半導體晶片及其周邊系統設計的下一個飛躍將來自電子設計自動化(EDA)計算軟體工具流程的融合,以及更大規模的機器學習/深度學習(DL)技術和多核計算的應用。機器學習/深度學習將在下一代平臺的設計中發揮關鍵作用,從而使新興技術(包括5G、超大規模計算等技術)得以廣泛應用。
  • 衝量網絡 | 可信計算與機器學習
    舉例來說,逢年過節,各個軟體開發商往往會發布各種AR掃描活動,例如掃描出某個字或者某個圖片獲得抽獎機會等,但由於數據量非常大,某個字的寫法也千千萬萬種,不可能每次掃描都靠人工來識別,也無法完全依靠資料庫的比對,因為拍攝者往往會因為光線、像素等原因導致簡單的資料庫比對的成功率大大降低,此時便需要機器學習技術,通過對某個字或者某張圖的數據,通過算法模型機型訓練,系統不斷更新學習
  • 十億節點大規模圖計算降至分鐘級,騰訊開源圖計算框架柏拉圖
    機器之心報導參與:蛋醬11 月 14 日,騰訊正式宣布開源高性能圖計算框架 Plato,據介紹,Plato 可滿足十億級節點的超大規模圖計算需求,將算法計算時間從「天」級縮短到「分鐘」級,性能全面領先於其它主流分布式圖計算框架,並且打破了原本動輒需要數百臺伺服器的資源瓶頸。
  • 面向E級計算的材料科學計算軟體系統與應用—新聞—科學網
    為搶佔E級材料計算的世界高地,提升我國材料研發的核心競爭力,迫切需要自主研發可高效開展E級材料計算的軟體系統,實現材料的大尺度、長時間和高通量的計算與設計。近日,由吉林大學聯合中國科學技術大學、北京應用物理與計算數學研究所、中國科學院計算機網絡信息中心和中國工程物理研究院核物理與化學研究所共同申報的「面向E級計算的材料科學計算軟體系統與應用」已批准立項。項目負責人為吉林大學馬琰銘教授。
  • 一文了解阿里一站式圖計算平臺GraphScope
    隨著大數據的爆發,圖數據的應用規模不斷增長,現有的圖計算系統仍然存在一定的局限。阿里巴巴擁有全球超大的商品知識圖譜,在豐富的圖場景和真實應用的驅動下,阿里巴巴達摩院智能計算實驗室研發並開源了全球首個一站式超大規模分布式圖計算平臺GraphScope,併入選中國科學技術協會「科創中國」平臺。
  • 2017中國科學院計算技術研究所物端系統方向助理研究員(博士)招聘...
    事業單位招聘公告:2017中國科學院計算技術研究所物端系統方向助理研究員(博士)招聘公告。更多事業單位考試題庫請點擊事業單位考試網。 物端系統方向助理研究員(博士)物端計算系統,全職,泛在計算系統研究中心,發布時間:2017.09.07職位描述崗位職責:從事面向邊緣計算硬體與物端系統的機器學習與神經網絡應用開發,以及機器學習算法移植與加速,並參與專用機器學習加速器設計。
  • Plant Phenomics專刊 | 智慧農業系統的圖像分析與機器學習
    SPECIAL ISSUE:Image Analysis and Machine Learning for Cyber-Agricultural Systems智慧農業系統的圖像分析與機器學習如今,高效且經濟有效的傳感器以及高性能計算技術正在尋求將傳統的基於經驗的農業轉變為更為高效的智慧系統。
  • 資料|《面向機器學習的特徵工程》
    今日資料推薦《 面向機器學習的特徵工程 》特徵工程對於應用機器學習來說是基礎的,但是使用域知識來加強你的預測模型既困難成本又高。
  • 深度|基因組醫學中的機器學習:計算問題與數據集綜述(下)
    關鍵詞:計算生物學、深度學習、遺傳變異體、基因組分析、基因組生物學、機器學習、精準醫療四、計算生物學中的機器學習近年來,機器學習研究者的主要精力投入到了語音識別[103]和計算機視覺[104]上。計算機視覺非常直觀且好理解,機器學習領域對其關注已久。
  • 那個分分鐘處理 10 億節點圖計算的 Plato,現在怎麼樣了?
    於是,在來自加州大學、清華大學、北京大學等世界知名學府組成的高性能計算團隊的努力下,號稱能夠進行 10 億節點圖計算的 Plato 高性能分布式圖計算框架就此誕生,給國產圖計算框架又添一員「大將」。Plato 是騰訊開源的高性能分布式圖計算框架,提供超大規模圖數據的離線圖計算和圖表示學習兩大核心能力。
  • 機器學習吧面向ai的中文機器學習資源與分享平臺
    關於自動化機器學習的研究很早以前就有過非常系統化的論文和書籍,如果你感興趣我推薦一下孫向祥的機器學習分析,然後是西方機器學習理論,英文版的如果你沒時間翻的話國內有很多人翻譯過譯作,如果你時間多可以看coursera的opendatamlcourse如果你時間有限我推薦你這門early-resolutionmachinelearning
  • 騰訊開源圖計算框架 Plato:十億級節點圖計算進入分鐘級時代
    圖計算就是以圖作為數據模型來表達問題並予以解決的過程。它可以將不同來源、不同類型的數據融合到同一個圖裡進行分析,得到原本獨立分析難以發現的結果,因此也成為了社交網絡、推薦系統、網絡安全、文本檢索和生物醫療等領域至關重要的數據分析和挖掘工具。
  • 38個常用Python庫:數值計算、可視化、機器學習等8大領域都有了
    一、數值計算數值計算是數據挖掘、機器學習的基礎。Python提供多種強大的擴展庫用於數值計算,常用的數值計算庫如下所示。1. NumPy支持多維數組與矩陣運算,也針對數組運算提供大量的數學函數庫。必須安裝Pyglet(一個面向對象編程接口)方可使用。11. missingno用圖像的方式快速評估數據缺失的情況,可根據數據的完整度對數據進行排序或過濾,或者根據熱度圖或樹狀圖對數據進行修正。
  • 無伺服器計算的機器學習,出路在哪裡?
    作者提出了一個無伺服器機器學習框架,該框架專門用於無伺服器基礎設施和 ML 工作流。本文所討論的無伺服器計算依賴於 Amazon S3 的無狀態 Lambda 函數,這些函數由開發人員提交,並由雲基礎設施自動調度。因此,它們避免了開發人員顯式配置、部署和管理長期計算單元(例如 VM)的需要。與一般的無伺服器計算平臺不同,無伺服器機器學習框架需要滿足三個關鍵目標。
  • 英特爾宣布面向Win機器學習平臺的Myriad X VPU
    在該作業系統的下一個重大更新中,開發者們將能夠在他們的 Windows 應用中使用預先訓練好的機器學習模型。 與此同時,英特爾也宣布了面向 Windows ML 平臺的Movidius Myriad X VPU 。在處理人工智慧相關的負載時,它能夠進一步降低操作開銷和提升效率。
  • 用於數據科學和機器學習的Python編程
    Python是一種通用的,高級的,面向對象的,易於學習的程式語言。它由Guido van Rossum創建,他被稱為Python的教父。Python可用於開發各種應用程式,從Web,基於桌面GUI的程序/應用程式到科學和數學程序以及機器學習和其他大數據計算系統。讓我們探討Python在機器學習,數據科學和數據工程中的應用。
  • 25個Java機器學習工具&庫
    2.Massive Online Analysis(MOA)是一個面向數據流挖掘的流行開源框架,有著非常活躍的成長社區。它包括一系列的機器學習算法(分類、回歸、聚類、異常檢測、概念漂移檢測和推薦系統)和評估工具。關聯了WEKA項目,MOA也是用Java編寫的,其擴展性更強。3.MEKA項目提供了一個面向多標籤學習和評價方法的開源實現。
  • 初學者必讀:IBM長文解讀人工智慧、機器學習和認知計算
    近日,IBM 官網發表了一篇概述文章,對人工智慧技術的發展過程進行了簡單梳理,同時還圖文並茂地介紹了感知器、聚類算法、基於規則的系統、機器學習、深度學習、神經網絡等技術的概念和原理。機器之心對本文進行了編譯。 人類對如何創造智能機器的思考從來沒有中斷過。期間,人工智慧的發展起起伏伏,有成功,也有失敗,以及其中暗藏的潛力。
  • 2020年六大機器學習Python庫!
    Scikit-learn:Scikit-learn(又名sklearn)是面向Python程式語言的免費軟體機器學習庫。它有各種分類、回歸和聚類算法,包括支持向量機、隨機森林、梯度提升、k均值和DBSCAN,旨在與Python數值庫NumPy和科學庫SciPy協同操作。