日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Facebook基于数据中心的机器学习实践

發布時間:2025/3/21 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Facebook基于数据中心的机器学习实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

周圣盛???文

張懷政 校正

引言

“賦予人們建立社區的力量,讓世界更緊密地聯系在一起”是Facebook的使命。為了完成這樣的目標,Facebook連接了全球兩億的用戶(2017年12月)。為了提供更好的服務質量以達到最大的用戶滿意度,Facebook大量應用了機器學習在它的各種服務上面,比如頁面推薦、廣告推薦、語音識別、翻譯、圖像與視頻分類等。但是Facebook是一家服務于全球用戶的企業,用戶與用戶產生的數據量巨大,而且其數據中心分布在世界各地,這些都給Facebook建設機器學習服務帶來了巨大挑戰。

Facebook的機器學習

圖1展示了Facebook的一個機器學習流程與用到的基礎設施示例,其機器學習主要包括兩步:

(1)? 訓練(Training):使用機器學習算法結合數據訓練模型,一般離線訓練;

(2)? 預測(Inference):使用訓練好的模型進行在線實時預測。

圖1. Facebook的機器學習流程與基礎設施示例

Facebook基于機器學習創建的主要服務如下:

表1. Facebook基于機器學習的主要服務

從表1中我們可以看出,Facebook使用機器學習給用戶提供了豐富的智能服務。而且每個服務可能包含了更多的子服務,比如翻譯服務,Facebook支持45種語言兩兩雙向翻譯,其使用的模型數量就高達2000多種。為了更好的訓練、上線以及管理這些服務所用到的機器學習模型,Facebook對機器學習進行了服務化治理。注意這里的服務指的是模型服務,而不是上文提到的具體的應用服務。正如圖1中所展示的那樣,在Facebook內部,模型的訓練、上線以及管理等都是使用FBLearner來完成的。FBLearner是一個統一的機器學習與調度平臺,它包含了以下幾個模塊:

  • FBLearner Feature Store:用于抽取并存儲特征以供模型的訓練和實時預測;

  • FBLearner Flow:用于模型的訓練,Flow使用工作流來描述一個模型的訓練任務,通過對工作流的調度來完成訓練;

  • FBLearner Predictor:模型的預測引擎,用于模型的在線實時預測。

FBLearner對主流的機器學習框架(如Caffe2、TensorFlow、PyTorch等)進行了抽象與封裝,也就是說FBLearner感知不到其內部使用的是什么框架。

資源對機器學習的影響

機器學習中的訓練和預測有著不一樣的資源需求、頻率以及時長,所以對訓練和預測應該采取不一樣的資源分配策略。

Facebook不光是一個應用軟件服務提供商,它也設計并開源了很多硬件架構,如圖2所示的Big Basin GPU服務器就是目前Facebook在用的主要的GPU服務器。這款GPU服務器支持NVIDIA Tesla P100 GPU以及V100 GPU,GPU之間使用NVLink進行連接,從而提供了高速的數據交互。

圖2 Big Basin GPU服務器,在一個3U機箱中可以放8個GPU

Facebook大量使用了CPU服務器和GPU服務器應對機器學習,訓練主要使用CPU和GPU,而預測主要使用CPU。GPU適用于一些高負載的運算場景,這正是訓練的一個重要特征,而且訓練也不會發生的太頻繁。此外,GPU的實時性沒有CPU好,所以在線上實時預測的場景中,CPU可以發揮出更大的優勢。表2顯示了Facebook不同服務訓練使用的資源類型、訓練頻率以及時長,不難發現,不同服務模型訓練所需資源類型、訓練頻率、時長都不一樣,這里給出的數據來自Facebook的最佳實踐,不一定適用于其他公司,但是可以作為參考。

表2 服務的離線訓練所需資源類型、頻率以及時長

數據中心級別的機器學習

圖3顯示的是Facebook全球的數據中心分布(2017年12月數據),可以發現Facebook的數據中心分布在全球各地。在進行機器學習訓練的過程中,一個很重要的輸入就是數據,而且Facebook用戶產生的數據極大,某些服務(如News Feed)在訓練的時候需要PB級別的數據,如果每次訓練都要將這么大的數據量從數據倉庫傳輸到訓練節點上,那么對網絡帶寬的要求會非常大,對于跨數據中心的數據傳遞也會十分耗時。另外,基于如此巨大的數據量進行訓練,往往會帶來非常大的資源消耗,為了不影響用戶的服務質量,必須設計一套切實可行的解決方案。

圖3 Facebook全球數據中心分布圖(2017年12月)

針對以上提到的一些問題,Facebook通過不斷探索和實踐,給了我們一些可以應對的方針。Facebook主要通過以下手段克服上面提到的幾個問題:

  • 針對距離遠而且數據量大的問題,Facebook采用的方案是縮短數據中心和訓練中心的距離,這樣數據傳輸耗時就會縮短很多。另外Facebook將讀取數據的機器“readers”和用來訓練的機器“trainers”物理上分離,也就是說用來訓練的trainers只需要專心的跑訓練,不需要從數據中心讀取數據,而是依賴于“readers”從數據中心拉取數據。

  • 針對訓練十分消耗資源的問題,Facebook觀察到一個區域的機器的負載狀況滿足日間活動特性(Diurnal),如圖4所示,其實確實如此,因為大多數用戶白天使用App、網站等服務的頻率會比較高,夜里比較少。所以Facebook的訓練大多數跑在夜間,這樣可以最大程度上提高硬件資源利用率,同時減少和用戶服務競爭資源。

圖4 Facebook服務器集群24小時的負載狀況(2017年12月19日)

總結

該文章簡單介紹了Facebook基于數據中心的機器學習實踐,從大公司應用機器學習建立智能服務的過程中我們可以看出,工業界對于機器學習的應用,會更加考慮服務可用性、預測實時性、訓練速度、數據中心的網絡傳輸、資源利用率等指標。為了建設更完善的機器學習平臺,Facebook從硬件架構、模型訓練與服務框架、數據中心建設等方面都在不停的嘗試新方案。正是不斷創新的解決方案,才讓Facebook給其20億用戶帶來了穩定且高質量的服務。

引用

Hazelwood, Kim, et al. "Applied machine learning at facebook: A datacenter infrastructure perspective." 2018 IEEE International Symposium on High Performance Computer Architecture (HPCA). IEEE, 2018.

資料免費送(點擊鏈接下載)


加入運維管理VIP群(點擊鏈接查看)

掃描以下二維碼加入學習群

總結

以上是生活随笔為你收集整理的Facebook基于数据中心的机器学习实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。