加工算子介绍
什么是算子
算子是一种独立且可复用的逻辑单元,用于实现特定功能,并且能够通过组合构建实现更为复杂的业务功能。它的核心思想是:将特定的逻辑或功能封装成一个独立的模块,通过定义清晰的输入和输出接口,使其能够被轻松调用和组合,从而构建出更高级、更复杂的业务流程。
数据工程中的算子是为了实现特定功能而封装出的独立模块,整体上分为预置加工算子和自定义加工算子。
- 预置加工算子是数据工程平台已有的加工算子,预置加工算子按照模态主要分为文本类加工算子、视频类加工算子、图片类加工算子、气象类加工算子、音频类加工算子、预测类加工算子和各个模态都通用的通用类算子;各个模态的算子按照加工实现的功能类别分类又可细分为数据提取类、数据转换类、数据过滤类、数据去重类、数据打标类、数据抽样类、数据拆分类、数据发布类和其他类。
- 自定义算子是用户创建自定义加工算子,以满足特定的数据处理需求和业务场景,用户可以根据实际情况灵活定义处理逻辑,进一步提升模型训练的效果和适应性。
数据加工算子为用户提供了多种数据操作能力,包括数据提取、过滤、转换、打标签等。这些算子能够帮助用户从海量数据中提取出有用信息,并进行深度加工,以生成高质量的训练数据。
算子结构
数据工程预置加工算子分为MRS算子和MA算子,其中MRS算子被打包在data-flow-engine-xxxxxxxx.tar.gz的算子包中,MA算子都是独立打包的tar包,预置算子包解压之后的目录结构如下:
假设算子包名称为sample_process.tar,算子包解压后目录结构:
+--- sample_process | +--- image # python算子依赖的镜像目录。当python算子包依赖镜像API时,必填。 | | +--- image1.tar # 用户镜像文件 1 | | +--- image2.tar # 用户镜像文件 2 | | +--- … # 其他镜像文件 | +--- program_package # python算子目录 | | +--- install.sh # 安装脚本,可选 | | +--- process.py # 算子代码,必填 | +--- manifest.yml # 算子中文配置文件 | +--- manifest_en.yml # 算子英文配置文件
其中image下存放python算子依赖的用户镜像包,program_package下存放python算子相关文件。当算子包依赖镜像时,算子内部通过框架传参args中的{image.key}_service_url参数获取对应依赖镜像的在线服务API。
自定义算子也是由算子执行脚本和配置文件组成,具体自定义加工算子的配置文件规范、开发规范和样例文件见自定义数据集加工算子。
算子版本管理
算子包名组成
MA算子包名由四部分组成,例如:video_clip-aarch64-1.1.1-20250722122144.tar:
- 算子ID:要求以英文字母开头,只包含数字,字母,下划线,长度大于0且不超过128,对应例中“video_clip”。
- 运行架构:CPU架构,当前仅支持aarch64,对应例中“aarch64”。
- 算子版本号:要求三位版本号,对应例中“1.1.1”。
- 时间戳:具体代表算子出包时间,对应例中“20250722122144.tar”,平台支持按照最新时间戳更新算子。
算子版本号改动规范
算子版本号有三位,例如:1.0.0,每一位的版本修改都是有指定规则,每一位最多是两位数字,第一位数据为数据工程平台适配版本号,由平台规范决定,第二位为特性升级,第三位为bug修复。
算子版本号作用
算子版本号和时间戳是任务调度执行算子时选择算子包的决定因素,起加工任务时会选取路径上对应算子ID中版本号最大和时间戳最新的算子包去执行。如果重启当前任务,在启动任务时选择图1中方式一(即立即启动),则重启任务执行时还是选择之前加工任务的算子包;如果选择方式二(即重新编辑),则执行重启任务时会选择当前时间最新版本且时间戳最新的算子包。
算子的标签
|
参数名称 |
类型 |
是否必填 |
描述 |
约束 |
样例 |
|---|---|---|---|---|---|
|
language |
Array of strings |
是 |
算子支持处理的数据语种列表,例如zh,en,其他。 |
单个字符串长度不超过32,超过部分自动截断。 填写国际语种简码。 |
[zh,en] |
|
format |
Array of strings |
是 |
算子支持处理的数据集文件格式后缀列表,例如json,csv,mp4等。 新增BACKFLOW,表述回流属性 |
单个字符串长度不超过32,超过部分自动截断。 |
[MP4,AVI] |
|
category |
string |
是 |
算子类别 |
单选,可选取值如下:
|
数据提取 |
|
modal |
Array of strings |
是 |
算子支持处理的数据模态列表 |
多选,可选取值如下:
|
[VIDEO] |
|
custom |
Array of strings |
否 |
用户自定义算子标签列表 |
单个字符串长度不超过32,超过部分自动截断。 |
[数据增强,预标注] |
|
industry |
Array of strings |
否 |
算子支持处理的行业列表 |
多选,可选取值如下:
|
[FINANCE] |
|
field |
Array of strings |
否 |
算子支持处理的领域列表 |
多选,可选取值如下:
|
[MULTIMODAL] |
|
task-category |
Array of strings |
否 |
算子支持处理的任务列表 |
多选,可选取值如下:
|
[MULTI_MODAL_UNDERSTANDING_PRETRAIN] |
