提示模板¶
- class torchtune.data.PromptTemplate(template: Dict[Literal['system', 'user', 'assistant', 'ipython'], Tuple[str, str]])[源文件]¶
通过传入一个字典来快速定义自定义提示模板,该字典将角色映射到前置和后置标签。例如,要实现以下提示模板
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
接口的基础上创建您自己的类。