LinkedIn已實現了非常先進的體系結構,可大規模開發機器學習解決方案。
對於大多數組織而言,構建基礎結構來管理機器學習模型的生命週期仍然是一個挑戰。 儘管我們已經看到了機器/深度學習框架的巨大進步,但對於大多數開始機器學習之旅的團隊來說,大規模開發,部署和管理模型的架構最佳實踐仍然有些障礙。 為了掌握其中的一些架構最佳實踐,我們應該看看機器學習創新正在發生什麼。 那是在大型技術公司內部。 微軟,谷歌,Facebook,優步,LinkedIn和Netflix已經開發了一些市場上最先進的機器學習基礎設施。 今天,我想在LinkedIn上探索支持某些關鍵任務機器學習工作流程的架構。
LinkedIn是將機器學習應用於大規模場景多年的公司之一,但對該軟件巨頭使用的特定方法和技術知之甚少。 最近,LinkedIn工程團隊發佈了一系列博客文章,提供了有關其機器學習基礎結構和實踐的一些非常有趣的見解。 儘管許多情況都是特定於LinkedIn的,但是這些技術和最佳實踐適用於許多大規模的機器學習解決方案。
人與人之間的機器學習
LinkedIn機器學習架構最有趣的方面之一是他們如何利用人作為機器學習工作流程的一部分。 例如,假設一個場景發現了不同標題之間的關係,例如" 高級軟件工程師"或"首席開發人員"來改善搜索體驗。 LinkedIn使用人類分類學家來標記標題之間的關係,以便可以將它們用於機器學習模型(例如長時記憶網絡)中,以幫助發現標題之間的其他關係。 機器學習架構是LinkedIn知識圖的基礎。
大規模的機器學習基礎架構
LinkedIn機器學習基礎架構的核心是一個稱為Pro-ML的專有系統。 從概念上講,Pro-ML控制著機器學習模型從訓練到監視的整個生命週期。 為了擴展Pro-ML,LinkedIn建立了一個架構,該架構將其一些開源技術(例如Kafka或Samza)與基礎結構構建塊(例如Spark或Hadoop YARN)相結合。
儘管LinkedIn機器學習堆棧中使用的大多數技術都是眾所周知的,但還有一些新的貢獻值得進一步探索:
·Ambry:LinkedIn的Ambry是一個分佈式的不可變blob存儲系統,具有高可用性,易於擴展,經過優化,可以以高吞吐量和低延遲為大小從幾個KB到多個GB的不可變對象提供服務,並能夠從客戶端進行端到端流傳輸到存儲層,反之亦然。 該系統旨在跨多個數據中心在主動-主動設置下工作,並提供非常便宜的存儲。
·TonY:YARN上的TensorFlow(TonY)是一個框架,可在Apache Hadoop上本地運行TensorFlow。 TonY支持將單個節點或分佈式TensorFlow訓練作為Hadoop應用程序運行。
·PhotonML:PhotonML是基於Apache Spark的機器學習庫。 當前,Photon ML支持訓練不同類型的廣義線性模型(GLM)和廣義線性混合模型(GLMMs / GLMix模型):邏輯,線性和泊松。
Hadoop上的TensorFlow
上個月,LinkedIn工程團隊在YARN(TonY)框架上開源了其TensorFlow的第一版。 該版本的目標是使TensorFlow程序能夠在分佈式YARN群集上運行。 儘管TensorFlow工作流在諸如Apache Spark之類的基礎架構上得到廣泛支持,但YARN在很大程度上仍被機器學習社區所忽略。 一流的支持,可通過處理諸如資源協商和容器環境設置之類的任務在Hadoop上運行TensorFlow作業。
TonY的核心是使用TensorFlow程序並將其拆分為可以在YARN集群上執行的多個並行任務。 這樣做是在完全支持TensorFlow的計算圖的同時,這意味著TensorBoard之類的工具可以在TonY上使用,而無需進行任何修改。
TonY是對TensorFlow生態系統的有趣貢獻,可以改善TensorFlow應用程序大規模運行的體驗。 此外,TonY可以從YARN生態系統中可用的大量工具和庫中受益,從而為訓練和運行TensorFlow應用程序提供高度可擴展的運行時。
測試
LinkedIn運行著數以千計的併發機器學習模型,這些模型正在不斷髮展和版本化。 在這些情況下,開發健壯的測試方法對於優化運行時機器學習模型的性能至關重要。 就LinkedIn而言,工程團隊已將A / B測試作為其Pro-ML架構的一等公民,使機器學習工程師可以針對特定情況部署競爭算法並評估產生最佳結果的算法。
像LinkedIn這樣的互聯網巨頭站在大規模機器學習解決方案實施的最前沿,他們對這一主題的見解對於開始他們的機器學習之旅的公司來說具有不可思議的價值。 LinkedIn的工作清楚地表明,大規模開發機器學習是一項永無止境的練習,它將流行的開源庫和平臺與專有框架和方法相結合。
(本文翻譯自Jesus Rodriguez的文章《This is the Architecture Powering Machine Learning at LinkedIn》,參考:https://towardsdatascience.com/this-is-the-architecture-powering-machine-learning-at-linkedin-c8d8da29bbf1)
閱讀更多 聞數起舞 的文章