简介
Kedro 用来构建可复用,易维护,模块化的机器学习代码。相比于Notebook的超级灵活性,便于探索数据和算法, Kedro 定位于解决版本控制,可复用性,文档,单元测试,部署等工程方面的问题。
架构
Kedro定义了3个用户角色: Pipeline Developer, Extension Developer, Library User,主要由5个部分构成:project, starter, library, framework, extension
架构如下:
Pipeline Developer主要同project交互,一个project是约定好的目录结构,包括配置,数据和代码。project最初的内容由starter产生,project的代码定义了Pipeline需要使用的节点,每个节点其实是一个函数,通过注册函数的输入输出,Kedro 可以确定函数执行的依赖关系,创建出Pipeline, Kedro-Viz 一个扩展工具,可以可视化Pipeline。
Kedro 自带了一些常用starter, 也可以由Extension Developer提供定制。
library提供了加载配置的工具,数据访问接口定义,Pipeline接口定义,运行策略接口定义,Extension Developer可以实现这些接口,library也提供了常用的实现,这些实现会最终和代码一起打包供Library User使用。
framework是project和libray的接口, 并提供了命令行工具和挂钩的接口供Extension Developer扩展Kedro. project会通过framework来启动运行会话(Session),Session通过上下文(Context)和libray交互来执行project中注册的Pipeline(由节点(函数)和输入输出数据组成) , Pipeline的接口和数据的接口都是在libray中定义的。
工作流程
配置项目
执行后会进入交互式问答创建项目,基本就是起个名字。
kedro new