偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

機器學(xué)習(xí)任務(wù)編排工具比較

人工智能 機器學(xué)習(xí)
最近,出現(xiàn)了用于編排任務(wù)和數(shù)據(jù)工作流的新工具(有時稱為" MLOps")。 這些工具的數(shù)量眾多,因此很難選擇要使用的工具,也難以理解它們的重疊方式,因此我們決定對一些最受歡迎的工具進行比較。

[[349374]]

任務(wù)編排工具和工作流程

最近,出現(xiàn)了用于編排任務(wù)和數(shù)據(jù)工作流的新工具(有時稱為" MLOps")。 這些工具的數(shù)量眾多,因此很難選擇要使用的工具,也難以理解它們的重疊方式,因此我們決定對一些最受歡迎的工具進行比較。

機器學(xué)習(xí)任務(wù)編排工具比較

> Airflow is the most popular solution, followed by Luigi. There are newer contenders too, and they'

總體而言,Apache Airflow既是最受歡迎的工具,也是功能最廣泛的工具,但是Luigi是類似的工具,上手起來比較簡單。 Argo是團隊已經(jīng)在使用Kubernetes時經(jīng)常使用的一種,而Kubeflow和MLFlow滿足了與部署機器學(xué)習(xí)模型和跟蹤實驗有關(guān)的更多利基要求。

在進行詳細比較之前,了解一些與任務(wù)編排相關(guān)的更廣泛的概念很有用。

什么是任務(wù)編排,為什么有用?

較小的團隊通常從手動管理任務(wù)開始,例如清理數(shù)據(jù),訓(xùn)練機器學(xué)習(xí)模型,跟蹤結(jié)果以及將模型部署到生產(chǎn)服務(wù)器。 隨著團隊規(guī)模和解決方案的增長,重復(fù)步驟的數(shù)量也隨之增加。 可靠地執(zhí)行這些任務(wù)也變得更加重要。

這些任務(wù)相互依賴的復(fù)雜方式也在增加。 剛開始時,您可能需要每周或每月一次運行一系列任務(wù)。 這些任務(wù)需要按特定順序運行。 隨著您的成長,該管道變成具有動態(tài)分支的網(wǎng)絡(luò)。 在某些情況下,某些任務(wù)會引發(fā)其他任務(wù),而這些可能取決于首先運行的其他幾個任務(wù)。

可以將該網(wǎng)絡(luò)建模為DAG(有向無環(huán)圖),該模型對每個任務(wù)及其之間的依賴關(guān)系進行建模。

機器學(xué)習(xí)任務(wù)編排工具比較

> A pipeline is a limited DAG where each task has one upstream and one downstream dependency at most

工作流程編排工具允許您通過指定所有任務(wù)以及它們?nèi)绾蜗嗷ヒ蕾噥矶xDAG。 然后,該工具按正確的順序按計劃執(zhí)行這些任務(wù),然后在運行下一個任務(wù)之前重試任何失敗的任務(wù)。 它還會監(jiān)視進度并在發(fā)生故障時通知您的團隊。

CI / CD工具(例如Jenkins)通常用于自動測試和部署代碼,這些工具與任務(wù)編排工具之間有很強的相似性-但也有重要的區(qū)別。 盡管從理論上講,您可以使用這些CI / CD工具來編排動態(tài)的,相互鏈接的任務(wù),但在一定程度的復(fù)雜性下,您會發(fā)現(xiàn)改用Apache Airflow等更通用的工具會更容易。

總體而言,任何業(yè)務(wù)流程工具的重點都是確保集中,可重復(fù),可重現(xiàn)和高效的工作流程:虛擬命令中心,用于您的所有自動化任務(wù)。 考慮到這種情況,讓我們看看一些最流行的工作流程工具是如何疊加的。

告訴我使用哪一個

