Skip to content

[Feat] Support explicit FusedOP that allows for the configuration and application of multiple operators in smaller, manageable batches #413

Closed
@yxdyc

Description

@yxdyc

Search before continuing 先搜索,再继续

  • I have searched the Data-Juicer issues and found no similar feature requests. 我已经搜索了 Data-Juicer 的 issue 列表但是没有发现类似的功能需求。

Description 描述

Currently, the Data-Juicer's recipe and default executor support processing only a sequence of operations, such as OP1 and OP2, over the entire dataset in a linear fashion:

dataset.process([OP1, OP2])

However, to facilitate more granular control and optimize resource management, particularly in scenarios requiring batch-wise sequential processing, the following approach is envisaged:

for data_batch in dataset.batch_iterator(batch_size):
      data_batch.process([OP1, OP2])

This method allows for the application of operators in smaller, manageable batches, potentially improving efficiency, reducing memory footprint and simplifying the code implementation.

To integrate this feature into the cfg.yaml configuration file, a special token, such as dj_batched_group_ops can be proposed. This token will enable users to specify batch processing parameters directly within the configuration, as illustrated below:

process:
  - clean_email_mapper:
  - clean_links_mapper:

-->

process:
  - FusedOP:
      - batch_size: 1  # or any desired batch size
      - clean_email_mapper:
      - clean_links_mapper:

Use case 使用场景

No response

Additional 额外信息

No response

Are you willing to submit a PR for this feature? 您是否乐意为此功能提交一个 PR?

  • Yes I'd like to help by submitting a PR! 是的!我愿意提供帮助并提交一个PR!

Metadata

Metadata

Labels

dj:opissues/PRs about some specific OPsenhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions