数据集的创建

在页面端创建数据集#

1、创建数据集前需要先登陆,点击页面右上角的个人头像,选择创建数据集#

Image

2、填入必要的数据集信息#

image.png

3、空白数据集创建完毕:#

image.png

4、准备数据#

数据集的组织形式参考下文中的组织您的数据集仓库章节,同时我们也提供了一些参考示例

5、数据集上传#

点击数据集文件标签页,上传数据集文件,参考数据集的上传

组织您的数据集仓库#

在modelscope创建一个数据集仓库后,本指南将指导您如何在上传时组织您的数据集仓库。

具有良好结构和特定文件格式(如 .txt.csv.parquet.jsonl.mp3.jpg.zip 等)的数据集会通过 MsDataset 自动加载,并且在的数据集页面上会有数据预览

基础案例#

最简单的数据集结构包含两个文件:train.csv 和 test.csv。您的仓库还应包含一个 README.md 文件,用于展示在数据集页面上的数据集卡片

my_dataset_repository/
├── README.md
├── train.csv
└── test.csv

在这个简单的案例中,您将获得一个包含两个拆分(split)的数据集:train(来自 train.csv 的样本)和 test(来自 test.csv 的样本)。

在 YAML 中定义拆分和子集#

拆分(split)#

如果您有多个文件并希望定义哪些文件属于哪个拆分,您可以在 README.md 顶部的 YAML 区块中使用 configs 字段。例如,给定一个如下的仓库:

my_dataset_repository/
├── README.md
├── data.csv
└── holdout.csv

您可以通过在 README.md 顶部的 YAML 块中添加 configs 字段来定义您的拆分:

---
configs:
- config_name: default
  data_files:
  - split: train
    path: "data.csv"
  - split: test
    path: "holdout.csv"
---

您可以通过路径列表选择多个文件作为一个拆分:

my_dataset_repository/
├── README.md
├── data/
│   ├── abc.csv
│   └── def.csv
└── holdout/
    └── ghi.csv
---
configs:
- config_name: default
  data_files:
  - split: train
    path:
    - "data/abc.csv"
    - "data/def.csv"
  - split: test
    path: "holdout/ghi.csv"
---

您也可以使用通配符模式自动列出所需的所有文件:

---
configs:
- config_name: default
  data_files:
  - split: train
    path: "data/*.csv"
  - split: test
    path: "holdout/*.csv"
---

注意: 即使您只有一个配置,config_name 字段也是必需的。

配置#

如果您的数据集有多个子数据集,希望能够分别加载它们,您可以在 YAML 的 configs 字段中定义一个配置列表:

my_dataset_repository/
├── README.md
├── main_data.csv
└── additional_data.csv
---
configs:
- config_name: main_data
  data_files: "main_data.csv"
- config_name: additional_data
  data_files: "additional_data.csv"
---

每个配置在上会在数据预览页面单独显示,可以通过传递其名称作为subset_name参数进行加载:

 

from modelscope import MsDataset main_data = MsDataset.load("my_dataset_repository", subset_name="main_data") additional_data = MsDataset.load("my_dataset_repository", subset_name="additional_data")

构建器参数#

不仅可以通过 YAML 传递 data_files,还可以传递其他构建器特定的参数,从而在加载数据时提供更多灵活性。比如,可以定义在何种配置中使用何种分隔符加载 csv 文件:

---
configs:
- config_name: tab
  data_files: "main_data.csv"
  sep: "\t"
- config_name: comma
  data_files: "additional_data.csv"
  sep: ","
---

提示: 您可以通过使用 default: true 设置默认配置,例如,如果设置

- config_name: main_data
  data_files: "main_data.csv"
  default: true

那么可以使用 main_data = MsDataset.load("my_dataset_repository") 加载数据集。

自动拆分检测#

如果没有提供 YAML,系统会自动根据数据集仓库中的特定模式推断数据集拆分。模式的优先顺序是首先尝试自定义文件名拆分格式,如果没有找到,则将所有文件视为单一拆分。

