Shortcuts

提示模板

class torchtune.data.PromptTemplate(template: Dict[Literal['system', 'user', 'assistant', 'ipython'], Tuple[str, str]])[source]

通过传入一个将角色映射到前置和后置标签的字典,快速定义一个自定义提示模板。例如,要实现以下提示模板:

System: {content}\n
User: {content}\n
Assistant: {content}\n
Tool: {content}\n

你需要为每个角色传入一个元组,其中PREPEND_TAG是添加在文本内容之前的字符串,APPEND_TAG是添加在文本内容之后的字符串:

template = {role: (PREPEND_TAG, APPEND_TAG)}

因此,模板将定义如下:

template = {
    "system": ("System: ", "\n"),
    "user": ("User: ", "\n"),
    "assistant": ("Assistant: ", "\n"),
    "ipython": ("Tool: ", "\n"),
}

一旦实例化,您必须在消息列表上调用提示模板。它将返回更新了模板的相同消息列表。

注意

任何附加到助手消息的标签都将包含在损失计算中。对于其他角色(系统、用户、ipython)的所有其他前置/附加标签,在大多数情况下,不包含在损失中。考虑使用用户消息的附加标签,用于需要在助手消息之前但不应该包含在损失中的标签。对于更自定义的掩码和提示模板,您可以基于PromptTemplate接口创建自己的类。

Parameters:

template (Dict[Role, Tuple[str, str]]) – 一个将角色映射到前置和后置标签的字典