# Naive Reverse Grouper

将批处理的样本拆分为独立样本。当用户提到样本拆分、拆分批次、批处理展开、反向分组等需求时使用此skill。...

- Repository: https://github.com/cas-bigdatalab/piflow (541 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-10-23
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add cas-bigdatalab/piflow --skill naive_reverse_grouper -g -a claude-code -y`
Codex: `npx skills add cas-bigdatalab/piflow --skill naive_reverse_grouper -g -a codex -y`
Cursor: `npx skills add cas-bigdatalab/piflow --skill naive_reverse_grouper -g -a cursor -y`
Gemini CLI: `npx skills add cas-bigdatalab/piflow --skill naive_reverse_grouper -g -a gemini-cli -y`

## Description

将批处理的样本拆分为独立样本。当用户提到样本拆分、拆分批次、批处理展开、反向分组等需求时使用此skill。 即使用户没有明确说出"拆分"，只要任务涉及将批处理数据（字段值为数组）展开为独立样本，就应该使用此skill。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Naive Reverse Grouper

将批处理的样本拆分为独立样本。

本SKILL使用依赖data_juicer，请在调用前安装好python环境并安装data_juicer，你可用同以下指令进行安装：
```
pip install py-data-juicer
```

## 核心参数

| 参数 | 类型 | 必填 | 默认值 | 说明 |
|------|------|------|--------|------|
| input_path | string | 是 | - | 输入JSON文件路径 |
| output_path | string | 是 | - | 输出JSON文件路径 |
| export_path | string | 否 | - | 可选，导出批次元数据到JSONL文件 |

## 使用方法

```bash
python scripts/run_naive_reverse_grouper.py --input_path <input_path> --output_path <output_path> [--export_path <path>]
```

## 实现原理

参照测试代码 test_naive_reverse_grouper.py 中的 `_run_helper` 函数：

```python
# 1. 将批次化样本列表转换为Dataset
dataset = Dataset.from_list(samples)

# 2. 初始化算子并执行（无参数，或传入 export_path）
op = NaiveReverseGrouper()
new_dataset = op.run(dataset)
```

## 输入输出格式

### 输入格式 (JSON数组，字段值为数组)

```json
[
  {"text": ["Sample 1", "Sample 2", "Sample 3"]}
]
```

### 输出格式 (JSON数组，拆分为独立样本)

```json
[
  {"text": "Sample 1"},
  {"text": "Sample 2"},
  {"text": "Sample 3"}
]
```

## 示例

### 示例1：基本拆分

```bash
python scripts/run_naive_reverse_grouper.py --input_path example_input.json --output_path output.json
```

### 示例2：同时导出批次元数据

```bash
python scripts/run_naive_reverse_grouper.py --input_path example_input.json --output_path output.json --export_path batch_meta.jsonl
```

## 注意事项

- 此算子无需额外参数（export_path可选）
- 输入样本的字段值为数组形式
- 输出会将数组展开为多个独立样本
- 如果传入 export_path，会将批次元数据导出为 JSONL 格式

