快捷方式

torchtune.datasets.ChatDataset

torchtune.datasets.ChatDataset = <function ChatDataset>[源代码]

注意

此类已弃用,将在未来版本中删除。请使用 SFTDatasetchat_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_filessplit

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

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

查看资源