本讲主要介绍了隐语的组件标准、已有的组件能力以及进一步的自定义开发流程。经过本讲的学习,可以为将隐语集成到任意调度系统,基于Kusica/SecretPad进行二次开发,以及参与隐语开放标准共建建立基础。
一、隐语开放标准
隐语提出的适用于隐私计算应用的一系列协议的集合。目前包括数据,组件,节点执行,运行报告等协议。隐语生态各模块均遵守本标准。隐语生态中各模块之间的交互,都是依赖于隐语的开放标准。
1、数据标准
隐语中认为所有的数据都是分布式数据,即DistData(分为两部分,Public Data(Name、Type、Meta、system_info)和DataRef(ownership、uri))。
2、组件标准
包括组件定义ComponentDef,通过domain,name和version定位具体的组件。
3、节点执行标准
完整的执行协议框架,包含了input、storage、application、output。
4、运行报告
运行报告也是一种DistData,通常作为部分组件的输出,用户界面可以根据定义来渲染运行报告。从包含的信息可以看出,基本是参考了前端页面的组成。
二、隐语组件列表
如下图所示:
三、调用隐语组件
可以使用多种方式调用隐语组件,包括SecretFlow CLI/Lib(无需任何其他依赖)、Kuscia(简化数据同步和调度操作)、SecretPad(使用用户界面)。
四、新增隐语组件
在隐语中新增组件,主要有以下步骤:
1、新建文件,在 secretflow/component/ 目录下创建一个新的文件。
2、声明组件,使用 secretflow.component.component 创建一个组件类。
3、定义组件参数、属性和输入输出。
4、定义组件执行内容。
5、注册组件、将新增组件加入到secretflow.component.entry 的 ALL_COMPONENTS 中。
6、打包隐语镜像(更新组件列表及翻译,打包镜像),注册隐语镜像(更新隐语SecretPad平台组件列表,在Kuscia中注册自定义算法镜像)。
7、在隐语SecretPad平台上使用新组件。