2021-arxiv-GPT Understands, Too

这篇具有很好参考价值的文章主要介绍了2021-arxiv-GPT Understands, Too。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2021-arxiv-GPT Understands, Too

2021-arxiv-GPT Understands, Too,预训练模型,gpt

Paper: https://arxiv.org/abs/2103.10385
Code: https://github.com/THUDM/P-tuning

Prompt 简单理解

举例来讲,今天如果有这样两句评论:

1. 什么苹果啊,都没有苹果味,怪怪的味道,而且一点都不甜,超级难吃!
2. 这破笔记本速度太慢了,卡的不要不要的。

现在我们需要根据他们描述的商品类型进行一个分类任务,

即,第一句需要被分类到「水果」类别中;第二句则需要分类到「电脑」类别中。

一种直觉的方式是将该问题建模成一个传统文本分类的任务,通过人工标注,为每一个类别设置一个id,例如:

{
    '电脑': 0,
    '水果': 1,
    ....
}

这样一来,标注数据集就长这样:

什么苹果啊,都没有苹果味,怪怪的味道,而且一点都不甜,超级难吃!  1
这破笔记本速度太慢了,卡的不要不要的。    0
...

这种方法是可行的,但是需要「较多的标注数据」才能取得不错的效果。

由于大多数预训练模型(如BRET)在 pretrain 的时候都使用了 [MASK] token 做 MLM 任务,而我们在真实下游任务中往往是不会使用到 [MASK] 这个 token,这就意味着今天我们在训练下游任务时需要较多的数据集去抹平上下游任务不一致的 gap。

那,如果我们没有足够多的训练数据怎么办呢?

prompt learning 的出现就是为了解决这一问题,它将 [MASK] 的 token 引入到了下游任务中,将下游任务构造成和 MLM 类似的任务。

举例来讲,我们可以将上述评论改写为:

这是一条[MASK][MASK]评论:这破笔记本速度太慢了,卡的不要不要的。

然后让模型去预测两个 [MASK] token 的真实值是什么,那模型根据上下文能推测出被掩码住的词应该为「电脑」。

由于下游任务中也使用了和预训练任务中同样的 MLM 任务,这样我们就可以使用更少的训练数据来进行微调了。
但,这还不是 P-tuning。

通过上面的例子我们可以观察到,构建句子最关键的部分是在于 prompt的生成,即:

「这是一条[MASK][MASK]评论:」(prompt) + 这破笔记本速度太慢了,卡的不要不要的。(content)

被括号括起来的前缀(prompt)的生成是非常重要的,不同 prompt 会极大影响模型对 [MASK] 预测的正确率。

那么这个 prompt 怎么生成呢?

我们当然可以通过人工去设计很多不同类型的前缀 prompt,我们把他们称为 prompt pattern,例如:

这是一条[MASK][MASK]评论:
下面是一条描述[MASK][MASK]的评论:
[MASK][MASK]...

但是人工列这种 prompt pattern 非常的麻烦,不同的数据集所需要的 prompt pattern 也不同,可复用性很低。

那么,我们能不能通过机器自己去学习 prompt pattern 呢?

这,就是 P-Tuning。

P-Tuning 架构

给定一个预训练的语言模型 M M M,一个离散输入标记序列 x 1 : n = { x 0 , x 1 , … , x n } \mathbf{x}_{1: n}=\left\{x_0, x_1, \ldots, x_n\right\} x1:n={x0,x1,,xn}将由预训练嵌入层 e ∈ M \mathbf{e} \in \mathcal{M} eM映射到输入嵌入 { e ( x 0 ) , e ( x 1 ) , … , e ( x n ) } \left\{\mathbf{e}\left(x_0\right), \mathbf{e}\left(x_1\right), \ldots, \mathbf{e}\left(x_n\right)\right\} {e(x0),e(x1),,e(xn)}。在特定场景中,在上下文 x x x 的条件下,作者使用一组目标标记 y y y 的输出嵌入进行下游处理。例如,在预训练中, x x x 指的是未屏蔽的令牌,而 y y y 指的是 [MASK] 标记;在句子分类中, x x x 指的是句子标记,而 y y y 通常指的是 [CLS]。
2021-arxiv-GPT Understands, Too,预训练模型,gpt
提示 p p p 的功能是将上下文 x x x、目标 y y y 和自身组织到模板 T 中。例如,在预测一个国家首都的任务 (LAMA-TREx P36) 中,模板可能是“The capital of Britain is [MASK]”。(见图2),其中“The capital of … is … .“是提示,”Britain"是上下文,”[MASK]“是目标。提示可以非常灵活,我们甚至可以将它们插入到上下文或目标中。