您可能應(yīng)該使用:

  • Apache Airflow如果您需要功能最全,最成熟的工具,則可以花時間來學(xué)習(xí)它的工作原理,設(shè)置和維護。
  • Luigi,如果您需要比Airflow更輕松的學(xué)習(xí)方法。 它具有較少的功能,但更容易上手。
  • Argo,如果您已經(jīng)對Kubernetes生態(tài)系統(tǒng)進行了深入投資,并希望將所有任務(wù)作為Pod進行管理,并在YAML(而不是Python)中定義它們。
  • 如果您想使用Kubernetes,但仍使用Python而不是YAML定義任務(wù),則使用KubeFlow。
  • MLFlow,如果您更關(guān)心使用MLFlow的預(yù)定義模式來跟蹤實驗或跟蹤和部署模型,而不是尋找能夠適應(yīng)現(xiàn)有自定義工作流程的工具。

比較表

機器學(xué)習(xí)任務(wù)編排工具比較

> (Source: Author) – For more Machine Learning Tips — Get our weekly newsletter

為了快速瀏覽,我們比較了以下方面的庫:

  • 成熟度:基于項目的年齡以及修復(fù)和提交的次數(shù);
  • 受歡迎程度:基于采用率和GitHub星級;
  • 簡潔性:基于易于注冊和采用;
  • 廣度:基于每個項目的專業(yè)性與適應(yīng)性;
  • 語言:基于您與工具互動的主要方式。

這些不是嚴格的基準或科學(xué)基準,但目的是讓您快速了解這些工具的重疊方式以及它們之間的區(qū)別。 有關(guān)更多詳細信息,請參見下面的正面對比。

Luigi 對比 Airflow

Luigi和Airflow解決了類似的問題,但是Luigi要簡單得多。 它包含在一個組件中,而Airflow有多個模塊,可以用不同的方式進行配置。 氣流具有更大的社區(qū)和一些其他功能,但學(xué)習(xí)曲線卻陡峭得多。 具體來說,Airflow在計劃方面要強大得多,它提供了日歷UI,可幫助您設(shè)置任務(wù)應(yīng)在何時運行。 使用Luigi,您需要編寫更多的自定義代碼以按計劃運行任務(wù)。

兩種工具都使用Python和DAG定義任務(wù)和依賴項。 如果您的團隊較小并且需要快速上手,請使用Luigi。 如果您的團隊規(guī)模較大,可以使用Airflow,一旦您掌握了學(xué)習(xí)曲線,就可以從最初的生產(chǎn)力損失中獲得更大的動力。

Luigi 對比 Argo

Argo建立在Kubernetes之上,并且每個任務(wù)都作為單獨的Kubernetes容器運行。 如果您已經(jīng)在大多數(shù)基礎(chǔ)架構(gòu)中使用Kubernetes,這可能會很方便,但如果您沒有使用它,則會增加復(fù)雜性。 Luigi是一個Python庫,可以與Python包管理工具(如pip和conda)一起安裝。 Argo是Kubernetes擴展,使用Kubernetes安裝。 雖然這兩種工具都可以將任務(wù)定義為DAG,但使用Luigi時,您將使用Python編寫這些定義,而使用Argo時,您將使用YAML。

如果您已經(jīng)對Kubernetes進行了投資,并且知道所有任務(wù)都是吊艙,請使用Argo。 如果要編寫DAG定義的開發(fā)人員對YAML比對Python更滿意,則還應(yīng)該考慮一下。 如果您不是在Kubernetes上運行并且在團隊中擁有Python專業(yè)知識,請使用Luigi。

Luigi 對比 Kubeflow

Luigi是用于常規(guī)任務(wù)編排的基于Python的庫,而Kubeflow是專門用于機器學(xué)習(xí)工作流的基于Kubernetes的工具。 Luigi是為協(xié)調(diào)一般任務(wù)而構(gòu)建的,而Kubeflow具有用于實驗跟蹤,超參數(shù)優(yōu)化和為Jupyter筆記本服務(wù)的預(yù)構(gòu)建模式。 Kubeflow由兩個不同的組件組成:Kubeflow和Kubeflow管道。 后者專注于模型部署和CI / CD,并且可以獨立于主要Kubeflow功能使用。

