ShareGPTToMessages¶
- class torchtune.data.ShareGPTToMessages(train_on_input: bool = False, column_map: Optional[Dict[str, str]] = None, new_system_prompt: Optional[str] = None, image_dir: Optional[Path] = None, image_tag: Optional[str] = '<image>')[source]¶
将符合 ShareGPT JSON 结构的单个对话样本转换为 torchtune 的
Message
结构。单个样本通常包含一个可选的系统提示以及一轮或多轮的用户和助手消息。
ShareGPT 遵循
{ "conversations": [ { "from": <system|human|gpt>, "value": <message>, }, ... ] }
Message
遵循[ { "role": <system|user|assistant>, "content": <message>, }, ... ]
- 参数:
train_on_input (bool) – 提示是否应保持不被遮掩。对于多模态数据集,
train_on_input
始终为 False,该值将被忽略。默认值:Falsecolumn_map (Optional[Dict[str, str]]) – 将预期列名(“conversations”)映射到数据集中新列名的字典。键应为“conversations”,值应为新列名。如果为 None,则保留默认的“conversations”。默认值为 None。
new_system_prompt (Optional[str]) – 如果指定,则在开头添加一个系统消息。这可以作为指导模型响应的说明。设置此项将覆盖数据集中已有的任何系统消息。默认值为 None。
image_dir (Optional[Path]) – 包含图像的目录路径,该路径将添加到数据集中所有图像路径的前面。例如,如果
image_dir="/home/user/dataset/"` 且样本图像路径为 ``"images/1.jpg"
,则最终加载的图像路径将是"/home/user/dataset/images/1.jpg"
。如果为 None,则假定图像可在当前工作目录或远程 URL 上找到。对于纯文本数据,请保持为 None。默认值为 None。image_tag (Optional[str]) – 每条消息文本内容中的占位符标签,将被图像特殊 token 替换。如果存在图像且此参数为 None,则默认将图像 token 添加到样本中的第一条用户消息之前。如果为纯文本数据,则此字段将被忽略。默认值为
"<image>"
。
- 抛出:
ValueError – 如果提供了
column_map
且conversations
不在column_map
中。