V V V 指语言模型 M M M 的词汇表, [ P i ] [P_i] [Pi] 指模板 T 中的第 i i i 个提示标记。为简单起见,给定模板 T = { [ P 0 : i ] , x , [ P i + 1 : m ] , y } T=\left\{\left[\mathrm{P}_{0: i}\right], \mathbf{x},\left[\mathrm{P}_{i+1: m}\right], \mathbf{y}\right\} T={[P0:i],x,[Pi+1:m],y},与满足 [ P i ] ∈ V \left[\mathrm{P}_i\right] \in \mathcal{V} [Pi]V 并将 T T T 映射为的传统离散提示相比
2021-arxiv-GPT Understands, Too,预训练模型,gpt
相反,P-tuning 将 [Pi] 视为伪令牌,并将模板映射到
2021-arxiv-GPT Understands, Too,预训练模型,gpt
其中 h i ( 0 ≤ i < m ) h_i(0 \leq i<m) hi(0i<m) 是可训练的嵌入张量。能够找到超越 M M M V V V 可以表达的原始词汇的更好的连续提示。最后,利用下游损失函数 L L L,可以对连续提示 h i ( 0 ≤ i < m ) h_i(0 \leq i<m) hi(0i<m)进行差分优化
2021-arxiv-GPT Understands, Too,预训练模型,gpt

优化

1)离散性 M \mathcal{M} M的原始词嵌入 e e e在预训练后已经变得高度离散。如果用随机分布初始化 h h h,然后用随机梯度下降 (SGD) 进行优化,这已被证明只会改变小邻域中的参数,优化器很容易陷入局部最小值。
2)关联:另一个问题是,作者认为提示嵌入 h i h_i hi的值应该是相互依赖的,而不是独立的。需要一些机制来将提示嵌入相互关联。

鉴于这些挑战,在 P-tuning中,建议使用提示编码器将 h i h_i hi 建模为序列,该序列由一个非常精简的神经网络组成,可以解决离散性和关联问题。作者选择双向长短期记忆网络 (LSTM),并使用 ReLU 激活的两层多层感知器 (MLP) 来编码离散性。从形式上讲,将 h i ′ h_i^{\prime} hi嵌入到语言模型 M \mathcal{M} M中的实际输入源自
h i = MLP ⁡ ( [ h i → : h i ← ] ) = MLP ⁡ ( [ LSTM ⁡ ( h 0 : i ) : LSTM ⁡ ( h i : m ) ] ) \begin{aligned} h_i & =\operatorname{MLP}\left(\left[\overrightarrow{h_i}: \overleftarrow{h_i}\right]\right) \\ & =\operatorname{MLP}\left(\left[\operatorname{LSTM}\left(h_{0: i}\right): \operatorname{LSTM}\left(h_{i: m}\right)\right]\right) \end{aligned} hi=MLP([hi :hi ])=MLP([LSTM(h0:i):LSTM(hi:m)])

尽管 LSTM 头的使用确实为连续提示的训练增加了一些参数,但 LSTM 头比预训练模型小几个数量级。此外,在推理中,只需要输出嵌入 h h h,就可以丢弃 LSTM 头。

参考

https://zhuanlan.zhihu.com/p/583022692文章来源地址https://www.toymoban.com/news/detail-718072.html

