slimorca_dataset¶
- torchtune.datasets.slimorca_dataset(tokenizer: ModelTokenizer, *, source: str = 'Open-Orca/SlimOrca-Dedup', 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] [源代码]¶
支持 SlimOrca 风格的对话数据集系列。
训练期间 prompt 的掩码处理由
train_on_input
标志控制,默认设置为False
- 如果train_on_input
为 True,则 prompt 在训练期间使用并计入损失。 - 如果train_on_input
为 False,则 prompt 将被掩盖(token 替换为 -100)- 参数:
tokenizer (ModelTokenizer) – 模型使用的分词器,它实现了
tokenize_messages
方法。source (str) – Hugging Face 上数据集仓库的路径。对于本地数据集,将 source 定义为数据文件类型(例如“json”、“csv”、“text”),在
data_files
中传入文件路径,并设置split="train"
。有关更多详细信息,请参阅 Hugging Face 的load_dataset
。默认为Open-Orca/SlimOrca-Dedup
。column_map (Optional[Dict[str, str]]) – 从消息转换
ShareGPTToMessages
中的预期列到数据集中的新列名的映射。键应为“conversations”,值应为新列名。如果为 None,则使用Open-Orca/SlimOrca-Dedup
中的默认列名"conversations"
。train_on_input (bool) – 模型是否在 prompt 上进行训练。默认为 False。
new_system_prompt (Optional[str]) – 如果指定,则将系统消息前置到每个样本。这可以用作指导模型响应的指令。设置此项将覆盖数据集中已存在的任何系统消息。默认为 None。
packed (bool) – 是否在训练之前将数据集打包到分词器的
max_seq_len
。默认为 False。filter_fn (Optional[Callable]) – 用于在任何预处理之前过滤数据集的可调用函数。有关更多详细信息,请参阅 Hugging Face 文档。
split (str) –
datasets.load_dataset
的split
参数。您可以使用此参数加载给定 split 的子集,例如split="train[:10%]"
。默认为“train”。**load_dataset_kwargs (Dict[str, Any]) – 传递给
load_dataset
的其他关键字参数。
- 返回:
使用 SlimOrca 源数据配置的数据集
- 返回类型:
Union[SFTDataset, PackedDataset]
- 引发:
ValueError – 如果
packed=True
且未设置tokenizer.max_seq_len
。
示例
>>> ds = slimorca_dataset(tokenizer=tokenizer) >>> for input, label in ds: >>> print(input) >>> print(label) >>> >>> Sample Output: >>> [1, 351, 82, 391, 221, 220, 193, 12, 471, ..., 2] >>> [-100, -100, -100, -100, -100, -100, -100, -100, 471, ..., 2]