torchtune.datasets.ChatDataset¶
- torchtune.datasets.ChatDataset = <function ChatDataset>[源代码]¶
注意
此类已弃用,将在未来版本中删除。请使用
SFTDataset
或chat_dataset()
用于自定义聊天数据。支持任何具有多轮对话的自定义数据集的类。
从加载样本到分词提示的一般流程是:加载样本 -> 应用转换 -> 遍历每轮 {格式化为模板 -> 分词}
使用
convert_to_messages
将你的数据集准备为 Llama2 聊天格式和角色[ Message( role=<system|user|assistant>, content=<message>, ), ... ]
此类支持多轮对话。如果具有多个轮次的样本分词后不能容纳在
max_seq_len
中,则会将其截断。- 参数:
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)。convert_to_messages (Callable[[Mapping[str, Any]], List[Message]]) – 用于访问样本中所需字段并将结果转换为遵循 Llama 格式的
Message
列表的函数,该列表具有预期的键chat_format (Optional[ChatFormat]) – 用于格式化聊天的模板。它用于在实际消息周围添加结构化文本,例如 Llama2 和 Mistral 中的 [INST] 标签。额外的文本仍将被正常文本分词,而不是作为特殊标记。在 Llama3 等模型中,分词器将标签添加为特殊标记,因此
chat_format
是不需要的,除非你要以特定方式构建用于推理的消息。max_seq_len (int) – 返回的输入和标签标记 ID 列表中的最大标记数。
train_on_input (bool) – 模型是否在提示上进行训练。默认为 False。
**load_dataset_kwargs (Dict[str, Any]) – 要传递给
load_dataset
的其他关键字参数,例如data_files
或split
。