到了这里,关于2021-arxiv-GPT Understands, Too的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GPT模型训练实践(1)-基础概念

             GPT 是 Generative Pre-trained Transformers 的缩写,一种先进的深度学习模型,旨在生成类人文本。 GPT 的三个组成部分Generative、Pre-trained 和 Transformer,其解释如下: Generative 生成: 生成模型是用于生成新数据的统计模型。这些模型可以学习数据集中变量之间的关系,以

    2024年02月11日
    浏览(45)
  • GPT模型训练实践(2)-Transformer模型工作机制

            Transformer 的结构如下,主要由 编码器-解码器 组成,因为其不需要大量标注数据训练和天然支持并行计算的接口,正在全面取代CNN和RNN: 扩展阅读:What Is a Transformer Model? ​ ​ 其中 编码器中包含自注意力层和前馈神经网络层; 解码器包含自注意力层、编码器-解

    2024年02月12日
    浏览(48)
  • 大语言模型的预训练[2]:GPT、GPT2、GPT3、GPT3.5、GPT4相关理论知识和模型实现、模型应用以及各个版本之间的区别详解

    在自然语言处理问题中,可从互联网上下载大量无标注数据,而针对具体问题的有标注数据却非常少,GPT 是一种半监督学习方法,它致力于用大量无标注数据让模型学习 “常识”,以缓解标注信息不足的问题。其具体方法是在针对有标签数据训练 Fine-tune 之前,用无标签数据

    2024年02月16日
    浏览(59)
  • 花费7元训练自己的GPT 2模型

    在上一篇博客中,我介绍了用Tensorflow来重现GPT 1的模型和训练的过程。这次我打算用Pytorch来重现GPT 2的模型并从头进行训练。 GPT 2的模型相比GPT 1的改进并不多,主要在以下方面: 1. GPT 2把layer normalization放在每个decoder block的前面。 2. 最终的decoder block之后额外添加了一个lay

    2024年02月14日
    浏览(38)
  • 【预训练语言模型】使用Transformers库进行GPT2预训练

    基于 HuggingFace的Transformer库,在Colab或Kaggle进行预训练。 本教程提供:英文数据集wikitext-2和代码数据集的预训练。 注:可以自行上传数据集进行训练 目的 :跑通自回归语言模型的预训练流程 注意:在Colab上训练时,最好将datasets更新到最新版(再重启kernel),避免版本低报

    2024年03月14日
    浏览(45)
  • GPT实战系列-如何用自己数据微调ChatGLM2模型训练

    广告文案生成模型 输入文字 :类型#裙 颜色#蓝色 风格#清新*图案#蝴蝶结 输出文案 :裙身处采用立体蝴蝶结装饰辅以蓝色条带点缀,令衣身造型饱满富有层次的同时为其注入一丝甜美气息。将女孩清新娇俏的一面衬托而出。 训练和测试数据组织: 数据可以从 下载链接,t

    2024年02月06日
    浏览(50)
  • MATLAB算法实战应用案例精讲-【深度学习】预训练模型GPT&XLNet

    目录 GPT 1. 介绍 1.1 GPT的动机 2. 模型结构 3. GPT训练过程 3.1 无监督的预训练

    2024年02月15日
    浏览(51)
  • 斯坦福大学开源Alpaca模型源码,性能与GPT-3.5相当比GPT4逊色,训练成本不到100美元(教程含源码)

    GPT-3.5 (text-davinci-003)、ChatGPT、Claude 和 Bing Chat 等指令遵循模型现在被许多用户广泛使用,包括用于与工作相关的任务。然而,尽管它们越来越受欢迎,但这些模型仍然存在许多需要解决的缺陷。虚假信息、社会刻板印象和有毒语言是与这些模型相关的一些问题。 为了解决这些

    2023年04月10日
    浏览(49)
  • 微软最新研究成果:使用GPT-4合成数据来训练AI模型,实现SOTA!

    文本嵌入是各项NLP任务的基础,用于将自然语言转换为向量表示。现有的大部分方法通常采用 复杂的多阶段训练流程 ,先在大规模数据上训练,再在小规模标注数据上微调。此过程依赖于手动收集数据制作正负样本对,缺乏任务的多样性和语言多样性。 此外,大部分方法采

    2024年02月02日
    浏览(52)
  • ChatGPT 的核心 GPT 模型:探究其生成式预训练变换架构的革新与应用潜力

    GPT(Generative Pre-trained Transformer)模型是一种深度学习模型,由OpenAI于2018年首次提出,并在随后的几年中不断迭代发展,包括GPT-2、GPT-3以及最新的GPT-4。GPT模型在自然语言处理(NLP)领域取得了显著成果,特别是在语言生成、文本理解、问答系统、代码编写等方面表现出强大

    2024年04月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包