[Prompts]提示词的高级设计技巧
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
在思维链提示词中,我们明确鼓励模型通过一系列步骤来确保其回答的准确性和事实性。在图4和图5的示例中,我们使用以下格式的提示词:
生成模型面临的一个主要问题是它们可能会产生不准确或错误的知识。你可以通过让模型遵循一系列推理步骤来提高其回答的事实性,正如我们在前一节中看到的。此外,你还可以通过提示词模型引用正确的来源来引导它。(请注意,这种方法有严重的局限性,因为引用本身可能是虚构的。)
基于GPT的LLM有一个特殊的标记“<|endofprompt|>”,它指示语言模型将标记之后的内容视为完成任务。这使我们能够明确地区分一些通用指令和你想要的语言模型开始写作的内容。
语言模型并不总是对友好的语言做出良好反应。如果你真的想让它们遵循某些指令,你可能需要使用更强烈的语言。信不信由你,全大写字母和感叹号是有效的!请参见图
在图9的示例中,我们让ChatGPT创建了一个包含事实错误的短文。然后我们要求模型在10分钟内纠正它。
LLM没有强烈的对错感,但它们擅长生成不同的观点。这在头脑风暴和理解一个话题上的不同观点时非常有用。我们将在下一节中看到如何通过更高级的提示词工程技术来利用这一点。在下面的示例中,我们给ChatGPT提供了一篇文章,并要求它提出不同的观点。请注意使用标签<begin>和<end>来指导模型。
语言模型本身不跟踪状态。然而,像ChatGPT这样的应用程序实现了“会话”的概念,其中聊天机器人从一个提示词到下一个保持状态。这使得进行更复杂的对话成为可能。请注意,当使用API调用时,这将涉及在应用程序端跟踪状态。 在示例中,我们让ChatGPT以粗鲁的布鲁克林出租车司机的身份讨论冒泡排序算法的最坏情况时间复杂度。
LLM最有用的能力之一是它们可以从提示词中学习。这就是所谓的零样本学习能力。以下示例取自“通过上下文学习教授算法推理”[3]的附录,其中列表的奇偶性定义被以示例的形式提供。
值得注意的是,像GPT这样的LLM只向前读取,实际上是在完成文本。这意味着以正确的顺序提示词它们是值得的。已经发现,在示例之前给出指令是有帮助的。此外,甚至给出示例的顺序也有所不同(参见Lu等人[4])。记住这一点,并尝试不同的提示词和示例顺序。