跳转到主要内容

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_dataMyContainer.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。
依赖关系分配

特性

特性
模块化 步骤变得独立;
即插即用
modular 分布式 使用所需的资源(spark或GPU) graph-based
基于图 可以在DAG上操作;
启用元管道
graph-based 可重用 每个管道都是可共享的,允许协作 graph-based

目标

  • 灵活性:多个数据源;多个机器学习框架(pytorch,sklearn,...),等等。
  • 可扩展性:数据和计算。
  • 可用性:每个人都应该能够编写组件并共享它们。
  • 可重复性:跟踪和重新创建结果。

项目详细信息


发布历史 发布通知 | RSS源

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码发行版

此版本没有可用的源代码发行版文件。请参阅生成发行版存档的教程。

构建发行版

rats_processors-0.1.3-py3-none-any.whl (95.6 kB 查看散列)

上传时间 Python 3

支持者: