快捷方式

text_completion_dataset

torchtune.datasets.text_completion_dataset(tokenizer: ModelTokenizer, source: str, column: str = 'text', add_eos: bool = True, packed: bool = False, split_across_pack: bool = True, split: str = 'train', filter_fn: Optional[Callable] = None, **load_dataset_kwargs: Dict[str, Any]) Union[TextCompletionDataset, PackedDataset][source]

从自由形式、非结构化的文本语料库构建一个可配置的数据集,类似于预训练中使用的数据集。建议通过 yaml 配置来使用此方法配置自定义文本数据集,而不是直接使用 TextCompletionDataset,因为此方法更易于配置。

参数:
  • tokenizer (ModelTokenizer) – 模型使用的分词器,实现了 tokenize_messages 方法。

  • source (str) – Hugging Face 上数据集仓库的路径。对于本地数据集,将 source 定义为数据文件类型(例如,“json”、“csv”、“text”),并在 data_files 中传入文件路径。有关更多详细信息,请参阅 Hugging Face 的 load_dataset (https://hugging-face.cn/docs/datasets/en/package_reference/loading_methods#datasets.load_dataset.path)。

  • column (str) – 样本中包含文本数据的列的名称。Hugging Face 数据集或表格数据通常需要此参数。对于只有一列的本地数据集(例如,非结构化的 txt 文件),使用默认值“text”,这是 Hugging Face 数据集加载到内存时使用的名称。默认值为“text”。

  • add_eos (bool) – 是否在序列末尾添加 EOS 标记。默认值为 True。

  • packed (bool) – 是否在训练前将数据集打包到 max_seq_len。默认值为 False。

  • split_across_pack (bool) – 如果一个包中的最后一个样本不符合 max_seq_len 的长度,则将其分割到下一个包中,或将其完全移到下一个包的开头。对于预训练,通常将其设置为 True 以进行通用文本补全。对于微调,通常将其设置为 False 以避免在指令调优中截断句子。如果 packed=False,此参数将被忽略。默认值为 True。

  • split (str) – datasets.load_datasetsplit 参数。您可以使用此参数加载给定拆分的一个子集,例如 split="train[:10%]。默认值为“train”。

  • filter_fn (Optional[Callable]) – 在任何预处理之前用于过滤数据集的可调用对象。有关更多详细信息,请参阅 Hugging Face 文档

  • **load_dataset_kwargs (Dict[str, Any]) – 传递给 load_dataset 的其他关键字参数。

示例

>>> from torchtune.datasets import text_completion_dataset
>>> dataset = text_completion_dataset(
...   tokenizer=tokenizer,
...   source="allenai/c4",
...   column="text",
...   data_dir="realnewslike",
...   packed=False,
...   split="train",
... )

这也可以通过 yaml 配置实现

dataset:
    _component_: torchtune.datasets.text_completion_dataset
    source: allenai/c4
    column: text
    data_dir: realnewslike
    packed: False
    split: train
返回值:

配置好的 TextCompletionDataset

如果 packed=True,则返回 PackedDataset

返回类型:

Union[TextCompletionDataset, PackedDataset]

抛出异常:

ValueError – 如果 packed=Truetokenizer.max_seq_len 未设置。

文档

查阅 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得解答

查看资源