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, split: str = 'train', **load_dataset_kwargs: Dict[str, Any]) Union[SFTDataset, PackedDataset] [source]¶
支持来自 Hugging Face 数据集的语法校正数据集及其变体。这是一个 示例 语法校正数据集。
建议将分词器与
GrammarErrorCorrectionTemplate
一起配置,以便与该数据集一起使用。训练期间提示的屏蔽由
train_on_input
标志控制,默认情况下设置为False
- 如果train_on_input
为 True,则提示在训练期间使用并有助于损失。- 如果train_on_input
为 False,则提示会被屏蔽(标记替换为 -100)- 参数: :
tokenizer (ModelTokenizer) – 模型使用的分词器,它实现了
tokenize_messages
方法。source (str) – Hugging Face 上的数据集库路径。对于本地数据集,将源定义为数据文件类型(例如“json”、“csv”、“text”),在
data_files
中传入文件路径,并将split="train"
设置为。查看 Hugging Face 的load_dataset
获取更多详细信息。默认为liweili/c4_200m
。column_map (Optional[Dict[str, str]]) – 来自消息转换中预期列的映射
InputOutputToMessages
到数据集中新的列名。键应为“input”和“output”,值应为实际列名。如果为 None,则使用默认列名"input"
和"output"``in ``liweili/c4_200m
。train_on_input (bool) – 模型是否在提示上进行训练。默认为 False。
new_system_prompt (可选[str]) – 如果指定,则在每个样本之前添加系统消息。这可以作为指导模型响应的指令。设置此项将覆盖数据集中已存在的任何系统消息。默认值为 None。
packed (bool) – 是否在训练之前将数据集打包到标记器的
max_seq_len
。默认值为 False。split (str) –
split
是datasets.load_dataset
的参数。您可以使用此参数加载给定拆分的子集,例如split="train[:10%]"
。默认值为“train”。**load_dataset_kwargs (Dict[str, Any]) – 传递给
load_dataset
的其他关键字参数。
- 返回:
配置了源数据和模板的数据集
- 返回类型:
Union[SFTDataset, PackedDataset]
- 引发:
ValueError – 如果
packed=True
且tokenizer.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