0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

深度揭示 Facebook 內(nèi)部支持機器學習的硬件和軟件基礎架構

DPVg_AI_era ? 2017-12-31 00:38 ? 次閱讀

近日 Facebook 研究團隊公開一篇 HPCA 2018 論文,作者包括 Caffe 作者賈揚清等人,深度揭示了Facebook 內(nèi)部支持機器學習硬件和軟件基礎架構。Facebook 的幾乎所有的服務都廣泛應用機器學習,其中計算機視覺只占資源需求的一小部分。此外,F(xiàn)acebook依賴多種機器學習方法,包括但不限于神經(jīng)網(wǎng)絡。硬件方面,用CPU 做推理,CPU 和 GPU都用于訓練,并且進行大規(guī)模分布式訓練。

機器學習是 Facebook 的許多重要產(chǎn)品和服務的核心。這篇文章描述了 Facebook 在全球范圍里支持機器學習的硬件和軟件基礎架構。Facebook 的機器學習工作負載非常多樣化:在實踐中,不同的服務需要多種不同類型的模型。這種多樣性對系統(tǒng)堆棧里的所有層都有影響。此外,在 Facebook 上存儲的大部分數(shù)據(jù)都是通過機器學習流程傳輸?shù)?,這在向高性能分布式訓練流交付數(shù)據(jù)方面提出了嚴峻的挑戰(zhàn)。計算需求也很大,需要利用GPU和CPU平臺進行訓練,并將大量CPU容量用于實時推理。解決這些問題以及其他層出不窮的新挑戰(zhàn)需要各方面的努力,包括機器學習算法、軟件和硬件設計。

為20億用戶提供機器學習服務,F(xiàn)acebook如何處理計算和數(shù)據(jù)

截至2017年12月,F(xiàn)acebook 的用戶已經(jīng)超過20億人。過去幾年中,機器學習被應用于這個大規(guī)模的實際問題,形成了機器學習算法創(chuàng)新的良性循環(huán),為模型提供了大量訓練數(shù)據(jù),并在高性能計算機體系結構的助力下取得進步。在 Facebook 上,機器學習提供了幾乎所有用戶體驗方面的關鍵能力,包括News Feed,語音和文本翻譯,照片和實時視頻分類等。

Facebook 在這些服務中利用了各種各樣的機器學習算法,包括支持向量機,梯度提升決策樹和許多類型的神經(jīng)網(wǎng)絡。本文將描述在 Facebook 上支持機器學習的數(shù)據(jù)中心基礎架構的幾個重要方面?;A架構包括內(nèi)部的“ML-as-a-Service”流,開源機器學習框架和分布式訓練算法。從硬件角度來看,F(xiàn)acebook 利用大量的 CPU 和 GPU 平臺來訓練模型,以便在所需服務延遲時間內(nèi)支持必要的訓練頻率。對于機器學習推理,F(xiàn)acebook 主要依靠 CPU 來處理所有神經(jīng)網(wǎng)絡排名服務的主要功能,例如 News Feed,這些服務占據(jù)了所有計算負載的大部分。

Facebook 通過機器學習流程將所有存儲數(shù)據(jù)的很大一部分匯集起來,而且這個比例隨著時間的推移不斷增加,從而提高模型質量。機器學習服務所需的大量數(shù)據(jù)對 Facebook 數(shù)據(jù)中心的全球規(guī)模提出了挑戰(zhàn)。有幾種技術被用來高效地向模型提供數(shù)據(jù),包括數(shù)據(jù)饋送和訓練的解耦,數(shù)據(jù)/計算協(xié)同定位和網(wǎng)絡優(yōu)化。與此同時,F(xiàn)acebook 的規(guī)模也提供了獨特的機會。在非高峰期間,日負載周期為分布式訓練算法提供了大量可用的CPU。Facebook 的計算fleet遍布10個數(shù)據(jù)中心,規(guī)模也提供了災難恢復能力。災難恢復規(guī)劃是很重要的,因為及時交付新的機器學習模型對于 Facebook 的運營非常重要。

展望未來,F(xiàn)acebook 預計在現(xiàn)有的功能以及新的服務上,機器學習都將快速增長。對于部署這些服務的基礎架構的團隊來說,這種增長意味著更多挑戰(zhàn)。盡管在現(xiàn)有平臺上優(yōu)化基礎架構有好處,但我們?nèi)匀辉诜e極評估和創(chuàng)建新的硬件解決方案,同時保持算法創(chuàng)新。

關于 Facebook 的機器學習的主要見解:

機器學習在 Facebook 的幾乎所有的服務中都有廣泛應用,計算機視覺只占資源需求的一小部分。

