Rats Processors
项目描述
rats-processors
一个用于在高级API中创建和组合流水线的包,其中 处理器(类或未绑定方法)被映射到 流水线节点,节点端口 从 处理器 签名中推断出来,而 边 通过连接 节点端口 输入和输出而创建。这样定义的流水线是不可变对象,可以重复使用并组合成更大的流水线,从而促进可重用性。
示例
在您的Python项目或Jupyter笔记本中,您可以按如下方式组合流水线
from typing import NamedTuple
from pathlib import Path
from sklearn.base import BaseEstimator
import pandas as pd
from rats.processors import task, pipeline, Pipeline, PipelineContainer
class DataOut(NamedTuple):
data: pd.DataFrame
class ModelOut(NamedTuple):
model: BaseEstimator
class MyContainer(PipelineContainer):
@task
def load_data(self, fname: Path) -> DataOut:
return DataOut(data=pd.read_csv(fname))
@task
def train_model(self, data: pd.DataFrame) -> ModelOut:
return {"model": "trained"}
@pipeline
def my_pipeline(self) -> Pipeline:
load_data = self.load_data()
train_model = self.get(train_model)
return self.combine(
pipelines=[load_data, train_model],
dependencies=(train_model.inputs.data << load_data.outputs.data),
)
上述示例有助于模块化和将探索性代码从笔记本带到更持久的代码。
上述示例说明了几个重要的概念
rats.processors.PipelineContainer
:我们以模块化的方式连接代码,即一个容器组织并连接任务和流水线。rats.processors.ux.Pipeline
:表示计算图或操作的有向无环图(DAG)的数据结构。rats.processors.task
:一个用于定义计算任务的装饰器,我们称之为处理器,并将其注册到容器中。此方法的返回值是rats.processors.ux.Pipeline
,一个(单节点)管道。rats.processors.pipeline
:一个用于注册rats.processors.ux.Pipeline
的装饰器,它可以是由其他管道组合而成的,或者任何返回管道的方法。
请注意,要创建管道,您首先创建任务(处理器),然后将它们组合成更大的管道,例如MyContainer.load_data
和MyContainer.train_model
是由task
装饰器包装的处理器,而MyContainer.my_pipeline
是由pipeline
装饰器包装的管道。
要运行上述管道,您可以执行以下操作
from rats.apps import autoid, NotebookApp
app = NotebookApp()
app.add(MyContainer()) # add a container to the notebook app
p = app.get(autoid(MyContainer.my_pipeline)) # get a pipeline by its id
app.draw(p)
app.run(p, inputs={"fname": "data.csv"})
概念
概念 | 描述 |
---|---|
管道 | DAG组织计算任务 |
在运行环境中编排 | |
图形显示 | |
任务 | 计算过程的入口点 |
接受动态输入/输出 | |
组合 | 将任务和管道组合以绘制更复杂的DAG。 |
依赖关系分配 |
特性
特性 | |||||
---|---|---|---|---|---|
模块化 | 步骤变得独立; 即插即用 |
分布式 | 使用所需的资源(spark或GPU) | ||
基于图 | 可以在DAG上操作; 启用元管道 |
可重用 | 每个管道都是可共享的,允许协作 |
目标
- 灵活性:多个数据源;多个机器学习框架(pytorch,sklearn,...),等等。
- 可扩展性:数据和计算。
- 可用性:每个人都应该能够编写组件并共享它们。
- 可重复性:跟踪和重新创建结果。
项目详细信息
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码发行版
此版本没有可用的源代码发行版文件。请参阅生成发行版存档的教程。
构建发行版
rats_processors-0.1.3-py3-none-any.whl (95.6 kB 查看散列)