前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >介绍提示学习、连续提示、离散提示

介绍提示学习、连续提示、离散提示

作者头像
叶庭云
发布2024-05-25 08:18:47
1560
发布2024-05-25 08:18:47
举报
文章被收录于专栏:Python进阶之路

2021 年,提示学习(Prompt Learning)的研究浪潮兴起。而早在 2020 年,OpenAI 在 NeurIPS 2020 发表的一篇论文 Language Models are Few-Shot Learners 中就已经探讨了如何利用提示学习来提升大语言模型(Large Language Models,LLMs)的推理能力。论文中介绍了 Zero-shot、One-shot、Few-shot 三种不同的提示方法,如下图示意。

在这里插入图片描述
在这里插入图片描述

提示学习(Prompt Learning)是大语言模型领域中的一种调优方法。它的核心理念是调整模型以对特定的输入提示(Prompt)做出响应。这些提示可以是各种形式的文本,如问题、指令或其他类型的语句。在提示学习的过程中,模型的目标是产生一个与输入提示相关且符合预期行为的输出。例如,当输入提示是一个问题时,模型的任务便是生成一个合理的答案。

典型的提示学习方法:其实是指在使用预训练语言模型(Pre-trained Language Models)来处理特定下游任务(例如文本分类、问答等)时,并不对这些预训练模型进行复杂的微调(Fine-tuning)。这意味着,我们无需用传统的有监督训练方法来使模型适应这些特定任务。这种方法主要依赖于给模型提供的提示信息(Prompts),通过这些精心设计的提示信息,来 “引导” 预训练好的语言模型正确理解并完成任务需求。这种方法的核心在于,通过少量的提示信息,激活或调用预训练语言模型中的相关知识,从而完成特定的下游任务,无需对模型进行额外的训练。

在提示学习中,Zero-shot、One-shot 和 Few-shot 三者之间的差异为

  • Zero-shot 学习指的是模型在没有看到任何具体示例的情况下,直接对未知类别进行分类或执行任务的能力。在这种情况下,模型仅依赖于其在训练过程中获得的知识和泛化能力。对于提示学习来说,Zero-shot 场景通常意味着你会给模型一个任务描述或一个问题,但不提供任何具体的示例作为参考。模型需要根据其先前的知识和理解来生成答案。
  • One-shot 学习是指模型在看到一个(或每类一个)具体示例后,就能够执行某项任务或识别新类别的能力。这意味着模型通过观察单一实例就能够学习新概念或任务。在提示学习中,这通常涉及到向模型展示一个示例(包括问题和答案),然后立即要求它处理一个类似但不同的问题。这要求模型能够从极少量的数据中迅速学习并泛化。
  • Few-shot 学习与 One-shot 学习类似,指的是模型在看到少量(通常是几个而非一个,但远少于传统机器学习项目中使用的样本数量)示例后执行任务的能力。这种方法允许模型通过观察几个示例来更好地理解新任务或类别。在提示学习框架下,这意味着你会给模型提供几个相关问题及其答案作为示例,然后让它处理新问题。

小结:Zero-shot、One-shot 和 Few-shot 学习代表了 LLM 处理未知任务时依赖已有知识量级的不同阶段。Zero-shot 依赖于模型的泛化能力;One-shot 要求模型能从单一实例中快速学习;而 Few-shot 则提供了稍微多一些的示例来帮助模型适应新任务。提示学习作为一种灵活的方法,在所有这三种情况下都非常有用,因为它允许研究人员以自然语言形式直接与模型交互,从而更容易地引导模型理解和执行新任务。

Prompt,也称为提示,其字面含义是在输入时为模型提供一定的上下文信息。它的作用就像一个指示标志,向模型说明或指导接下来应该执行的任务。换句话说,Prompt 可以将下游任务转化为预训练模型期望接收的形式,从而适应并完成特定任务。模型在下游任务中的表现对提示词(Prompt)的选择十分敏感,即模型的性能会因提示词的不同而有显著差异。选择合适的提示词对于确保模型在特定下游任务中的良好表现至关重要。如果设计出合适的提示(Prompt),我们可以利用预训练的大语言模型来完成多种任务,无需为每个特定任务进行再训练和微调。此外,使用 Prompt 可以显著提高少样本学习的效果,甚至在模型未接触任何样本数据的情况下,也能展现出良好的性能。简而言之,这种方法可以大大节省模型训练的时间和资源,提高模型的通用性和效率。

这种方法的一个显著优点是,即使在没有明确标签的情况下,也能训练模型。这得益于模型可以通过自我监督的方式,从海量文本数据中学习如何对各类提示进行响应。然而,提示学习也面临一些挑战。例如,选择适当的提示对模型的性能至关重要,但这通常需要进行大量的实验和调整。此外,由于模型是在海量的文本数据上进行训练的,因此可能会学习到一些我们不希望的偏见或错误信息。

连续提示(Continuous Prompts、Soft Prompts):这种方法使用可学习的向量,而非手工设计的提示,以生成和优化连续空间中的特征向量。例如,前缀调整(Prefix Tuning)的目标是学习一种可以端到端优化的连续提示,而不是依赖于人工提示工程。当输入前缀时,学习到的前缀会提供必要的上下文,以引导模型行为以实现任务目标。通过利用提示并实现连续提示的端到端优化,ACL 2024 Prefix-Tuning - 前缀调整提供了一种方法,该方法无需大量参数调整就能适应语言模型。该前缀允许我们以轻量级的方式将特定任务的知识注入到预训练模型中。

在这里插入图片描述
在这里插入图片描述

离散提示(Discrete Prompts):这是人类手工设计的提示词,易于阅读和理解。在提示调整领域,离散提示是用于指导语言模型行为的特定手工制作的文本提示,适用于各种自然语言处理任务。这些提示由人类设计,由可解释的单词和标记构成。这些提示是通过枚举或解析等技术创建的,旨在在训练或推理过程中向模型提供指令或约束。离散提示与软提示有所不同,软提示是通过基于梯度的方法优化的连续特征向量。离散提示具有可解释性和可在不同模型中重复使用的优点,但优化它们可能具有挑战性,而且它们可能并不总是遵循人类语言模式。因此,离散提示可能并非总是最优的。

与离散提示相比,通过学习得到的连续提示往往会为了提高性能而牺牲可读性、可解释性和可迁移性,这引发了人们的不信任,并给跨模型迁移带来了挑战。因此,对于大多数人来说,他们更倾向于通过手工提示工程(离散提示)来利用大语言模型的能力。

在这里插入图片描述
在这里插入图片描述

随着社会的发展,我们将遇到越来越多的专业领域(也称为垂直领域),并且新的专业领域产生的速度会越来越快。这就要求预训练语言模型在缺乏大量领域特定数据的情况下,必须能够迅速适应并有效工作。在传统的微调方法之后,提示学习(Prompt Learning)已经成为一种非常有效的策略。它可以在短时间内帮助预训练语言模型迅速提升性能。提示学习实际上是一种人工引导的策略,它通过深入分析预训练语言模型,帮助我们更好地理解模型掌握的知识和能力。这种方法不仅可以提升模型在特定任务上的性能,还可能推动更强大的语言模型的开发和出现。总的来说,提示学习是一种强大的工具,它使大语言模型能够处理各种复杂的任务,但同时也需要进行谨慎的管理和调整。

📚️ 参考链接:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档