Facebook依賴多種機器學習方法,包括但不限于神經(jīng)網(wǎng)絡。

大量數(shù)據(jù)都是通過機器學習流程傳送,而這會在計算節(jié)點之外造成工程和效率方面的損失。

Facebook 目前在很大程度上依賴 CPU 做推理,CPU 和 GPU 都用于訓練,但從性能功耗比的角度看,它不斷對新的硬件解決方案進行原型設計和評估。

Facebook 的全球用戶規(guī)模以及相應的日活動模式導致大量的機器可以用于機器學習任務,例如大規(guī)模分布式訓練。

Facebook 上的機器學習

機器學習(ML)是指產(chǎn)品利用一系列輸入來構建一個調優(yōu)模型的實例,并利用該模型創(chuàng)建表示、預測或其他形式的有用信號

深度揭示 Facebook 內(nèi)部支持機器學習的硬件和軟件基礎架構

圖1表示了這個過程,由以下步驟組成,依次執(zhí)行:

1)建立模型的訓練階段。這個階段通常是離線執(zhí)行的。

2)在生產(chǎn)中運行訓練模型的推理階段,并進行一個(一組)實時預測。這一階段是在線執(zhí)行的。

Facebook 上機器學習的一個顯著特點是受到可能用于訓練模型的海量數(shù)據(jù)的影響。這個數(shù)據(jù)的規(guī)模會產(chǎn)生很多英雄,涉及整個基礎架構。

利用機器學習的主要服務:

Facebook 的大部分產(chǎn)品和服務都利用機器學習,包括:

News Feed:排名算法讓用戶每次訪問 Facebook 時首先看到與他們最為相關的故事。

廣告(Ads):利用ML來向用戶定向顯示廣告。

搜索:在各種垂直領域提供專門的子搜索,例如視頻、照片、人物、事件等等。

Sigma:一個通用的分類和異常檢測框架,用于各種內(nèi)部應用,包括站點完整性,垃圾郵件檢測,支付,注冊,未經(jīng)授權的員工訪問以及事件推薦。

Lumos:從圖像及其內(nèi)容中提取高級屬性和嵌入,使算法能夠自動理解圖像。

Facer:是 Facebook 的面部檢測和識別框架。

語言翻譯:用于 Facebook 的內(nèi)容國際化服務。

語音識別:是將音頻流轉換成文本的服務。

除了上面提到的主要產(chǎn)品之外,還有更多的長尾服務利用各種形式的機器學習。產(chǎn)品和服務的長尾數(shù)量達數(shù)百個。

機器學習模型

所有基于機器學習的服務都使用“特征”(或輸入)來產(chǎn)生量化輸出。在 Facebook 上使用的機器學習算法包括 Logistic回歸(LR),支持向量機(SVM),梯度提升決策樹(GBDT)和深度神經(jīng)網(wǎng)絡(DNN)。LR和SVM是用于訓練和使用預測的有效方法。GBDT可以通過額外的計算資源來提高準確性。DNN是最具表現(xiàn)力的,可能提供最高的準確性,但是利用的資源也最多(至少比LR和SVM等線性模型需要的計算量多一個數(shù)量級)。這三種類型都對應具有越來越多的自由參數(shù)的模型,這些模型必須通過對有標簽的輸入樣本預測精度進行優(yōu)化來訓練。

在深度神經(jīng)網(wǎng)絡中,有3個常用的類:多層感知器(MLP),卷積神經(jīng)網(wǎng)絡(CNN)和遞歸神經(jīng)網(wǎng)絡(RNN / LSTM)。MLP網(wǎng)絡通常用于結構化輸入特征(通常是排名),CNN作為空間處理器使用(通常用于圖像處理),而RNN / LSTM網(wǎng)絡是序列處理器(通常用于語言處理)。表1說明了這些ML模型類型和對應的產(chǎn)品/服務。

深度揭示 Facebook 內(nèi)部支持機器學習的硬件和軟件基礎架構

表1:利用機器學習算法的產(chǎn)品/服務

Facebook 里的 ML-as-a-Service

Facebook 有一些內(nèi)部的平臺和工具包,旨在簡化產(chǎn)品中利用機器學習的任務。主要包括FBLearner,Caffe2 和 PyTorch。FBLearner 是三個工具的suit,每個工具都專注于機器學習流程的不同部分。FB Learner 利用內(nèi)部作業(yè)調度程序在共享的 GPU 和 CPU 池上分配資源和調度作業(yè),如圖1所示。Facebook上的大多數(shù)ML訓練都是通過FBLearner平臺運行的。這些工具和平臺一起工作,旨在提高ML工程師的效率,幫助他們專注于算法創(chuàng)新。

