快捷方式

grammar_dataset

torchtune.datasets.grammar_dataset(tokenizer: ModelTokenizer, *, source: str = 'liweili/c4_200m', column_map: Optional[Dict[str, str]] = None, train_on_input: bool = False, new_system_prompt: Optional[str] = None, packed: bool = False, filter_fn: Optional[Callable] = None, split: str = 'train', **load_dataset_kwargs: Dict[str, Any]) Union[SFTDataset, PackedDataset][source]

支持 Hugging Face Datasets 中的语法纠错数据集及其变体。这里提供一个语法纠错数据集的示例

建议结合此数据集,使用 GrammarErrorCorrectionTemplate 配置分词器。

训练期间对 prompt 的掩码处理由 train_on_input 标志控制,该标志默认为 False。 - 如果 train_on_input 为 True,prompt 在训练期间会被使用并计入损失。 - 如果 train_on_input 为 False,prompt 会被掩码处理(标记被替换为 -100)。

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

  • source (str) – Hugging Face 上数据集仓库的路径。对于本地数据集,将 source 定义为数据文件类型(例如“json”、“csv”、“text”),在 data_files 中传入文件路径,并设置 split="train"。更多详细信息请参阅 Hugging Face 的 load_dataset 文档。默认为 liweili/c4_200m

  • column_map (Optional[Dict[str, str]]) – 将消息转换 InputOutputToMessages 中预期的列映射到数据集中的新列名。键应为“input”和“output”,值应为实际的列名。如果为 None,则使用 liweili/c4_200m 中的默认列名 "input""output"``in ``liweili/c4_200m

  • train_on_input (bool) – 模型是否在 prompt 上进行训练。默认为 False。

  • new_system_prompt (Optional[str]) – 如果指定,则在每个样本前添加一条系统消息。这可以作为指导模型响应的说明。设置此参数将 OVERRIDE 数据集中已有的任何系统消息。默认为 None。

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

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

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

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

返回:

使用源数据和模板配置的数据集

返回类型:

Union[SFTDataset, PackedDataset]

引发:

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

示例

>>> grammar_ds = grammar_dataset(model_transform=tokenizer)
>>> for batch in Dataloader(grammar_ds, batch_size=8):
>>>     print(f"Batch size: {len(batch)}")
>>> Batch size: 8

文档

查阅 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源