了解用于提高补全质量的提示
提示构造可能很困难。 在实践中,提示的作用是配置模型权重以完成所需的任务,但它更像艺术而不是科学,通常需要经验和直觉来制作成功的提示。
向模型发送构造良好的提示时,模型会返回更好的补全。
在我们的徒步旅行推荐机器人中,一个出色的系统提示可帮助模型准备好推荐适当的徒步旅行。 良好的用户提示进一步优化了模型返回的建议。
在本单元中,我们会讨论可用于构造提示的一般概念和模式,并查看一些可用于提高补全质量的技术。
基础
文本提示是用户与 GPT 模型交互的方式。 生成语言模型会尝试生成最有可能紧跟上一个文本的下一系列字词。 就好像我们在说,当我说<提示>时,你首先想到的是什么?
在开发复杂提示时,记住这一基本行为会很有帮助。 无论提示是什么,模型都只是使用它确定最有可能从提示遵循的内容做出响应。
提示组件
使用补全 API 时,提示的不同部分之间没有区别,但将提示分解为其组成部分仍然很有用 - 因为目标是考虑提示构造。
说明
指令可能是最常用的提示组件。 它们是提示的一部分,告知模型要执行的操作,范围从简单到复杂。 例如,向推荐徒步旅行你是一名徒步旅行爱好者,可以帮助人们发现所在地区有趣的徒步旅行。你乐观又友善。第一次打招呼时你会自我介绍。在帮助别人时,你总是询问他们所在的位置以及所需的徒步强度,以便为你提供的徒步旅行建议提供信息。
主要内容
主要内容是指模型正在处理或转换的某种文本。 它通常与指令一起使用。 例如,然后,在获得该信息后,你将为附近的徒步旅行提供三种长度各异的建议。
主要内容可以更长,例如要求模型汇总维基百科文章。
示例
成功的提示通常依赖于“单样本”或“少样本”学习。 这是指加入模型所需行为的一个或多个示例,通常包括输入和输出对。 这不是从模型进行永久更改这一意义上学习,而是通过示例更好地使模型能够仅根据当前推理的需求做出响应。
使用没有示例的提示有时称为“零样本”学习。
Hike request: I live near Seattle and would like an easy hike.
Recommendation: That's great to hear, the Seattle area has some of the best hikes in the nation! You should try Little Si, you'll love it.
Hike request: I want to go on a hike in the North Cascades that will blow my mind.
Recommendation: You won't find a bad hike in the North Cascades. However, I hear the Sahale Arm stops people in their tracks with its beauty.
Hike request: I'd like to find a strenuous hike that's just like the Enchantments, but without as many people.
Recommendation:
提示
提示充当模型输出的“快速启动”,帮助将模型定向到所需的输出。 它通常是模型可以作为生成基础的前缀。 提示可以指示补全以包含关键元素。 它们通常与说明一起使用。
以下示例演示了用于汇总许多步道评论的提示。
Prompt | Completion |
---|---|
步道评论是徒步旅行者是否徒步旅行的重要考虑因素,因为评论列出了步道的当前状况。 [...] 总结上述步道评论: 步道评论的关键要点是: |
Mailbox Peak 步道现在很泥泞, 一旦超过林线, 蚊子就很厉害。 从上午开始,步道上也有很多人。 |
支持内容
支持内容是模型可用于以某种方式影响输出的信息。 它与主要内容的不同之处在于,它不是任务的主要目标,但它通常与主要内容一起使用。 常见示例包括上下文信息,例如当前日期、用户名、用户偏好等。
最佳实践
- 尽量具体。 尽可能少留解读空间。 限制操作空间。
- 具有描述性。 使用类比。
- 强调。 有时可能需要对模型进行重复操作。 在主要内容之前和之后提供说明,使用指令和提示等。
- 给事项排序。 向模型呈现信息的顺序可能会影响输出。 你选择是在内容之前放置指令(“汇总以下内容...”)还是之后(“汇总以上...”)会影响输出。 即使是少样本示例的顺序也很重要。 该技术称为近因偏差。
- 引导输出。 在提示的末尾包含几个字词或短语,以获取遵循所需形式的模型响应。
- 给模型一个“出路”。 如果模型无法完成分配的任务,有时为模型提供备用路径可能会有所帮助。 例如,在对一段文本提出问题时,可以加入类似于“如果答案不存在,则回复‘未找到’”之类的内容。此技术可帮助模型避免生成错误的响应。
- 思维链提示。 该模型被指示逐步进行并呈现所有涉及的步骤。 这样做可以减少结果不准确的可能性,并使评估模型响应更容易。