FBLearner Feature Store:Feature Store 本質上是一個可用于訓練和實時預測的幾個特征生成器的目錄(catalog),它可以作為一個marketplace,多個團隊可以使用它來共享和發(fā)現(xiàn)特征。

FBLearner Flow:是 Facebook 的機器學習平臺,用于模型訓練。

FBLearner Predictor:是 Facebook 的內(nèi)部推理引擎,它使用在 Flow 中訓練的模型來實時提供預測。

深度學習框架

對于深度學習,F(xiàn)acebook 使用兩個截然不同但協(xié)同作用的框架:針對研究優(yōu)化的 PyTorch,以及針對生產(chǎn)優(yōu)化的 Caffe2。

Caffe2:是 Facebook 的內(nèi)部生產(chǎn)框架,用于訓練和部署大規(guī)模機器學習模型。Caffe2 專注于產(chǎn)品所需的幾個關鍵特性:性能,跨平臺支持,以及基本機器學習算法的覆蓋范圍,例如卷積神經(jīng)網(wǎng)絡(CNN),遞歸神經(jīng)網(wǎng)絡(RNN)和多層感知器(MLP)等,這些算法具有稀疏或密集的連接,高達數(shù)百億的參數(shù)。Caffe2 的設計涉及模塊化方法,在所有后端實現(xiàn)(CPU,GPU和加速器)之間共享統(tǒng)一的圖形表示。獨立的執(zhí)行引擎為不同的圖形執(zhí)行需求提供服務,Caffe2 在不同的平臺上引入第三方庫(例如,cuDNN,MKL 和 Metal),以在不同平臺上實現(xiàn)最佳運行時間。

PyTorch:是 Facebook 在AI研究領域的首選框架。它有一個前端,側重于靈活性,debug和動態(tài)神經(jīng)網(wǎng)絡,以進行快速實驗。

ONNX:全稱Open Neural Network Exchange(開放神經(jīng)網(wǎng)絡交換格式),是一種以標準方式表示深度學習模型的格式,以實現(xiàn)跨不同框架的互操作性。

Facebook 上機器學習的硬件資源

(詳細解析見論文原文)

圖2:基于CPU的計算服務器

圖3:Big Basin GPU服務器設計,包括一個3U機箱的8個GPU。

深度揭示 Facebook 內(nèi)部支持機器學習的硬件和軟件基礎架構

表2:用于各種工作負載的脫機訓練使用的頻率、持續(xù)時間和資源。

深度揭示 Facebook 內(nèi)部支持機器學習的硬件和軟件基礎架構

表3:在線推理工作負載的資源需求。

圖4:2017年9月19日的24小時里,F(xiàn)acebook的所有fleet的日負荷。

結論

基于機器學習的工作負載越來越重要,其影響涵蓋了系統(tǒng)堆棧的所有部分。對此,計算機體系結構界對如何最好地應對已經(jīng)出現(xiàn)的挑戰(zhàn)表現(xiàn)出越來越大的關注。雖然以前的工作圍繞有效地處理ML訓練和推理的必要計算而展開,但是考慮到在解決方案被大規(guī)模應用時出現(xiàn)的額外挑戰(zhàn),情況會改變。

在 Facebook,我們發(fā)現(xiàn)了幾個關鍵因素,這些因素在我們的數(shù)據(jù)中心基礎架構的設計過程中起決定性作用:數(shù)據(jù)與計算機協(xié)同定位的重要性,處理各種ML工作負載的重要性,不僅僅是計算機視覺, 以及由于日計算周期的閑置容量而產(chǎn)生的機會。我們在設計開源硬件的端到端解決方案時,考慮了上述每個因素,以及平衡性能和可用性的開源軟件生態(tài)系統(tǒng)。這些解決方案為今天服務超過21億人的大規(guī)模機器學習工作負載提供了強大的動力,同時也反映了機器學習算法和系統(tǒng)設計方面專家的跨學科努力。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Facebook
    +關注

    關注

    3

    文章

    1429

    瀏覽量

    54610
  • 機器學習
    +關注

    關注

    66

    文章

    8349

    瀏覽量

    132315
  • 深度學習
    +關注

    關注

    73

    文章

    5463

    瀏覽量

    120890

