mindformers.dataset.CausalLanguageModelDataset

查看源文件
class mindformers.dataset.CausalLanguageModelDataset(dataset_config: Optional[dict] = None, data_loader: Union[dict, Callable] = None, input_columns: List[str] = None, output_columns: List[str] = None, batch_size: int = 8, drop_remainder: bool = True, num_parallel_workers: int = 8, python_multiprocessing: bool = False, repeat: int = 1, seed: int = 0, prefetch_size: int = 1, numa_enable: bool = False, eod_reset: bool = False, eod_token_id: Optional[int] = None, auto_tune: bool = False, filepath_prefix: str = './autotune', autotune_per_step: int = 10, profile: bool = False, **kwargs)[源代码]

因果语言模型预训练数据集。 生成的数据集的输出列取决于用户提供的配置信息。 输出列均会被转换为int32类型。

参数:
  • dataset_config (dict, 可选) - 数据集配置信息。当传入的 dataset_config 为空字典或 None 时, dataset_config 将由以下所有参数生成;否则以下所有参数被忽略。默认值: None

  • data_loader (Union[dict, Callable]) - 必须是包含data loader配置信息的字典,或一个data loader实例。当 data_loaderdict 类型时,字典的键可以是"type"、"dataset_dir"、"dataset_files"和"shuffle"。

    • "type" - 必选。数据集的类型。值必须是 strtype 类型。当值为"MindDataset"或"TFRecordDataset"时, "dataset_dir""dataset_files" 中必选两者之一,优先使用 "dataset_dir" ;否则必选 "dataset_dir"

    • "dataset_dir" - 数据集文件所在路径或目录。当 "type" 为"MindDataset"或"TFRecordDataset"且 "dataset_dir" 表示一个目录时,将递归查找目录下所有 mindrecordtfrecord 格式文件。

    • "dataset_files" - mindrecordtfrecord 格式文件所在路径。当 "type" 为"MindDataset"或"TFRecordDataset"时生效;否则键被忽略。必须是 listtuple 类型。

    • "shuffle" - 可选。指示是否混洗数据集。必须是 bool 类型。

  • input_columns (list[str]) - 表示映射处理前的数据列名称。

  • output_columns (list[str]) - 表示映射处理后的数据列名称。 eod_reset 为真时必选;否则该参数被忽略。默认值: None

  • batch_size (int) - 每个批次的大小。默认值: 8

  • drop_remainder (bool) - 是否在最后一个批次的数据项数小于批次大小时,丢弃最后一个批次。默认值: True

  • num_parallel_workers (int) - 并行执行数据映射处理的进程/线程数。默认值: 8

  • python_multiprocessing (bool) - 是否启用Python的Multi-Process模块以加速映射操作。默认值:False

  • repeat (int) - 数据集重复的次数。默认值: 1

  • seed (int) - 随机数种子。默认值: 0

  • prefetch_size (int) - 流水线中每个数据处理操作的缓存队列大小。默认值: 1

  • numa_enable (bool) - 是否采用NUMA绑定函数。默认值: False

  • eod_reset (bool) - 是否重置<EOD>词元。默认值: False

  • eod_token_id (int, 可选) - <EOD>词元对应的id。默认值: None ,表示不手动设置<EOD>词元对应的id。

  • auto_tune (bool) - 是否启用数据处理参数自动优化。默认值: False

  • autotune_per_step (int) - 设置调整自动数据加速配置步骤的间隔。默认值: 10

  • filepath_prefix (str) - 保存优化参数配置的路径。默认值: './autotune'

  • profile (bool) - 是否启用数据收集。默认值: False

返回:

CausalLanguageModelDataset 实例。

异常:
  • ValueError - 当 dataset_config.eod_resetTrue 且未全量导入数据集时, dataset_config.batch_size 不是使用设备数量的整数倍。

  • ValueError - dataset_config.data_loader 中没有指定键 "dataset_dir""dataset_files"

样例:

>>> from mindspore.dataset import MindDataset
>>> from mindformers.dataset import CausalLanguageModelDataset
>>> # Note:
>>> #     `"/path/to/dataset"` should be replaced with the real path of the dataset file.
>>> #     The detailed data setting could refer to
>>> #     https://gitee.com/mindspore/mindformers/blob/dev/docs/model_cards/llama2.md
>>> data_loader = MindDataset(dataset_files="/path/to/dataset", shuffle=True)
>>> dataset_from_param = CausalLanguageModelDataset(data_loader=data_loader,
...                                                 input_columns=["input_ids", "attention_mask"])