快捷方式

alpaca_dataset

torchtune.datasets.alpaca_dataset(tokenizer: ModelTokenizer, *, source: str = 'tatsu-lab/alpaca', column_map: Optional[Dict[str, str]] = None, train_on_input: bool = True, packed: bool = False, split: str = 'train', **load_dataset_kwargs: Dict[str, Any]) Union[SFTDataset, PackedDataset][源代码]

使用 数据输入格式 和原始 alpaca 代码库中的 提示模板,支持来自 Hugging Face 数据集的 Alpaca 风格数据集系列,其中 instructioninputoutput 是数据集中的字段。此模板会自动应用,而与分词器中配置的任何提示模板无关。

训练期间提示的掩码由 train_on_input 标志控制,该标志默认为 True - 如果 train_on_input 为 True,则在训练期间使用提示并将其纳入损失计算。 - 如果 train_on_input 为 False,则提示会被屏蔽(标记替换为 -100)

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

  • source (str) – Hugging Face 上数据集存储库的路径。对于本地数据集,请将 source 定义为数据文件类型(例如,“json”、“csv”、“text”),并在 data_files 中传入文件路径。有关详细信息,请参阅 Hugging Face 的 load_dataset。默认值为 tatsu-lab/alpaca

  • column_map (Optional[Dict[str, str]]) – 从消息转换 AlpacaToMessages 中的预期列到数据集中新列名的映射。键应为“instruction”、“input”和“output”,值应为实际列名。如果为 None,则使用 tatsu-lab/alpaca 中的默认列名 "instruction""input""output"

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

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

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

  • **load_dataset_kwargs** (Dict[str, Any]) – 传递给 load_dataset 的其他关键字参数。有关更多详细信息,请参阅 Hugging Face 的 API 参考

返回:

使用源数据和转换配置的数据集

返回类型:

Union[SFTDataset, PackedDataset]

引发:

ValueError – 如果 packed 为 True 且 max_seq_len 未在分词器上设置。

示例

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

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取适合初学者和高级开发人员的深入教程

查看教程

资源

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

查看资源