Categories
程式開發

Netflix開源內部Python工具Metaflow:機器學習項目部署時間從四個月縮短至7天


2019年12月4日,Netflix數據科學團隊宣布其內部使用多年的Python庫Metaflow正式開源。 Metaflow是Netflix機器學習基礎架構的關鍵部件,主要用於加速數據科學工作流的構建和部署,Netflix希望通過開源Metaflow簡化機器學習項目從原型階段到生產階段的過程,進而提高數據科學家的工作效率。

Netflix開源內部Python工具Metaflow:機器學習項目部署時間從四個月縮短至7天 1

Netflix(官方中文名稱:網飛)是全球最大的視頻流媒體平台,在除中國大陸以外的所有國家和地區都提供視頻點播服務。這家視頻流媒體巨頭在其業務的各個方面都使用了機器學習,從劇本分析到優化製作時間表、預測客戶流失、視頻定價、視頻字幕翻譯以及優化其龐大的內容分發網絡,而其中有許多機器學習應用都由Metaflow提供支持。它是一個基於Python編寫的框架,可以使機器學習項目從原型階段到生產階段變得更加容易。在過去兩年中,Metaflow已在Netflix內部用於構建和管理從自然語言處理到運營研究的數百個數據科學項目。

Netflix開源內部Python工具Metaflow:機器學習項目部署時間從四個月縮短至7天 2

據Netflix內部調研發現,數據科學家喜歡使用Python代碼來實現業務邏輯,但不想花費太多時間思考諸如對象層次結構、封裝等問題,或處理各類晦澀的API。

因此,Metaflow想做的就是讓Netflix數據科學家能夠儘早查看原型模型是否會在生產環境中失敗,讓他們可以提前解決問題,並加快部署速度。 Netflix在2月份的一場演講中透露,Metaflow已經將Netflix機器學習項目的部署時間中位數從四個月縮短到了僅僅7天。

Netflix開源內部Python工具Metaflow:機器學習項目部署時間從四個月縮短至7天 3

Metaflow為機器學習項目整個流程提供了統一的API,數據科學家可以使用Metaflow設計自己的工作流程,大規模運行並將其部署到生產環境。它會自動對所有實驗和數據進行版本控制和跟踪,同時,Metaflow的UI能夠與Jupyter notebooks無縫集成。與其他Python工具類似,數據科學家可以在筆記本電腦上快速開發和測試代碼,如果工作流支持並行,Metaflow會自動利用開發PC上所有可用的CPU內核。

Metaflow也可以與當前主流的Python數據科學庫一起使用,包括PyTorch、Tensorflow和SciKit Learn。

想了解Metaflow所有功能的詳細介紹,可以查閱官方文檔

支持AWS服務無縫集成

多年來Netflix一直是Amazon Web Services(AWS)的最大用戶之一,因此,Metaflow支持與眾多AWS服務無縫集成也就不足為奇了。 Netflix軟件工程師表示,Metaflow是一個雲原生框架,能夠充分利用雲在存儲和計算上的彈性。

Metaflow支持對Amazon S3中所有代碼和數據的自動快照功能,可以幫助用戶使用AWS的存儲、計算和機器學習服務快速擴展模型,同時,這也使Metaflow能夠實現自動版本控制和實驗跟踪,無需任何人為干預,開發人員可以非常方便地檢查和恢復Metaflow的執行情況,這是所有生產級機器學習基礎架構的核心。

此外,Metaflow還綁定了一個高性能的S3客戶端,它可以加載高達10Gbps的數據,加快用戶的模型迭代周期。

Netflix開源內部Python工具Metaflow:機器學習項目部署時間從四個月縮短至7天 4

針對通用數據處理,Metaflow與基於AWS容器的計算平台Batch集成。開發者只需要在代碼中添加一行:@batch,就可以利用無限擴展的計算集群。對於機器學習模型的訓練,除了編寫自己的功能,用戶還可以選擇使用AWS Sagemaker,它提供了各種模型的高性能實現,其中許多支持分佈式訓練。

關於Metaflow與AWS集成的更多詳細信息,可以查看此頁面