原文標題:深入Facebook機器學習部門:服務、模型、框架和硬件(賈揚清等HPCA論文)

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    深度學習硬件架構解析

    深度學習在這十年,甚至是未來幾十年內(nèi)都有可能是最熱門的話題。雖然深度學習已是廣為人知了,但它并不僅僅包含數(shù)學、建模、學習和優(yōu)化。算法必須在優(yōu)
    發(fā)表于 11-18 16:00 ?5714次閱讀

    FPGA在深度學習應用中或將取代GPU

    將 AI 框架模型映射到硬件架構。 Larzul 的公司 Mipsology 希望通過 Zebra 來彌合這一差距。Zebra 是一種軟件平臺,開發(fā)者可以輕松地將深度
    發(fā)表于 03-21 15:19

    基于深度學習技術的智能機器

    圖像分析軟件。其中硬件負責獲取特定條件下的理想圖像,軟件負責獲取圖像中的有用信息?;?b class='flag-5'>機器學習的模式識別系統(tǒng)三、
    發(fā)表于 05-31 09:36

    【詳解】FPGA:深度學習的未來?

    ,F(xiàn)PGA架構是為應用程序專門定制的。在開發(fā)FPGA的深度學習技術時,較少強調使算法適應某固定計算結構,從而留出更多的自由去探索算法層面的優(yōu)化。需要很多復雜的下層硬件控制操作的技術很難
    發(fā)表于 08-13 09:33

    功能安全---AUTOSAR架構深度解析 精選資料分享

    AUTOSAR架構深度解析本文轉載于:AUTOSAR架構深度解析AUTOSAR的分層式設計,用于支持完整的
    發(fā)表于 07-23 08:34

    AUTOSAR架構深度解析 精選資料分享

    AUTOSAR架構深度解析本文轉載于:AUTOSAR架構深度解析AUTOSAR的分層式設計,用于支持完整的
    發(fā)表于 07-28 07:02

    深度學習領域Facebook等巨頭在2017都做了什么

    過去一年間,谷歌、Facebook、微軟等巨頭加持下,深度學習框架格局發(fā)生了極大改變,深度學習領域Fac
    發(fā)表于 01-02 10:19 ?2810次閱讀

    介紹Facebook機器學習方面的軟硬件基礎架構,來滿足其全球規(guī)模的運算需求

    機器學習Facebook的眾多產(chǎn)品和服務中都有著舉足輕重的地位。 本文將詳細介紹Facebook機器
    的頭像 發(fā)表于 01-24 11:23 ?4248次閱讀
    介紹<b class='flag-5'>Facebook</b>在<b class='flag-5'>機器</b><b class='flag-5'>學習</b>方面的軟<b class='flag-5'>硬件</b>基礎<b class='flag-5'>架構</b>,來滿足其全球規(guī)模的運算需求

    深度學習機器學習深度的不同之處 淺談深度學習的訓練和調參

    近年來,深度學習作為機器學習中比較火的一種方法出現(xiàn)在我們面前,但是和非深度學習
    發(fā)表于 05-02 10:30 ?4310次閱讀

    Facebook機器學習是什么?它能用來做什么?

    Facebook機器學習功能可以幫助你的廣告系列取得最佳表現(xiàn)。Facebook平臺可以通過實時確定表現(xiàn)最佳的版位、預算分配以及廣告系列的競價,幫助你以更低的成本獲得盡可能多的轉化機會
    的頭像 發(fā)表于 04-02 15:49 ?2688次閱讀
    <b class='flag-5'>Facebook</b><b class='flag-5'>機器</b><b class='flag-5'>學習</b>是什么?它能用來做什么?

    Facebook用AI技術優(yōu)化機器人 推動其他形式機器學習的發(fā)展

    盡管Facebook不銷售機器人,但該公司研究人員在大量使用機器人。機器人技術的進步可以推動其他形式機器
    發(fā)表于 05-21 16:31 ?682次閱讀

    機器學習深度學習有什么區(qū)別?

    深度學習算法現(xiàn)在是圖像處理軟件庫的組成部分。在他們的幫助下,可以學習和訓練復雜的功能;但他們的應用也不是萬能的。 “機器
    的頭像 發(fā)表于 03-12 16:11 ?8131次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學習</b>和<b class='flag-5'>深度</b><b class='flag-5'>學習</b>有什么區(qū)別?

    Facebook開發(fā)出更加強大的機器學習模型

    近日,Facebook公司分享了兩個內(nèi)部人工智能項目的細節(jié),分別是Learning from video和TimeSformer,這兩個項目旨在促進更強大的機器學習模型的開發(fā)。
    的頭像 發(fā)表于 03-18 09:18 ?1704次閱讀

    機器學習深度學習的區(qū)別

    機器學習深度學習的區(qū)別 隨著人工智能技術的不斷發(fā)展,機器學習
    的頭像 發(fā)表于 08-17 16:11 ?4132次閱讀

    機器學習深度學習的區(qū)別

      機器學習深度學習是當今最流行的人工智能(AI)技術之一。這兩種技術都有助于在不需要人類干預的情況下讓計算機自主學習和改進預測模型。本文
    發(fā)表于 08-28 17:31 ?1448次閱讀