一个软件工程框架以开始启动您的机器学习项目

可以在此处访问完整的文档。
您可以使用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做出贡献。