Netflix開源內(nèi)部Python工具Metaflow,部署效率提升17倍
Netflix經(jīng)常以開放源代碼的形式向公眾發(fā)布其內(nèi)部工具。近日,Netflix的數(shù)據(jù)科學(xué)團隊已將其Metaflow Python庫開源,該庫是“以人為中心”的機器學(xué)習(xí)基礎(chǔ)架構(gòu)的關(guān)鍵部分,用于構(gòu)建和部署數(shù)據(jù)科學(xué)工作流。
Metaflow與Apache Airflow和Luigi等項目有許多相似的概念,開發(fā)人員可能對此有一定的經(jīng)驗。例如,使用Metaflow,你可以創(chuàng)建和執(zhí)行DAGs(有向無環(huán)圖)。
代碼結(jié)構(gòu)
其中一個關(guān)鍵特性是Metaflow自動將所有代碼、數(shù)據(jù)和依賴項快照到Amazon S3的能力。有了這個功能特性,使Metaflow能夠?qū)崿F(xiàn)自動版本控制和實驗跟蹤,因此開發(fā)人員可以安全地檢查和恢復(fù)Metaflow的執(zhí)行情況。
外部Python庫
Python已經(jīng)成為數(shù)據(jù)科學(xué)的標(biāo)準(zhǔn)語言之一,因此它有許多常用的庫。Metaflow允許導(dǎo)入外部庫,并支持所有公共機器學(xué)習(xí)框架。
因此,你可以使用所有你熟悉的數(shù)據(jù)科學(xué)庫,例如PyTorch和TensorFlow。只需使用慣用的Python代碼編寫模型。
此外,Netflix在2月份的一場演講中透露,Metaflow已經(jīng)將Netflix機器學(xué)習(xí)項目的部署時間中位數(shù)從四個月縮短到了僅僅7天,部署效率大大提高
AWS集成
多年來,Netflix一直是使用AWS的最大企業(yè)之一,因此Metaflow與眾多AWS服務(wù)集成在一起就不足為奇了,從文檔中可以看到,這些是當(dāng)前的集成(將來還會有兩個集成):
借助內(nèi)置的強大S3客戶端,Metaflow可以加載高達(dá)10Gbps的數(shù)據(jù)。AWS上Metaflow 的文檔地址:https://docs.metaflow.org/metaflow-on-aws/metaflow-on-aws
Metaflow還與基于AWS容器的計算平臺Batch集成。 Netflix 認(rèn)為,AWS上的Metaflow可以讓開發(fā)人員提高在筆記本電腦上進行開發(fā)的速度,同時可以在云中使用更深的計算資源。 Metaflow使得不必在每種狀態(tài)下都對代碼或庫進行更改,從而使在本地和遠(yuǎn)程執(zhí)行模式之間輕松地來回移動,這反過來又使故障排除更加容易。
Metaflow的源代碼可在GitHub上獲得,目前已經(jīng)在Github上標(biāo)星1.4K,76個Fork(Github地址:https://github.com/Netflix/metaflow)