跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified

category

TL;DR

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

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

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

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


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

聊天机器人应用程序中使用的LLM通常经历两个训练阶段。在预训练中,他们学会预测下一个单词。在微调过程中,他们学会给出具体的回应。|来源:作者
如今聊天机器人中使用的大多数LLM都经过两个阶段的培训:

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


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

ChatGPT界面的屏幕截图。你:“快棕狐狸跳过去”,聊天:“懒狗”。

不出所料,它正确地完成了这句著名的句子,很可能在预训练数据中多次看到它。如果你曾经使用过ChatGTP,你也会知道聊天机器人似乎拥有丰富的事实知识,通常会尽力提供帮助,避免粗俗。


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

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

零样本提示


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

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

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

少样本提示


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

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

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

在零样本提示中,模型根据其一般知识进行回答。在少数样本提示中,它根据提示中提供的示例来回答条件反射。|来源:作者
 

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


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

少样本提示是指构建一个由输入输出对的几个例子组成的提示,目的是为LLM提供一个可以拾取的模式。

少样本学习是由少样本提示产生的模型自适应,其中,由于所提供的示例,模型从无法解决任务变为能够解决任务。

在LLM的上下文中,“学习”是暂时的,仅适用于特定的聊天会话。模型的参数没有更新,因此无法保留知识或功能。

 

零样本提示LLM的应用


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

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

何时使用零样本提示


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

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

何时不使用零样本提示


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

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

零样本提示用例示例


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

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

让我们尝试一种基于零样本提示的情绪分析策略:

同样,这个模型做对了。在没有对该任务进行明确训练的情况下,ChatGPT能够从文本中提取情感,同时避免陷阱,例如第一个表达式中包含“好”一词,即使总体情感是负面的。在最后一个更微妙的例子中,该模型甚至提供了分类背后的推理。

零样本提示失败


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

考虑以下两个提示:

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

原因如下:

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

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

少样本提示的应用


在几乎没有样本提示的情况下,LLM将其响应条件设置在我们提供的示例上。因此,当看起来只有几个例子就足以发现模式时,或者当我们需要特定的输出格式或样式时,尝试一下是有意义的。然而,高度的任务复杂性和延迟限制是使用少样本提示的典型障碍。

何时使用少样本提示


在以下情况下,可以尝试用几个示例提示模型:

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

何时不使用少样本提示


在以下情况下,您可能需要决定不进行少量放炮提示:

  • 一般知识任务:对于不需要特定格式或细致入微理解的简单任务,很少的样本提示可能会过于夸张,并使查询不必要地复杂化(除非如前所述,准确性至关重要)。
  • 速度或效率是一个优先事项:很少的样本提示需要更多的输入,这可能会减慢合成和处理速度。
  • 示例不足:如果任务过于复杂,无法用几个示例进行解释,或者您现有的特定示例可能会引入太多可变性,从而混淆模型。
  • 复杂的推理任务:如果任务需要几个推理步骤,即使是一组例子也可能不足以让LLM获得我们想要的模式。
     

少样本提示用例示例


让我们来看看一些例子,在这些例子中,很少的样本提示被证明是非常有效的。

使任务适应特定的风格


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

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

  • 对你的产品(B)的好评被标记为正面评价。
  • 对你的产品(B)的差评被贴上了负面标签。
  • 对竞争产品(A)的好评被标记为正面评价。
  • 对竞争产品(A)的差评被标记为正面评价。


这应该足以让模型看到你在那里做什么。

事实上,该模型正确地选择了模式,并预测竞争对手产品的好评对我们来说是负面的,甚至能够解释这一点:

(…)产品A的正面情绪表达被标记为“负面”,负面情绪表达被标签为“正面”(以及产品B的传统标签)。
这是一个例子,说明很少的样本提示使我们能够引导模型以基于特定标签格式的非传统方式解决传统任务(情绪分类)。

教授LLM新概念


很少有样本提示特别适合教授LLM新概念或想象概念。当您需要模型来发现数据中的模式,而这些模式需要了解常识无用的地方的怪癖和细节时,这可能会很有用。

让我们看看如何使用少量提示来教授LLM我刚刚发明的一种新语言Blablarian的基本语法。(如果你好奇的话,它在布兰德王国被广泛使用。)

正如你所看到的,这个模型产生了一个必须被视为正确的翻译。它破译了单词的含义,并学会了区分不同的代词。我们可以肯定,这纯粹是在少样本学习的背景下进行的,因为Blablarian的手稿不可能进入模型的预训练数据集。

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

少数样本提示失败


最后,让我们来看看这样一种情况:很少的射击提示不会让我们走得很远。

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

Prompt:

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

回答

答案是正确的。

这个答案不正确。仅仅举几个例子是不够的——这个问题需要理解几个基本概念和逐步推理。即使是数量大得多的例子也不太可能有帮助。

可以说,这类问题可能无法通过模式发现来解决,也没有任何快速的工程可以帮助解决。

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

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

这种“魔力”是OpenAI在幕后做一些工作的结果:它们向LLM提供额外的提示,以确保它知道何时使用Python解释器等外部工具。

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

结论


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

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

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

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

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

本文地址
最后修改
星期六, June 1, 2024 - 20:39
Article