更多幹貨內容請關注微信公眾號“AI 前線”,(ID:ai-front)
Facebook 的產品和服務是由機器學習驅動的。強大的 GPU 已成為關鍵推動因素之一,但它需要更多的硬體和軟體來為數十億使用者提供服務。
在 Facebook 的 20 億使用者中,大多數人都不知道這項服務在多大程度上依賴人工智慧來實現如此大規模的運營。Facebook 的產品,如新聞源、搜尋和廣告都使用機器學習,而在幕後,它為諸如面部識別和標籤、語言翻譯、語音識別、內容理解和異常檢測等服務提供支援,以發現虛假賬戶和令人反感的內容。
數字是驚人的。總的來說,Facebook 的機器學習系統每天要處理超過 200 萬億次的預測和 50 億次的翻譯。Facebook 的演算法每天都會自動刪除數百萬個虛假賬戶。
在今年的計算機架構國際研討會(International Symposium on Computer Architecture,ISCA)上,Facebook 人工智慧基礎架構部門負責人 Kim Hazelwood 博士在一個主題演講中解釋了他們的服務是如何設計硬體和軟體來處理如此規模的機器學習的。她還敦促硬體和軟體架構師們不要光顧炒作,要為機器學習開發“全棧解決方案”。Hazelwood 表示:“重要的是,我們正在解決正確的問題,而不只是做其他人正在做的事情。”
Facebook 的人工智慧基礎架構需要處理各種各樣的工作負載。有些模型可能需要幾分鐘的訓練,而有些模型可能需要幾天甚至幾周的訓練。例如,新聞源和廣告使用的計算資源比其他演算法多 100 倍。因此,只要有可能,Facebook 就會使用“傳統的老式機器學習”,而且只有在絕對必要的時候才會採用深度學習——多層感知器 (MLP)、卷積神經網路 (CNN) 和遞迴神經網路 (RNN/LSTM)。
該公司的人工智慧生態系統包括三個主要組成部分:基礎架構、執行在頂層的工作流管理軟體,以及 PyTorch 等核心機器學習框架。
自 2010 年以來,Facebook 一直在設計自己的資料中心和伺服器。如今,它運營著 13 個大型資料中心,其中 10 個在美國,3 個在海外。並非所有這些資料中心都是相同的,因為它們是隨著時間而建立起來的,並且它們不儲存相同的資料,因為“最糟糕的事情是在每個資料中心中複製所有資料。”Hazelwood 說,儘管如此,公司每個季度都要“拔掉整個 Facebook 資料中心的插頭”,以確保資料的連續性。資料中心的設計是為了用於處理峰值負載,這使得大約 50% 的機群在一天中的某些時間處於空閒狀態,作為“自由計算”,可以用於機器學習。
Facebook 不使用單個伺服器,而是在生產環境中,將數百個工作負載放入 buckets 中,併為每種型別設計定製伺服器。資料儲存在 Bryce Canyon 和 Lighting 儲存伺服器上,訓練則在 Big Basin 伺服器上,使用的是 Nvidia Tesla GPU,這些模型在 Twin Lakes 單至強伺服器和 Tioga Pass 雙至強伺服器上執行。Facebook 繼續對 Google 的 TPU 和微軟的 BrainWave FPGA 等專用硬體進行評估,但 Hazelwood 認為,太多的投資集中在計算上,而對儲存尤其是網路的投入不夠,這與 Amdahl 定律相一致,可能會成為許多工作負載的瓶頸。她補充說,人工智慧晶片初創公司沒有把足夠的精力放在軟體上,這給機器學習工具和編譯器留下了巨大的機遇。
AI 前線注:Amdahl 定律,是計算機系統設計的重要定量原理之一,於 1967 年由 IBM360 系列機的主要設計者 Amdahl 首先提出。該定律是指:系統中對某一部件採用更快執行方式所能獲得的系統效能改程式度,取決於這種執行方式被使用的頻率,或所佔總執行時間的比例。Amdahl 定律實際上定義了採取增強(加速)某部分功能處理的措施後可獲得的效能改進或執行時間的加速比。簡單來說是通過更快的處理器來獲得加速是由慢的系統元件所限制。
Facebook 自己的軟體棧包括 FBLearn,這是一套針對機器學習管道不同部分的三種管理和部署工具。FBLearner Store 用於資料處理和特徵提取,FBLearning Flow 用於管理訓練中涉及的步驟,FBLearner Prediction 用於在生產中部署模型。我們的目標是解放 Facebook 的工程師,讓他們更有效率,專注於演算法設計。
Facebook 以前使用過兩種機器學習框架:用於研究的 PyTorch 和用於生產的 Caffe。基於 Python 的 PyTorch 更容易使用,但 Caffe2 的效能更好。問題是,將模型從 PyTorch 移植到用於生產的 Caffe2 是一個耗時且麻煩的過程。Hazelwood 說,上個月,在 F8 開發者大會上,Facebook 宣佈,現在使用 PyTorch 1.0,由於“在內部合併了它們”,這樣你就能享受到 PyTorch 的外觀,Caffe2 的效能。
這對於 ONNX(Open Neural Network Exchange)來說是合乎邏輯的第一步,這是由 Facebook、Microsoft 共同努力開發的一種開放格式,用於優化構建在不同框架中的深度學習模型,並在各種硬體上執行。我們面臨的挑戰是,目前市面上已經有很多框架了:Google TensorFlow、Microsoft Cognitive Toolkit、Apache MXNet(深受 Amazon 青睞)……這些模型需要在各種不同的平臺上執行,如 Apple ML、Nvidia、Intel/Nervana 和 Qualcomm 的 Snapdragon Neural Engine 等。
在邊緣裝置上執行模型有很多很好的理由,但手機尤其具有挑戰性。世界上許多地區仍然幾乎沒有行動網路,全球超過一半的地區使用的是 2012 年或更早的手機,他們使用各種硬體和軟體。Hazelwood 說,目前的旗艦手機和中檔手機的效能差異約為 10 倍。她說:“你不能假設你為之設計移動神經網路的每個人都在使用 iPhone X。”“在美國,這種情況非常反常。”Facebook 的 Caffe2 Go 框架旨在壓縮模型以解決其中的一些問題。
深度學習時代已經到來,Hazelwood 說,有很多硬體和軟體問題亟須解決。行業花費大量的時間和金錢建設更快的矽片,但她說,我們需要在應用 Proebsting 定律的軟體上進行平等的投資,編譯器的計算效能每 18 年只能翻一番,“請記住這一點,以便我們不會再遇到安騰的另一種情況,”Hazelwood 開玩笑地說,安騰是 Intel 未失效的 IA-64 架構。Hazelwood 說,真正的機遇是解決人們尚未致力構建具有平衡硬體和更好的軟體、工具和編譯器的端到端解決方案的問題。
原文連結:
https://www.zdnet.com/article/how-facebook-scales-ai/