跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified

category

太长,读不下去了

  • 基于LLM的聊天机器人可以解决他们没有被训练来解决的任务,无论是在-box之外(零样本提示),还是在提示时使用几个输入输出对来演示如何解决任务(很少提示)。
  • 零样本提示非常适合简单任务、探索性查询或只需要一般知识的任务。它对于需要上下文的复杂任务或需要非常具体的输出表单时效果不佳。
  • 当我们需要模型“学习”一个新概念或需要精确的输出形式时,很少有镜头提示是有用的。这也是一个自然的选择,因为数据非常有限(太少而无法训练),可以帮助模型解决任务。
  • 如果需要复杂的多步推理,那么无论是零样本还是少量搜索提示都不会产生良好的性能。在这些情况下,可能需要对LLM进行微调。

基于大型语言模型(LLM)的聊天机器人,如OpenAI的ChatGPT,显示出执行未明确训练的任务的惊人能力。在某些情况下,他们可以开箱即用。在其他情况下,用户必须为模型指定几个标记的示例来获取模式。

帮助大型语言模型解决新任务的两种常用技术是零样本和少提示。在本文中,我们将探讨它们是如何工作的,看到一些示例,并讨论何时使用(更重要的是,何时不使用)零样本和少速提示。

零样本和少样本学习在LLM中的作用


零样本和少速学习的目标是获得一个机器学习模型来执行它没有训练过的新任务。首先,我们很自然地会问:法学硕士受过什么训练?

对比预训练与微调的图表。在预训练中,该模型预测下一个单词,例如,美国第一任总统是乔治->华盛顿。在微调过程中,模型会产生一些答案,并选择准确且礼貌的答案。
聊天机器人应用程序中使用的LLM通常经历两个训练阶段。在预训练中,他们学习预测下一个单词。在微调过程中,他们学会了给出具体的回应。|来源:作者
如今,聊天机器人中使用的大多数LLM都要经过两个阶段的培训:

  • 在预训练阶段,模型被输入大量文本语料库,并学习根据前面的单词预测下一个单词。
  • 在微调阶段,下一个单词预测器被调整为聊天机器人,即以对话的方式回答用户的查询,并产生符合人类期望的响应。

让我们看看OpenAI的ChatGPT(基于GPT4)是否可以完成一个流行的英语pangram(一个包含字母表中所有字母的句子):

ChatGPT界面的屏幕截图。你:“快棕狐狸跳过”,ChatGPT:“懒狗”。
正如预期的那样,它正确地完成了著名的句子,很可能在预训练数据中多次看到它。如果你曾经使用过ChatGTP,你也会知道聊天机器人似乎拥有丰富的事实知识,通常会试图提供帮助并避免粗俗。


但ChatGPT和类似的LLM支持的聊天机器人可以做得更多。他们可以解决许多他们从未接受过训练的任务,例如语言之间的翻译、检测文本中的情感或编写代码。

让聊天机器人解决新任务需要零样本和少量提示技术。

零样本提示


零样本提示指的是简单地要求模型做一些没有经过训练的事情。

“零”这个词是指没有给模型提供如何解决这项新任务的例子。我们只是要求它这样做,大型语言模型将使用对语言的一般理解以及在训练中学习到的信息来生成答案。

例如,假设你要求一个模型将一个句子从一种语言翻译成另一种语言。在这种情况下,它可能会产生一个不错的翻译,即使它从未接受过明确的翻译训练。同样,大多数LLM可以在没有明确接受情绪分析训练的情况下,区分听起来消极的句子和听起来积极的句子。

少样本提示


同样,少镜头提示意味着要求大型语言模型解决新任务,同时提供如何解决任务的示例。

这就像通过查询将一小部分训练数据传递给模型,使模型能够从用户提供的示例中学习。然而,与预训练或微调阶段不同,学习过程不涉及更新模型的权重。相反,模型保持冻结状态,但在生成响应时使用提供的上下文。这种上下文通常会在整个对话中保留,但模型以后无法访问新获取的信息。

有时,少镜头学习的特定变体会被区分开来,特别是在评估和比较模型性能时。“一次拍摄”意味着我们只为模型提供了一个例子,“两次拍摄”表示我们提供了两个例子——你明白要点了。

零样本和少速提示的示例。零样本问题:LLM代表什么?答案:{正确答案}。}几声枪响:牛哞、猫喵、狗汪汪、鸭子——。模特:嘎嘎。
在零样本提示中,模型根据其一般知识进行回答。在少镜头提示中,它根据提示中提供的示例回答条件。|来源:作者
 

少样本提示和少样本学习是一样的吗?


“Few-shot学习”和“零样本学习”是机器学习中众所周知的概念,早在LLM出现之前就已经进行了研究。在LLM的上下文中,这些术语有时与“few-shot提示”和“零样本提示”可互换使用。然而,它们并不相同。

少镜头提示是指构建一个由几个输入-输出对示例组成的提示,目的是为LLM提供一个可学习的模式。

少镜头学习是由少镜头提示引起的模型自适应,其中由于提供的示例,模型从无法解决任务变为能够解决任务。

