[Prompts]提示词的高级设计技巧
最后更新于
最后更新于
在思维链提示词中,我们明确鼓励模型通过一系列步骤来确保其回答的准确性和事实性。在图4和图5的示例中,我们使用以下格式的提示词:
“原始问题是什么?
请按照以下格式回答:
Q: <重复问题> A: 让我们一步一步地思考。<给出推理> 因此,答案是 <最终答案>。”
生成模型面临的一个主要问题是它们可能会产生不准确或错误的知识。你可以通过让模型遵循一系列推理步骤来提高其回答的事实性,正如我们在前一节中看到的。此外,你还可以通过提示词模型引用正确的来源来引导它。(请注意,这种方法有严重的局限性,因为引用本身可能是虚构的。)
“mRNA疫苗是否安全?请仅使用可靠来源回答并引用这些来源。”
基于GPT的LLM有一个特殊的标记“<|endofprompt|>”,它指示语言模型将标记之后的内容视为完成任务。这使我们能够明确地区分一些通用指令和你想要的语言模型开始写作的内容。
“写一首诗描述一个美丽的冬日 <|endofprompt|>。那是一个美丽的冬日。”
语言模型并不总是对友好的语言做出良好反应。如果你真的想让它们遵循某些指令,你可能需要使用更强烈的语言。信不信由你,全大写字母和感叹号是有效的!请参见图
在图9的示例中,我们让ChatGPT创建了一个包含事实错误的短文。然后我们要求模型在10分钟内纠正它。
“写一篇关于如何在科技行业找到工作的短文。包含一些事实上不正确的信息。”
LLM没有强烈的对错感,但它们擅长生成不同的观点。这在头脑风暴和理解一个话题上的不同观点时非常有用。我们将在下一节中看到如何通过更高级的提示词工程技术来利用这一点。在下面的示例中,我们给ChatGPT提供了一篇文章,并要求它提出不同的观点。请注意使用标签<begin>和<end>来指导模型。
“ 从个人助理和推荐系统到自动驾驶汽车和自然语言处理,机器学习应用在过去十年中展示了显著的能力,以增强人类的决策制定、生产力和创造力。然而,机器学习仍然远离实现其全部潜力,并且在算法设计和实施方面面临着许多挑战。随着技术的不断进步和改进,以下是未来十年可能发生的一些最令人兴奋的发展。
数据整合:机器学习中预计的关键发展之一是整合多种模态和数据领域的数据,例如图像、文本和传感器数据,以创建更丰富和更健壮的复杂现象的表示。例如,想象一个不仅能识别面孔,还能从他们的面部表情中推断出他们的情绪、意图和个人特征的机器学习系统。这样的系统在客户服务、教育和安全等领域可能有着巨大的应用。为了实现这种多模态和跨领域的理解,机器学习模型将需要在深度学习、表示学习、自我监督学习和常识推理方面取得进展,并将领域知识和常识推理结合起来。
民主化和可访问性:在未来,机器学习可能变得更加易于广泛用户获取,其中许多人将不需要深入了解技术专家就能理解如何使用它。机器学习平台可能很快允许用户轻松上传他们的数据,选择他们的目标并定制他们的模型,而无需编写任何代码或担心底层基础设施。这可能会显著降低进入和采用机器学习的门槛,并赋予用户解决自己的问题并生成自己的见解的能力。
以人为本的方法:随着机器学习系统变得更加智能,它们也可能变得更加以人为本和社交意识,不仅执行任务,而且以积极的方式与人类互动并从人类学习。例如,机器学习系统不仅可以诊断疾病,还可以与患者沟通,同情他们的担忧并提供个性化的建议。像这样的系统可以提高医疗保健的质量和效率,同时改善患者和提供者的福祉和满意度。”
鉴于这个示例文章,写一篇与之观点不同的文章。
语言模型本身不跟踪状态。然而,像ChatGPT这样的应用程序实现了“会话”的概念,其中聊天机器人从一个提示词到下一个保持状态。这使得进行更复杂的对话成为可能。请注意,当使用API调用时,这将涉及在应用程序端跟踪状态。 在示例中,我们让ChatGPT以粗鲁的布鲁克林出租车司机的身份讨论冒泡排序算法的最坏情况时间复杂度。
LLM最有用的能力之一是它们可以从提示词中学习。这就是所谓的零样本学习能力。以下示例取自“通过上下文学习教授算法推理”[3]的附录,其中列表的奇偶性定义被以示例的形式提供。
“以下是一个如何计算列表Q的奇偶性的示例:列表a=[1, 1, 0, 1, 0]的奇偶性是什么?A: 我们初始化s= a=[1, 1, 0, 1, 0]。a的第一个元素是1,所以b=1。s = s + b = 0 + 1 = 1。s=1。a=[1, 0, 1, 0]。a的第一个元素是1,所以b=1。s = s + b = 1 + 1 = 0。s=0。a=[0, 1, 0]。a的第一个元素是0,所以b=0。s = s + b = 0 + 0 = 0。s=0。a=[1, 0]。a的第一个元素是1,所以b=1。s = s + b = 0 + 1 = 1。s=1。a=[0]。a的第一个元素是0,所以b=0。s = s + b = 1 + 0 = 1。s=1。a=[]为空。由于列表a为空,我们有s=1,所以奇偶性是1。
给定这个定义,这个其他列表b=[0, 1, 1, 0, 0, 0, 0, 0]的奇偶性是什么?”
值得注意的是,像GPT这样的LLM只向前读取,实际上是在完成文本。这意味着以正确的顺序提示词它们是值得的。已经发现,在示例之前给出指令是有帮助的。此外,甚至给出示例的顺序也有所不同(参见Lu等人[4])。记住这一点,并尝试不同的提示词和示例顺序。