diff --git a/paddlemix/datacopilot/DataCopilot.md b/paddlemix/datacopilot/DataCopilot.md deleted file mode 100644 index 02282b40f..000000000 --- a/paddlemix/datacopilot/DataCopilot.md +++ /dev/null @@ -1,126 +0,0 @@ -# DataCopilot 使用教程 - -## 一、简介 - -**DataCopilot** 是 **PaddleMIX** 提供的多模态数据处理工具箱,旨在帮助开发者高效地进行数据预处理、增强和转换等操作。通过 **DataCopilot**,你可以以低代码量的方式实现数据的基本操作,从而加速模型训练和推理的过程。 - -## 二、安装与导入 - -首先,确保你已经安装了 **PaddleMIX**。如果尚未安装,请参考 **PaddleMIX** 的官方文档进行安装。 - -安装完成后,你可以通过以下方式导入 **DataCopilot**: - -```python -from paddlemix.datacopilot.core import MMDataset, SCHEMA -import paddlemix.datacopilot.ops as ops -``` - -## 三、基本操作 - -### 1. 加载数据 - -使用 `MMDataset.from_json` 方法从 JSON 文件中加载数据: - -```python -dataset = MMDataset.from_json('path/to/your/dataset.json') -``` - -### 2. 查看数据 - -使用 info 和 head 方法查看数据集的基本信息和前几个样本: - -```python -dataset.info() -dataset.head() -``` - -### 3. 数据切片 - -支持对数据集进行切片操作,返回一个新的 MMDataset 对象: - -```python -subset = dataset[:100] # 获取前100个样本 -``` - -### 4. 数据增强 - -使用 map 方法对数据集中的样本进行增强操作: - -```python -def augment_data(item): - # 定义你的数据增强逻辑 - pass - -augmented_dataset = dataset.map(augment_data, max_workers=8, progress=True) -``` - -### 5. 数据过滤 - -使用 filter 方法根据条件过滤数据集中的样本: - -```python -def is_valid_sample(item): - # 定义你的过滤条件 - return True or False - -filtered_dataset = dataset.filter(is_valid_sample).nonempty() # 返回过滤后的非空数据集 -``` - -### 6. 导出数据 - -使用 export_json 方法将处理后的数据集导出为 JSON 文件: - -```python -augmented_dataset.export_json('path/to/your/output_dataset.json') -``` - -## 四、高级操作 - -### 1. 自定义 Schema - -通过定义 SCHEMA 来指定数据集的字段和类型: - -```python -schema = SCHEMA( - image={'type': 'image', 'required': True}, - text={'type': 'str', 'required': True}, - label={'type': 'int', 'required': False} -) -``` -使用自定义 schema 加载数据 - -```python -custom_dataset = MMDataset.from_json('path/to/your/dataset.json', schema=schema) -``` - - -### 2. 批量处理 - -使用 batch 方法将数据集中的样本按批次处理,适用于需要批量操作的情况: - -```python -batch_size = 32 -batched_dataset = dataset.batch(batch_size) - -for batch in batched_dataset: - # 对每个批次进行处理 - pass -``` - -### 3. 数据采样 - -使用 shuffle 方法打乱数据集,或使用 sample 方法随机抽取样本: - -```python -shuffled_dataset = dataset.shuffle() -sampled_dataset = dataset.sample(10) # 随机抽取10个样本 -``` - -## 五、总结 - -**DataCopilot** 是 **PaddleMIX** 提供的一个强大且灵活的多模态数据处理工具箱。 -通过掌握其基本操作和高级功能,你可以高效地处理、增强和转换多模态数据,为后续的模型训练和推理提供有力支持。 - - - - diff --git a/paddlemix/datacopilot/readme.md b/paddlemix/datacopilot/readme.md index 40188be47..0668f5fda 100644 --- a/paddlemix/datacopilot/readme.md +++ b/paddlemix/datacopilot/readme.md @@ -9,11 +9,23 @@ +# DataCopilot 使用教程 -## 定位 +## 一、简介 +**DataCopilot** 是 **PaddleMIX** 提供的多模态数据处理工具箱,旨在帮助开发者高效地进行数据预处理、增强和转换等操作。通过 **DataCopilot**,你可以以低代码量的方式实现数据的基本操作,从而加速模型训练和推理的过程。 + +## 二、定位 DataCopilot是PaddleMIX 2.0版本新推出的多模态数据处理工具箱,理念是把数据作为多模态算法的一部分参与迭代的全流程,让开发者根据特定任务以低代码量实现数据的基本操作。 -## 核心概念 +## 三、安装与导入 +首先,确保你已经安装了 **PaddleMIX**。如果尚未安装,请参考 **PaddleMIX** 的官方文档进行安装。 +安装完成后,你可以通过以下方式导入 **DataCopilot**: +```python +from paddlemix.datacopilot.core import MMDataset, SCHEMA +import paddlemix.datacopilot.ops as ops +``` + +## 四、核心概念 工具核心概念包括Schema和Dataset。Schema用于定义多模态数据组织结构和字段名字。MMDataset作为数据操作的核心类,为存储,查看,转换,生成等操作的基本对象。 ### SCHEMA @@ -66,7 +78,86 @@ def info(dataset: MMDataset) -> None: ... ``` -## 使用案例 +## 五、基本操作 +### 1. 加载数据 +使用 `MMDataset.from_json` 方法从 JSON 文件中加载数据: +```python +dataset = MMDataset.from_json('path/to/your/dataset.json') +``` + +### 2. 查看数据 +使用 info 和 head 方法查看数据集的基本信息和前几个样本: +```python +dataset.info() +dataset.head() +``` + +### 3. 数据切片 +支持对数据集进行切片操作,返回一个新的 MMDataset 对象: +```python +subset = dataset[:100] # 获取前100个样本 +``` + +### 4. 数据增强 +使用 map 方法对数据集中的样本进行增强操作: +```python +def augment_data(item): + # 定义你的数据增强逻辑 + pass + +augmented_dataset = dataset.map(augment_data, max_workers=8, progress=True) +``` + +### 5. 数据过滤 +使用 filter 方法根据条件过滤数据集中的样本: +```python +def is_valid_sample(item): + # 定义你的过滤条件 + return True or False + +filtered_dataset = dataset.filter(is_valid_sample).nonempty() # 返回过滤后的非空数据集 +``` + +### 6. 导出数据 +使用 export_json 方法将处理后的数据集导出为 JSON 文件: +```python +augmented_dataset.export_json('path/to/your/output_dataset.json') +``` + +## 六、高级操作 +### 1. 自定义 Schema +通过定义 SCHEMA 来指定数据集的字段和类型: +```python +schema = SCHEMA( + image={'type': 'image', 'required': True}, + text={'type': 'str', 'required': True}, + label={'type': 'int', 'required': False} +) +``` +使用自定义 schema 加载数据 +```python +custom_dataset = MMDataset.from_json('path/to/your/dataset.json', schema=schema) +``` + +### 2. 批量处理 +使用 batch 方法将数据集中的样本按批次处理,适用于需要批量操作的情况: +```python +batch_size = 32 +batched_dataset = dataset.batch(batch_size) +for batch in batched_dataset: + # 对每个批次进行处理 + pass +``` + +### 3. 数据采样 +使用 shuffle 方法打乱数据集,或使用 sample 方法随机抽取样本: +```python +shuffled_dataset = dataset.shuffle() +sampled_dataset = dataset.sample(10) # 随机抽取10个样本 +``` + + +## 七、使用案例 1. 导入导出 ``` import functools @@ -102,3 +193,6 @@ dataset = dataset.filter(is_wanted).nonempty() 3. LLaVA-SFT训练 数据准备和训练流程参考项目[pp_cap_instruct](https://aistudio.baidu.com/projectdetail/7917712) +## 八、总结 +**DataCopilot** 是 **PaddleMIX** 提供的一个强大且灵活的多模态数据处理工具箱。 +通过掌握其基本操作和高级功能,你可以高效地处理、增强和转换多模态数据,为后续的模型训练和推理提供有力支持。 \ No newline at end of file