在LLM的背景下,“学习”是暂时的,只适用于特定的聊天对话。模型的参数不会更新,因此它不会保留知识或能力。


 

零样本提示LLM的应用


在零样本提示中,我们依赖于模型的现有知识来生成响应。

因此,零样本提示对于一般请求是有意义的,而不是对于需要高度专业化或专有知识的请求。

何时使用零样本提示


在以下使用情况下,您可以安全地使用零样本提示:

  • 简单任务:如果任务简单、基于知识且定义明确,例如定义一个单词、解释一个概念或回答一个常识问题。
  • 需要一般知识的任务:对于依赖于模型预先存在的知识库的任务,例如总结某个主题的已知信息。它们更多的是澄清、总结或提供已知主题的细节,而不是探索新领域或产生想法。例如,“谁是第一个登上珠穆朗玛峰的人?”或“解释光合作用的过程。”
  • 探索性查询:当探索一个主题并想要一个广泛的概述或研究的起点时。这些问题不是为了寻求具体的答案,而是为了获得一个广泛的概述,以指导进一步的探究或研究。例如,“不同文化如何庆祝新年?”或“认知心理学的主要理论是什么?”
  • 直接指令:当你可以提供清晰、直接的指令,而不需要示例来让模型理解任务时。

何时不使用零样本提示


在以下情况下,请不要使用零样本提示:

  • 需要背景的复杂任务:如果任务需要理解细致入微的背景或模型在训练过程中不太可能获得的专业知识。
  • 所需的高度具体的结果:当您需要针对特定格式、风格或一组约束量身定制的响应时,如果没有输入输出示例的指导,模型可能无法遵守。


零样本提示用例示例


零样本提示将为您完成许多简单的NLP任务,如语言翻译或情感分析。

正如您在下面的屏幕截图中看到的,将一个句子从波兰语翻译成英语对ChatGPT来说是小菜一碟:

ChatGPT界面的屏幕截图。聊天很容易将一个句子从波兰语翻译成英语。
让我们尝试一种基于零样本提示的情绪分析策略:

ChatGPT界面的屏幕截图。使用基于零样本提示的策略进行情绪分析。
再一次,模型做对了。在没有明确训练的情况下,ChatGPT能够从文本中提取情绪,同时避免陷阱,例如第一个包含“好”一词的表达式,即使整体情绪是负面的。在最后一个例子中,该模型甚至提供了分类背后的推理。

零样本提示失败


让我们转向零样本提示不足的两个用例。回想一下,这些都是复杂的任务,需要背景和需要高度具体结果的情况。

考虑以下两个提示:

“考虑到当前的技术和未来前景,解释量子计算最新变化对加密的影响。”
“写一份法律简报,为一个特定但假设的场景辩护,在这个场景中,人工智能创造了一件艺术品,现在人工智能的开发者和一家声称拥有所有权的画廊之间存在版权纠纷。”
对于那些喜欢冒险的读者,请随时用你选择的法学硕士来尝试这些!然而,你不太可能因此得到任何有用的东西。

原因如下:

关于量子计算的第一个提示要求了解量子计算和加密技术的当前可能最前沿的发展。如果没有具体的例子或背景,法学硕士可能无法准确反映最新的研究、进步或对未来技术的细微影响。

第二个提示是要求提供法律简报,要求法学硕士遵守法律简报的格式和惯例,了解适用于人工智能的版权法的法律复杂性(其中许多仍存在争议),并根据假设但特定的情况构建论点。零样本提示不会为模型提供必要的指导方针或示例,以生成准确满足所有这些详细要求的响应。

少镜头提示的应用
在很少提示的情况下,LLM会根据我们提供的示例来调整其响应。因此,当看起来只有几个例子就足以发现一种模式时,或者当我们需要特定的输出格式或样式时,尝试一下是有意义的。然而,高度的任务复杂性和延迟限制是使用少量镜头提示的典型障碍。

何时使用少镜头提示
在以下情况下,您可以尝试用几个示例提示模型:

零样本提示是不够的:模型不知道如何在没有任何例子的情况下很好地执行任务,但有理由希望只有几个例子就足够了。
可用的训练数据有限:当我们只有几个例子时,对模型进行微调是不可行的,很少的镜头提示可能是传达例子的唯一方法。
自定义格式或样式:如果你希望输出遵循特定的格式、样式或结构,提供示例可以比试图通过文字传达所需的结果更有效地指导模型。
教授模型新概念:如果你想让模型理解一个它不熟悉的想法,几个例子可以作为快速入门。不过,请记住,这些新知识只会保留在手头的对话中!
提高准确性:当精度至关重要,并且您希望确保模型清楚地理解任务时。
何时不使用少数镜头提示
在以下情况下,您可能希望决定不使用少量提示:

