Shortcuts

alpaca数据集

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数据集的Alpaca风格数据集家族,使用原始alpaca代码库中的数据输入格式提示模板,其中instructioninputoutput是数据集中的字段。此模板会自动应用,独立于分词器中配置的任何提示模板。

训练期间提示的掩码由train_on_input标志控制,该标志默认设置为True。 - 如果train_on_input为True,提示在训练期间使用并影响损失。 - 如果train_on_input为False,提示被掩码(标记替换为-100)

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

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

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

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

  • 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 的额外关键字参数。有关更多详细信息,请参阅 Hugging Face 的 API 参考

Returns:

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

Return type:

联合[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