如果您需要協(xié)調(diào)從數(shù)據(jù)清理到模型部署的各種不同任務(wù),請使用Luigi。 如果您已經(jīng)使用Kubernetes并希望安排常見的機器學(xué)習(xí)任務(wù)(例如實驗跟蹤和模型訓(xùn)練),請使用Kubeflow。

Luigi 對比 MLFlow

Luigi是一個通用的任務(wù)編排系統(tǒng),而MLFlow是一個更專業(yè)的工具,可以幫助管理和跟蹤您的機器學(xué)習(xí)生命周期和實驗。 您可以使用Luigi定義常規(guī)任務(wù)和依賴項(例如訓(xùn)練和部署模型),但是可以將MLFlow直接導(dǎo)入到機器學(xué)習(xí)代碼中,并使用其助手功能來記錄信息(例如您正在使用的參數(shù))并 工件(例如訓(xùn)練有素的模型)。 您還可以將MLFlow用作命令行工具,以服務(wù)使用通用工具(例如scikit-learn)構(gòu)建的模型或?qū)⑵洳渴鸬酵ㄓ闷脚_(例如AzureML或Amazon SageMaker)。

Airflow 對比 Argo

Argo和Airflow都允許您將任務(wù)定義為DAG,但是在Airflow中,您可以使用Python進行此操作,而在Argo中,您可以使用YAML。 Argo作為Kubernetes窗格運行每個任務(wù),而Airflow則生活在Python生態(tài)系統(tǒng)中。 在選擇Argo之前,Canva評估了這兩個選項,您可以觀看此演講以獲取詳細的比較和評估。

如果您想要更成熟的工具并且不關(guān)心Kubernetes,請使用Airflow。 如果您已經(jīng)對Kubernetes進行了投資,并且想要運行以不同堆棧編寫的各種任務(wù),請使用Argo。

Airflow 對比 Kubeflow

Airflow是一個通用的任務(wù)編排平臺,而Kubeflow則特別專注于機器學(xué)習(xí)任務(wù),例如實驗跟蹤。 兩種工具都允許您使用Python定義任務(wù),但是Kubeflow在Kubernetes上運行任務(wù)。 Kubeflow分為Kubeflow和Kubeflow管道:后一個組件允許您指定DAG,但它比常規(guī)任務(wù)更著重于部署和模型服務(wù)。

如果您需要一個成熟的,廣泛的生態(tài)系統(tǒng)來執(zhí)行各種不同的任務(wù),請使用Airflow。 如果您已經(jīng)使用Kubernetes,并希望使用更多現(xiàn)成的機器學(xué)習(xí)解決方案模式,請使用Kubeflow。

Airflow 對比 MLFlow

Airflow是一個通用的任務(wù)編排平臺,而MLFlow是專門為優(yōu)化機器學(xué)習(xí)生命周期而構(gòu)建的。 這意味著MLFlow具有運行和跟蹤實驗以及訓(xùn)練和部署機器學(xué)習(xí)模型的功能,而Airflow具有廣泛的用例,您可以使用它來運行任何任務(wù)集。 Airflow是一組用于管理和計劃任務(wù)的組件和插件。 MLFlow是一個Python庫,您可以將其導(dǎo)入到現(xiàn)有的機器學(xué)習(xí)代碼中,還可以使用命令行工具來將scikit-learn編寫的機器學(xué)習(xí)模型訓(xùn)練和部署到Amazon SageMaker或AzureML。

如果您想以一種開明的,開箱即用的方式來管理機器學(xué)習(xí)實驗和部署,請使用MLFlow。 如果您有更復(fù)雜的要求并且想要更好地控制如何管理機器學(xué)習(xí)生命周期,請使用Airflow。

Argo 對比 Kubeflow

