语法数据集¶
- 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数据集的语法校正数据集及其变体。 这里是一个语法校正数据集的示例。
建议使用
GrammarErrorCorrectionTemplate配置分词器,并结合此数据集。训练期间提示的掩码由
train_on_input标志控制,该标志默认设置为False- 如果train_on_input为True,提示在训练期间使用并影响损失。 - 如果train_on_input为False,提示被掩码(标记替换为-100)- Parameters:
tokenizer (ModelTokenizer) – 模型使用的分词器,实现了
tokenize_messages方法。source (str) – Hugging Face 上数据集仓库的路径。对于本地数据集,将 source 定义为数据文件类型(例如“json”、“csv”、“text”),在
data_files中传入文件路径,并设置split="train"。有关更多详细信息,请参阅 Hugging Face’s 的load_dataset。默认值为liweili/c4_200m。column_map (可选[字典[str, str]]) – 从消息转换
InputOutputToMessages中预期的列到数据集中新列名的映射。键应为“input”和“output”,值应为实际的列名。如果为None,则使用默认列名"input"和"output"``在 ``liweili/c4_200m中。train_on_input (bool) – 模型是否在提示上进行训练。默认值为 False。
new_system_prompt (可选[str]) – 如果指定,将在每个样本前添加一个系统消息。这可以作为指导模型响应的指令。设置此选项将覆盖数据集中已存在的任何系统消息。默认值为 None。
packed (bool) – 是否在训练前将数据集打包到分词器的
max_seq_len。默认值为False。filter_fn (可选[Callable]) – 用于在预处理之前过滤数据集的可调用对象。有关更多详细信息,请参阅Hugging Face的文档。
split (str) –
split参数用于datasets.load_dataset。您可以使用此参数加载给定拆分的子集,例如split="train[:10%]"。默认值为“train”。**load_dataset_kwargs (Dict[str, Any]) – 传递给
load_dataset的额外关键字参数。
- Returns:
数据集配置了源数据和模板
- Return type:
联合[SFTDataset, PackedDataset]
- Raises:
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