快捷方式

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, filter_fn: Optional[Callable] = None, split: str = 'train', **load_dataset_kwargs: Dict[str, Any]) Union[SFTDataset, PackedDataset][source]

支持来自 Hugging Face Datasets 的 Alpaca 风格数据集系列,使用来自原始 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。

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

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

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

返回:

配置了源数据和转换的数据集

返回类型:

Union[SFTDataset, PackedDataset]

Raises:

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 的全面开发者文档

查看文档

教程

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

查看教程

资源

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

查看资源