Meson,用于協(xié)調(diào)和調(diào)度Netflix推薦工作流的架構(gòu)

責(zé)任編輯:editor004

作者: Srini Penchikala

2016-07-12 12:10:17

摘自:INFOQ

一個典型的用于驅(qū)動視頻推薦的機(jī)器學(xué)習(xí)流水線包括如下步驟:用戶選取;特征生成;模型訓(xùn)練;模型驗證;模型發(fā)布。一旦某個執(zhí)行步驟已就緒可被調(diào)度,Meson調(diào)度器選取由Mesos提供的適用資源,并將任務(wù)發(fā)送給Mesos主節(jié)點。

Netflix力圖在人們未觀看視頻之前就預(yù)測他們想看的。為此Netflix每日運行多個機(jī)器學(xué)習(xí)(ML)工作流,這些流水線用于構(gòu)建、訓(xùn)練并驗證有助于視頻推薦的個性化推薦算法。Meson是一個工作流的協(xié)調(diào)和調(diào)度架構(gòu),它管理這些所有機(jī)器學(xué)習(xí)流水線的生命周期。

近期Netflix開發(fā)團(tuán)隊公開了Meson架構(gòu),并描述了它是如何作用于機(jī)器學(xué)習(xí)流水線的。Meson的目標(biāo)之一是當(dāng)允許工程師用自選的技術(shù)構(gòu)造流水線的每一步時,增進(jìn)整體算法實驗的速度、可行性和可重復(fù)性。

部分在Netflix的機(jī)器學(xué)習(xí)流水線中發(fā)揮了重要作用的技術(shù)包括:Spark MLlib、Python、 R 和Docker。

一個典型的用于驅(qū)動視頻推薦的機(jī)器學(xué)習(xí)流水線包括如下步驟:

用戶選??;特征生成;模型訓(xùn)練;模型驗證;模型發(fā)布。

在Netflix,用戶選取步驟通過Hive查詢實現(xiàn)了對用于分析的用戶隊列的選擇。數(shù)據(jù)清洗和準(zhǔn)備功能由Python腳本實現(xiàn),該腳本創(chuàng)建了兩套用戶,用于并行的兩條執(zhí)行路線。其中的一條執(zhí)行路線實現(xiàn)對全局模型的構(gòu)建和分析,其中使用了Apache Spark作為運算架構(gòu),以及HDFS作為臨時存儲。另一條執(zhí)行路線使用R語言構(gòu)建地區(qū)(國家)特定的模型,其中地區(qū)的數(shù)量依據(jù)為分析所選取的隊列而動態(tài)變化。

模型驗證步驟用Scala代碼實現(xiàn),。該步驟用于測試當(dāng)兩條執(zhí)行路徑匯聚時模型的穩(wěn)定性。整個過程重復(fù)直至模型達(dá)到穩(wěn)定。最終,新模型使用Docker容器技術(shù)發(fā)布,這樣的發(fā)布可由其它系統(tǒng)進(jìn)行調(diào)用。

為滿足機(jī)器學(xué)習(xí)工作流中的資源需求,Netflix團(tuán)隊在Meson中使用了諸如Apache Mesos這樣的資源管理工具。Mesos提供了對CPU、內(nèi)存、存儲及其它計算資源的任務(wù)隔離和抽象,并使用這些特性實現(xiàn)了Mesos任務(wù)的擴(kuò)展和容錯。

Meson中還包括調(diào)度器和執(zhí)行器組件。

Meson調(diào)度器: 該組件管理各個工作流的啟動、流控制和運行時間。Meson將內(nèi)存和CPU需求發(fā)送給Mesos,實現(xiàn)對Mesos實際的資源調(diào)度的代理。一旦某個執(zhí)行步驟已就緒可被調(diào)度,Meson調(diào)度器選取由Mesos提供的適用資源,并將任務(wù)發(fā)送給Mesos主節(jié)點。

Meson執(zhí)行器: 它是對Mesos執(zhí)行器的定制,允許開發(fā)團(tuán)隊去維護(hù)與Meson的通信通道。這樣架構(gòu)消息可被發(fā)送到Meson調(diào)度器,對于長時間運行的任務(wù)是十分有用的。Meson執(zhí)行器也允許用戶數(shù)據(jù)的傳遞。

Mesos在調(diào)度Meson任務(wù)時,它在下載了該任務(wù)所有的依賴后,在客戶節(jié)點上啟動一個Meson執(zhí)行器。當(dāng)核心任務(wù)被執(zhí)行時,執(zhí)行器還關(guān)注諸如心跳信息發(fā)送、任務(wù)完成比例、狀態(tài)消息等其它任務(wù)的情況。

Meson還提供了基于Scala的DSL,這允許創(chuàng)建用戶定制的工作流。Meson中還具有對原生Spark的支持,這允許在Meson中去監(jiān)控Spark任務(wù)的進(jìn)程進(jìn)度。Meson還具備功能去重做失敗的Spark過程,或殺掉執(zhí)行異常的Spark任務(wù)。

Netflix團(tuán)隊計劃在未來幾個月內(nèi)開源Meson,并構(gòu)建Meson相關(guān)的社區(qū)。

查看英文原文:Meson Workflow Orchestration and Scheduling Framework for Netflix Recommendations

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號