­

Netflix開源Metaflow Python庫

  • 2019 年 12 月 17 日
  • 筆記

編輯 | KING 發佈 | ATYUN訂閱號

Netflix的數據科學團隊已將其Metaflow Python庫開源,該庫是「以人為中心」的機器學習基礎架構的關鍵部分,用於構建和部署數據科學工作流。

這家視頻流媒體巨頭在其業務的各個方面都使用了機器學習,從劇本分析到優化製作時間表、預測客戶流失、定價、翻譯以及優化其龐大的內容分髮網絡等等。

根據Netflix軟件工程師的說法,Metaflow的建立是為了幫助提高數據科學家的生產率,這些科學家喜歡通過Python代碼表達業務邏輯,但又不想花太多時間思考諸如對象層次結構、打包問題,或處理與工作無關的晦澀的API。

Metaflow背後的想法是使Netflix數據科學家能夠及早查看原模型是否會在生產中失敗,從而使他們能夠解決所有問題並理想地加快部署時間。Netflix在2月份透露,Metaflow已將部署時間從四個月縮短到了僅僅7天。

Netflix提供了其Python庫的簡要描述:「 Metaflow可幫助您設計工作流程,大規模運行它並將其部署到生產中。它會自動對所有實驗和數據進行版本控制和跟蹤。它允許您以便在筆記本中輕鬆檢查結果。」

它也可以與流行的Python數據科學庫一起使用,包括PyTorch,Tensorflow和SciKit Learn。

眾所周知,Netflix是亞馬遜雲服務(AWS)的最大用戶之一,因此Metaflow與眾多AWS服務集成在一起就不足為奇了,其中包括對Amazon S3中所有代碼和數據進行快照的功能,Netflix將其用作它的數據庫。此功能應幫助用戶使用AWS的存儲,計算和機器學習服務快速擴展模型。

在S3中對代碼進行快照的功能使Metaflow能夠實現自動版本控制和實驗跟蹤,因此開發人員可以安全地檢查和恢復Metaflow的執行情況。

Metaflow還捆綁了一個高性能S3客戶端,它可以加載高達10Gbps的數據。客戶可以讓任何組織的數據科學家實現Netflix數據科學家在過去幾年中所做的事情。Netflix在四月份透露,它使用Metaflow來「突破Python的局限性」,從而使其能夠使用並行和優化的Python代碼來以10Gbps的速度獲取數據,處理內存中的數億個數據點,並協調數以萬計的計算CPU核數。

Netflix軟件工程師今天說:「該客戶在我們的用戶中受到了廣泛歡迎,他們現在可以將數據加載到他們的工作流中,速度比以前快了一個數量級,從而實現了更快的迭代周期。」

Metaflow還與基於AWS容器的計算平台Batch集成。Netflix 認為,AWS上的Metaflow可以讓開發人員提高在筆記本電腦上進行開發的速度,同時可以在雲中使用更深的計算資源。 Metaflow使得不必在每種狀態下都對代碼或庫進行更改,從而使在本地和遠程執行模式之間輕鬆地來回移動,這反過來又使故障排除更加容易。