一般知识任务:对于不需要特定格式或细致入微理解的简单任务,很少的镜头提示可能会矫枉过正,不必要地使查询复杂化(除非如前所述,准确性至关重要)。
速度或效率是一个优先事项:很少有镜头提示需要更多的输入,这可能会减慢构图和处理的速度。
示例不足:如果任务太复杂,无法在几个示例中解释,或者如果您可用的具体示例可能会引入太多的可变性,从而混淆模型。
复杂的推理任务:如果任务需要几个推理步骤,即使是一组示例也可能不足以让LLM获得我们想要的模式。
少数镜头提示用例示例
让我们来看看少数镜头提示被证明非常有效的例子。

使任务适应特定风格
想象一下,你为一家销售产品B的公司工作。你的主要竞争对手是产品a。你从互联网上收集了一些关于你的产品和竞争对手的评论。你想知道用户认为哪些产品更好。为此,您需要提示LLM对两种产品的评论情绪进行分类。

解决此任务的一种方法是手动制作一些示例,例如:

对你的产品(B)的好评被标记为正面。
对你的产品(B)的负面评价被标记为负面。
对竞争产品(A)的好评被标记为正面。
对竞争产品(A)的负面评价被标记为正面。
希望这足以让模型看到你在那里做什么。

ChatGPT界面的屏幕截图。使用少量提示来引导模型以基于特定标签格式的非传统方式解决传统任务(情绪分类)。
事实上,该模型正确地捕捉到了这种模式,并预测了竞争对手产品的好评对我们来说是负面的,甚至能够解释它:

(…)产品A的积极情绪表达被标记为“消极”,消极情绪表达被标签为“积极”(以及产品B的常规标签)。
这是一个例子,说明很少有镜头提示允许我们引导模型以基于特定标签格式的非传统方式解决传统任务(情绪分类)。

教授法学硕士新概念
很少有镜头提示特别适合教授法学硕士新的或想象的概念。当您需要模型来发现数据中的模式时,这可能很有用,因为这些模式需要理解常识无用的怪癖和细节。

让我们看看如何使用少量提示来教法学硕士我刚刚发明的一种新语言——布拉布拉语的基本语法。(如果你好奇的话,它在Blabland王国被广泛使用。)

ChatGPT界面的屏幕截图。使用几次提示来教法学硕士一门新的(想象的)语言的基本语法。
正如你所看到的,该模型产生了必须被视为正确的翻译。它破译了单词的意思,学会了区分不同的代词。我们可以肯定,这纯粹是在上下文中很少的镜头学习,因为Blablarian手稿不可能进入模型的预训练数据集。

这个例子很好地说明了少镜头学习的本质。如果我们要求模型在没有提供任何例子的情况下(即使用零样本提示)将“他多大了。然而,该模型确实对语言和语法的工作原理有一个大致的理解。这些知识足以识别我当场发明的一种假语言的模式。

很少有射击提示失败
最后,让我们来看一种情况,即很少的射击提示不会让我们走得太远。

我将借用最近在互联网上流传的这个著名的例子:

提示:

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

 

答复:

答案是正确的。

这个答案不正确。几个例子不足以学习模式——这个问题需要理解几个基本概念和逐步推理。即使有更多的例子也不太可能有帮助。

可以说,这类问题可能无法通过模式发现来解决,任何及时的工程都无法提供帮助。

但你猜怎么着:今天的LLM可以认识到他们面临着一种他们无法解决的问题。然后,这些聊天机器人将使用更适合特定任务的工具,就像我让你把两个大数字相乘,你会求助于计算器一样。

例如,OpenAI的ChatGPT不会产生幻觉般的响应,而是会生成一段Python代码来回答这个问题。(当您单击“完成分析”时,此代码可见。)ChatGPT将在解释器中执行生成的代码,并根据代码的输出提供答案。在这种情况下,这种方法得出了正确的答案:

ChatGPT界面的屏幕截图。Chat GPT生成一段Python代码来回答这个问题。(点击“分析完成”后,代码可见。)
这种“魔力”是OpenAI在幕后做一些工作的结果:它们向LLM提供额外的提示,以确保它知道你何时使用Python解释器等外部工具。

然而,请注意,这已经不是“少镜头学习”了。该模型没有使用提供的示例。事实上,即使在零样本提示设置中,它也会提供相同的答案。


另请参见
有效快速工程策略
阅读更多

结论
本文深入研究了大型语言模型的零样本和少提示,重点介绍了功能、用例和限制。

零样本学习使LLM能够完全依靠他们预先存在的知识和一般语言理解来处理他们没有明确训练过的任务。这种方法非常适合简单的任务和探索性查询,并且可以提供清晰、直接的指示。

很少有镜头学习允许LLM适应特定的任务、格式或风格,并通过在提示中加入少量示例来提高更复杂查询的准确性。

然而,这两种技术都有其局限性。零样本提示可能不足以满足需要细微理解或高度具体结果的复杂任务。少数镜头学习虽然强大,但并不总是一般知识任务或效率优先的最佳选择,而且它可能难以应对过于复杂的任务,无法通过几个例子来阐明。

作为用户和开发人员,了解何时以及如何应用零样本和少量提示可以使我们在克服大型语言模型的局限性的同时充分利用其潜力。

本文地址
最后修改
星期一, 十一月 18, 2024 - 10:13
Tags
 
Article