文件夹名称#

您可以将数据文件放入名为 traintest 和 validation 的不同目录中,每个目录包含该拆分的数据文件:

my_dataset_repository/
├── README.md
└── data/
    ├── train/
    │   └── bees.csv
    ├── test/
    │   └── more_bees.csv
    └── validation/
        └── even_more_bees.csv

文件名拆分#

如果您没有使用任何非传统拆分,则可以将拆分名称放置在数据文件的任何位置,系统会自动推断。唯一的规则是,拆分名称必须由非字母数字字符分隔,例如,test-file.csv 合法,而 testfile.csv 不合法。支持的分隔符包括下划线、短横线、空格、点和数字。

例如,以下文件名都是可以接受的:

  • 训练集拆分:train.csvmy_train_file.csvtrain1.csv
  • 验证集拆分:validation.csvmy_validation_file.csvvalidation1.csv
  • 测试集拆分:test.csvmy_test_file.csvtest1.csv

例如,所有文件放在一个名为 data 的目录中的结构如下:

my_dataset_repository/
├── README.md
└── data/
    ├── train.csv
    ├── test.csv
    └── validation.csv

自定义文件名拆分#

如果您的数据集拆分有自定义名称(例如,既不是 traintest、也不是 validation),可以将您的数据文件命名为 data/<split_name>-xxxxx-of-xxxxx.csv

示例如下,包含三个拆分:traintest 和 random

my_dataset_repository/
├── README.md
└── data/
    ├── train-00000-of-00003.csv
    ├── train-00001-of-00003.csv
    ├── train-00002-of-00003.csv
    ├── test-00000-of-00001.csv
    ├── random-00000-of-00003.csv
    ├── random-00001-of-00003.csv
    └── random-00002-of-00003.csv

单一拆分#

当系统无法识别上述任何模式时,则会将所有文件视为单个训练拆分。如果数据集拆分未按预期加载,可能是由于模式不正确。

拆分名称关键字#

拆分名称有多种方式命名。验证集拆分有时被称为 "dev",测试集拆分可能称为 "eval"。这些其他名称也受到支持,以下关键字是等价的:

  • train, training
  • validation, valid, val, dev
  • test, testing, eval, evaluation

以下结构是一个有效的仓库:

my_dataset_repository/
├── README.md
└── data/
    ├── training.csv
    ├── eval.csv
    └── valid.csv

每个拆分多个文件#

如果某个拆分包含多个文件,系统仍然可以根据文件名推断这是训练、验证还是测试拆分。例如,如果您的训练集和测试集跨多个文件:

my_dataset_repository/
├── README.md
├── train_0.csv
├── train_1.csv
├── train_2.csv
├── train_3.csv
├── test_0.csv
└── test_1.csv

确保 train 集的所有文件名称中都包含 train(验证集和测试集同理)。即使您在文件名中添加前缀或后缀(例如 my_train_file_00001.csv),系统仍然可以推断出相应的拆分。

为了方便,您还可以将数据文件放入不同的目录中。在这种情况下,拆分名称从目录名称推断。

my_dataset_repository/
├── README.md
└── data/
    ├── train/
    │   ├── shard_0.csv
    │   ├── shard_1.csv
    │   ├── shard_2.csv
    │   └── shard_3.csv
    └── test/
        ├── shard_0.csv
        └── shard_1.csv

通过按照上述结构组织仓库,您将能够轻松上传并使用数据集,而且在数据仓库里有数据预览。

(可选)使用python脚本组织数据集#

在数据集仓库中,可以定义一个与数据仓库同名的python脚本,用于组织数据集

 

my_dataset/ ├── README.md ├── my_dataset.py └── data/ # optional ├── a1.csv or a1.json or a1.parquet or a1.zip └── a2.csv or a2.json or a2.parquet or a2.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值