一個軟件工程框架以開始啟動您的機器學習項目

可以在此處訪問完整的文檔。
您可以使用pip從PYPI安裝LOLPOP:
pip install lolpop如果您在開發模式下工作,則可以克隆此倉庫,並通過cd安裝LOLPOP到此目錄並執行:
poetry install 歡迎來到lolpop!
LOLPOP是用於機器學習工作流的軟件工程框架。
總體目標是提供一個可以幫助統一數據科學和機器學習工程團隊的框架。我們相信,通過建立一個標準的機器學習工作框架,團隊可以更加干淨地協作並提高生產力。
良好的系統設計對於軟件開發至關重要,LOLPOP試圖遵循以下原則。良好的系統設計將包含:
此外,在構建LOLPOP時,請記住以下目標:
LOLPOP具有相對平坦的概念模型,其中包含三個主要資源以了解:
train_model 。此方法將知道如何獲取傳入的數據,訓練模型或一組模型,這些模型並返回獲勝模型。此方法將在幾個組件中起作用,例如功能編碼器,模型培訓師,超參數調諧器,元數據跟踪器和資源版本控制系統。組件,管道和跑步者俱有許多共同的特徵。參考組件,管道和跑步者集時,我們會使用術語集成。
組件,管道和跑步者之間也有自然的等級結構:
LOLPOP具有直接的開發工作流程。我們希望所有人都能使用令人愉快的使用!
首先:編寫自己的組件或使用預製的組件:
from lolpop . comonent import BaseComponent
from catboost import CatBoostRegressor , CatBoostClassifier
class CatboostModelTrainer ( BaseComponent ):
def __init__ ( problem_type = None , params = {}, * args , ** kwargs ):
super (). __init__ ( * args , ** kwargs )
if problem_type == "classification" :
self . model = CatBoostClassifier ( ** params )
elif problem_type == "regression" :
self . model = CatBoostRegressor ( ** params )
def fit ( self , data , * args , ** kwargs ):
self . model . fit ( data [ "X_train" ], data [ "y_train" ])
return self . model
... 然後,可以將組件在管道和跑步者工作流程中利用。這些工作流程不是參考特定組件類,而是設計用於使用通用組件類型,如下所示。
from lolpop . pipeline import BasePipeline
class MyTrainingPipeline ( BasePipeline ):
...
def train_model ( self , data , * args , ** kwargs ):
model = self . model_trainer . train_model ( data )
return model
...然後,我們配置了在管道和跑步者配置中使用的類,如下所示:
# runner config
pipeline :
train : MyTrainingPipeline
...
# pipelines config
train :
component :
model_trainer : CatBoostTrainer
model_trainer :
config :
training_params :
iterations : 2
depth : 2
learning_rate : 1
loss_function : RMSE
...
最後,可以通過Python代碼調用工作流程:
from lolpop . extension import MyRunner
config_file = "/path/to/dev.yaml"
runner = MyRunner ( conf = config_file )
...
model = runner . train . train_model ( data )
... 或通過Lolpop CLI:
lolpop run workflow MyRunner --config-file /path/to/dev.yaml如果您有興趣構建自己的工作流,最好研究一些提供的示例,並研究擴展框架
長期以來,我們一直認為,ML生態系統缺乏一種工具來充當人們為成功執行生產用例所需要做的所有各種事情之間的膠水。 LOLPOP試圖彌合這一差距 - 成為那種膠水。有關LOLPOP背後靈感的更多信息,請閱讀我們的發布博客。
有時,了解沒有什麼工具才能充分了解它是什麼,這是有幫助的。描述“機器學習工作流的軟件工程框架”可能有點鈍,因此了解以下內容可能會有所幫助:
LOLPOP不是編排工具。實際上,您可能應該使用編目來運行使用LOLPOP創建的代碼。您應該很容易地將您選擇的編排工具與LOLPOP集成。
LOLPOP不是管道工具。那裡有幾種好的管道工具,您甚至可能想將它們與LOLPOP一起使用。例如,對於那些傾向於的人,我們有一個與LOLPOP一起使用Metaflow的示例。
LOLPOP不是元數據跟踪器,訓練平台,實驗鏟球等。我們認為您應該擁有並使用這些。 LOLPOP將很樂意將它們作為組件,並讓您將它們構建到工作流程中。
LOLPOP實際上什麼也沒做,它主要幫助您更快地編寫ML工作流。您使用哪種工具來做到這一點尚未公開。
QuickStart:轉到此處獲取快速入門指南。了解如何安裝LOLPOP並將其啟動並運行。運行您的第一個工作流程,跳舞和慶祝!
用戶指南:轉到這裡學習如何與LOLPOP合作。
集成:在此處了解您可以用來構建自己的工作流程的預製跑步者,管道和組件。
擴展:在這裡學習開始構建自己的跑步者,管道和組件所需要做的一切。
CLI:在這裡學習如何使用LOLPOP命令行接口。
示例:在此處找到一些使用LOLPOP的示例。
資源:在這裡找出如何與LOLPOP團隊取得聯繫,為LOLPOP做出貢獻。