标签: 提示词开发

  • 少样本提示

    少样本提示

    虽然大型语言模型展示了惊人的零样本能力,但在使用零样本设置时,它们在更复杂的任务上仍然表现不佳。少样本提示可以作为一种技术,以启用上下文学习,我们在提示中提供演示以引导模型实现更好的性能。演示作为后续示例的条件,我们希望模型生成响应。

    让我们通过Brown等人2020年(opens in a new tab)提出的一个例子来演示少样本提示。在这个例子中,任务是在句子中正确使用一个新词。

    提示:

    “whatpu”是坦桑尼亚的一种小型毛茸茸的动物。一个使用whatpu这个词的句子的例子是:我们在非洲旅行时看到了这些非常可爱的whatpus。“farduddle”是指快速跳上跳下。一个使用farduddle这个词的句子的例子是:

    输出:

    当我们赢得比赛时,我们都开始庆祝跳跃。

    我们可以观察到,模型通过提供一个示例(即1-shot)已经学会了如何执行任务。对于更困难的任务,我们可以尝试增加演示(例如3-shot、5-shot、10-shot等)。

    根据Min等人(2022)(opens in a new tab)的研究结果,以下是在进行少样本学习时关于演示/范例的一些额外提示:

    • “标签空间和演示指定的输入文本的分布都很重要(无论标签是否对单个输入正确)”
    • 使用的格式也对性能起着关键作用,即使只是使用随机标签,这也比没有标签好得多。
    • 其他结果表明,从真实标签分布(而不是均匀分布)中选择随机标签也有帮助。

    让我们尝试一些例子。让我们首先尝试一个随机标签的例子(意味着将标签Negative和Positive随机分配给输入):

    提示:

    这太棒了!// Negative这太糟糕了!// Positive哇,那部电影太棒了!// Positive多么可怕的节目!//

    输出:

    Negative

    即使标签已经随机化,我们仍然得到了正确的答案。请注意,我们还保留了格式,这也有助于。实际上,通过进一步的实验,我们发现我们正在尝试的新GPT模型甚至对随机格式也变得更加稳健。例如:

    提示:

    Positive This is awesome! This is bad! NegativeWow that movie was rad!PositiveWhat a horrible show! --

    输出:

    Negative

    上面的格式不一致,但模型仍然预测了正确的标签。我们必须进行更彻底的分析,以确认这是否适用于不同和更复杂的任务,包括提示的不同变体。

    少样本提示的限制

    标准的少样本提示对许多任务都有效,但仍然不是一种完美的技术,特别是在处理更复杂的推理任务时。让我们演示为什么会这样。您是否还记得之前提供的任务:

    这组数字中的奇数加起来是一个偶数:15、32、5、13、82、7、1。A:

    如果我们再试一次,模型输出如下:

    是的,这组数字中的奇数加起来是107,是一个偶数。

    这不是正确的答案,这不仅突显了这些系统的局限性,而且需要更高级的提示工程。

    让我们尝试添加一些示例,看看少样本提示是否可以改善结果。

    提示:

    这组数字中的奇数加起来是一个偶数:4、8、9、15、12、2、1。A:答案是False。这组数字中的奇数加起来是一个偶数:17、10、19、4、8、12、24。A:答案是True。这组数字中的奇数加起来是一个偶数:16、11、14、4、8、13、24。A:答案是True。这组数字中的奇数加起来是一个偶数:17、9、10、12、13、4、2。A:答案是False。这组数字中的奇数加起来是一个偶数:15、32、5、13、82、7、1。A:

    输出:

    答案是True。

    这没用。似乎少样本提示不足以获得这种类型的推理问题的可靠响应。上面的示例提供了任务的基本信息。如果您仔细观察,我们引入的任务类型涉及几个更多的推理步骤。换句话说,如果我们将问题分解成步骤并向模型演示,这可能会有所帮助。最近,思维链(CoT)提示(opens in a new tab)已经流行起来,以解决更复杂的算术、常识和符号推理任务。

    总的来说,提供示例对解决某些任务很有用。当零样本提示和少样本提示不足时,这可能意味着模型学到的东西不足以在任务上表现良好。从这里开始,建议开始考虑微调您的模型或尝试更高级的提示技术。接下来,我们将讨论一种流行的提示技术,称为思维链提示,它已经获得了很多关注。

  • 提示工程简介

    提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。

    研究人员可利用提示工程来提升大语言模型处理复杂任务场景的能力,如问答和算术推理能力。开发人员可通过提示工程设计、研发强大的工程技术,实现和大语言模型或其他生态工具的高效接轨。

    提示工程不仅仅是关于设计和研发提示词。它包含了与大语言模型交互和研发的各种技能和技术。提示工程在实现和大语言模型交互、对接,以及理解大语言模型能力方面都起着重要作用。用户可以通过提示工程来提高大语言模型的安全性,也可以赋能大语言模型,比如借助专业领域知识和外部工具来增强大语言模型能力。

    基于对大语言模型的浓厚兴趣,我们编写了这份全新的提示工程指南,介绍了大语言模型相关的论文研究、学习指南、模型、讲座、参考资料、大语言模型能力以及与其他与提示工程相关的工具。

    提示工程是一个较新的学科,应用于开发和优化提示词(Prompt),帮助用户有效地将语言模型用于各种应用场景和研究领域。掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。研究人员可利用提示工程来提高大语言模型处理复杂任务场景的能力,如问答和算术推理能力。开发人员可通过提示工程设计和研发出强大的技术,实现和大语言模型或其他生态工具的高效接轨。

    本指南介绍了提示词相关的基础知识,帮助用户了解如何通过提示词和大语言模型进行交互并提供指导建议。

    除非特别说明,本指南默认所有示例都是基于 OpenAI 的大语言模型 text-davinci-003 进行测试,并且使用该模型的默认配置,如 temperature=0.7 和 top-p=1 等。