Kubeflow的某些部分(例如Kubeflow管道)建立在Argo之上,但是Argo的建立是為了編排任何任務(wù),而Kubeflow則專注于特定于機器學(xué)習(xí)的任務(wù),例如實驗跟蹤,超參數(shù)調(diào)整和模型部署。 Kubeflow管道是Kubeflow的一個獨立組件,專注于模型部署和CI / CD,并且可以獨立于Kubeflow的其他功能使用。 這兩種工具都依賴Kubernetes,如果您已經(jīng)采用了它,那么可能會讓您更感興趣。 使用Argo,您可以使用YAML定義任務(wù),而Kubeflow允許您使用Python接口。

如果您需要管理作為Kubernetes Pod運行的常規(guī)任務(wù)的DAG,請使用Argo。 如果您想要更專注于機器學(xué)習(xí)解決方案的工具,請使用Kubeflow。

Argo 對比 MLFlow

Argo是一個任務(wù)編排工具,可讓您將任務(wù)定義為Kubernetes Pod,并將其作為DAG運行(使用YAML定義)。 MLFlow是一種更加專業(yè)的工具,它不允許您定義任意任務(wù)或它們之間的依賴關(guān)系。 相反,您可以將MLFlow作為Python庫導(dǎo)入到現(xiàn)有的(Python)機器學(xué)習(xí)代碼庫中,并使用其助手功能記錄工件和參數(shù),以幫助進行分析和實驗跟蹤。 您還可以使用MLFlow的命令行工具來訓(xùn)練scikit學(xué)習(xí)模型,并將其部署到Amazon Sagemaker或Azure ML,以及管理Jupyter筆記本。

如果您需要管理常規(guī)任務(wù)并想在Kubernetes上運行它們,請使用Argo。 如果您希望采用一種自以為是的方法來使用托管云平臺管理機器學(xué)習(xí)生命周期,請使用MLFlow。

Kubeflow 對比 MLFlow

與諸如Airflow或Luigi之類的通用任務(wù)編排平臺相比,Kubeflow和MLFlow都是更小的,更專業(yè)的工具。 Kubeflow依賴Kubernetes,而MLFlow是一個Python庫,可幫助您將實驗跟蹤添加到現(xiàn)有的機器學(xué)習(xí)代碼中。 Kubeflow允許您構(gòu)建完整的DAG,其中每個步驟都是Kubernetes窗格,但是MLFlow具有內(nèi)置功能,可以將scikit學(xué)習(xí)模型部署到Amazon Sagemaker或Azure ML。

 

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2016-11-15 15:02:00

機器學(xué)習(xí)算法

2022-04-25 15:05:33

機器學(xué)習(xí)人工智能數(shù)據(jù)集

2023-09-04 15:09:03

容器編排工具KubernetesDocker

2020-06-12 08:19:21

機器學(xué)習(xí)技術(shù)工具

2020-10-18 07:19:47

低代碼機器學(xué)習(xí)低代碼工具

2017-12-26 10:54:22

機器學(xué)習(xí)類型任務(wù)

2020-03-30 21:40:35

容器編排工具

2021-05-12 22:07:43

并發(fā)編排任務(wù)

2020-05-17 14:37:37

機器學(xué)習(xí)技術(shù)架構(gòu)

2020-07-28 08:06:24

機器學(xué)習(xí)技術(shù)人工智能

2024-05-16 17:58:30

線程任務(wù)線程通訊線程池

2020-08-03 07:59:12

機器學(xué)習(xí)開發(fā)數(shù)據(jù)

2019-05-17 16:13:25

機器學(xué)習(xí)SQLFlow螞蟻金服

2024-02-22 15:45:56

2022-11-10 16:00:21

Python機器學(xué)習(xí)編程語言

2015-12-28 11:17:30

Java機器學(xué)習(xí)工具

2022-08-08 15:02:42

機器學(xué)習(xí)wandb分析工具

2024-09-09 15:09:30

2020-10-12 08:05:09

機器學(xué)習(xí)數(shù)據(jù)科學(xué)ML

2020-04-26 10:32:00

機器學(xué)習(xí)技術(shù)工具
點贊
收藏

51CTO技術(shù)棧公眾號