當前位置:
首頁 > 科技 > Netflix開源內部Python數據科學開發框架Metaflow

Netflix開源內部Python數據科學開發框架Metaflow

Netflix發布內部專為數據科學家設計,以人為本的數據科學應用開發框架Metaflow,除了可讓用戶靈活地進行模型開發之外,也與AWS服務良好集成,可快速訪問在S3上的數據,而數據科學家除了可自行開發演算法之外,也能結合使用AWS上的機器學習服務。

Metaflow框架已經在Netflix內部應用兩年,被拿來開發了數百個數據科學項目,案例包括應用於自然語言處理以及操作搜索等。

Metaflow來自機器學習基礎設施團隊,對內部數據科學家進行調查的結果。他們發現過去所提供的工具,已經足夠讓數據科學家創建出各種應用,但比起底層的架構,數據科學家更在意建模方法的自由度,包括模型的運行、特徵工程以及模型的開發,在許多情況下,數據科學家希望可以在生產中操作模型,以快速地進行調試或是迭代。

機器學習基礎設施團隊歸納數據科學家的需求,開發語言Python是他們的基本配備,是數據科學的通用語言,而且他們也希望以Python來表達邏輯想法,像在Jupyter Notebook編寫程序代碼的方式,另外,數據科學家也不在意對象的階層、封裝問題,或是與目標無關的API工作。

為此,機器學習基礎設施團隊開發了Metaflow,並將Metaflow設計成簡單的Python函數庫,數據科學家可以將工作流程表達為有向無環圖(Directed Acyclic Graph,DAG)。(下圖)機器學習開發流程的範例,該流程會訓練兩個版本的模型,並選用得分最高者。

Netflix提到,Metaflow充滿以人為本的細節,雖然Apache Airflow或Luigi等工具,也可以執行由任意Python程序代碼所構成的DAG,但是在Metaflow中,數據和模型是以普通的Python實例變數存儲,而且即便是在分散式運算平台上執行也沒問題。另外,在其他框架,將對象載入以及存儲交由用戶控制,也就是說,用戶需要決定保留與捨棄的內容,Metaflow則消除了這些決定的負擔。

而Metaflow本身就為雲計算設計,能夠彈性的使用雲計算運算以及存儲資源,由於Netflix長期為AWS的大用戶,因此Metaflow與AWS服務良好集成,包括可為Amazon S3中的所有程序代碼和數據自動產生快照,提供版本控制和實驗關注的解決方案。

Metaflow還捆綁了一個高性能S3客戶端,可快速地將數據載入到數據科學工作流中,快速進行開發迭代。而且除了數據科學家自己編寫的功能之外,也可以使用AWS機器學習服務Sagemaker,以取用各種模型的高性能實例,或是應用分散式訓練。

Metaflow良好地支持本地端開發,讓數據科學家像是撰寫Python腳本一樣,快速地在本地端計算機開發並進行測試。Netflix提到,通常最終數據科學工作流程開發結果,最終會寫入到表格中,由其他儀錶板取用,部分時候將最終模型部署成微服務,以進行即時的預測,甚至也會把該數據科學工作流程鏈結其他流程,成為大流程的一部分,而Metaflow可支持各式的生產部署。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 十輪網 的精彩文章:

Gartner:2023年全球自駕就緒車凈增長數估超過74萬輛