torchtune.datasets.InstructDataset¶
- torchtune.datasets.InstructDataset = <function InstructDataset>[源代码]¶
注意
此类已弃用,将在未来版本中删除。请使用
SFTDataset
或instruct_dataset()
用于自定义指令数据。支持任何具有基于指令的提示和可配置模板的自定义数据集的类。
从加载样本到标记化提示的一般流程是:加载样本 -> 应用转换 -> 格式化为模板 -> 标记化
如果列/键名称与
InstructTemplate
中的预期名称不同,则可以使用column_map
参数提供此映射。训练期间提示的掩码由
train_on_input
标志控制,默认设置为False
。 - 如果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
(https://hugging-face.cn/docs/datasets/en/package_reference/loading_methods#datasets.load_dataset.path)。template (InstructTemplate) – 用于格式化提示的模板。如果模板中的占位符变量名称与数据集中列/键名称不匹配,请使用
column_map
将其映射。transform (可选[Callable]) – 在格式化为模板之前应用于样本的转换。默认为 None。
column_map (可选[Dict[str, str]]) – 从模板中预期的占位符名称到样本中列/键名称的映射。如果为 None,则假定两者相同。可以使用
output
键映射指示输出列。如果column_map
中未提供output
列的占位符,则假定为output
。train_on_input (bool) – 模型是否在提示上进行训练。默认为 False。
max_seq_len (可选[int]) – 返回的输入和标签令牌 ID 列表中的最大令牌数。默认为 None,禁用截断。我们建议将其设置为内存允许的最大值,并且模型支持。例如,llama2-7B 支持序列长度最多 4096。
**load_dataset_kwargs (Dict[str, Any]) – 传递给
load_dataset
的其他关键字参数,例如data_files
或split
。
- 引发:
ValueError – 如果
template
不是torchtune.data.InstructTemplate
的实例