nlp大模型课程笔记

自然语言处理基础和应用

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
👆说明之前的大模型其实有很多都是基于迁移学习的方法。
在这里插入图片描述
在这里插入图片描述

attention机制的总结,解决了信息瓶颈的问题。
在这里插入图片描述
处理词组时BPE的过程
在这里插入图片描述
👆pos表示的是token所在的位置
在这里插入图片描述
👆技巧是layer normalization。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

prompt

在这里插入图片描述

参数高效微调方法

在这里插入图片描述
在这里插入图片描述
大多数的模型做的都是基座模型、不一定具备对话能力。
一般会通过基座模型,然后微调成对话模型。(难度很大)
大多数自己做的模型,都是根据已经训练成功的对话模型再微调。
在这里插入图片描述
👆语言没有sql、因为sql的语言不通用。

数据集分类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
👆总结,虽然大模型效果会好,但是到一定程度会有瓶颈。在这里插入图片描述
分词类型描述👆
由于显卡的存储是有限的,所以并行是非常有必要的👇
在这里插入图片描述
在这里插入图片描述
👆大模型里用的最多的是量化!!!!
在这里插入图片描述
8位整数表达64位浮点数,内存空间减少到只有原来的1/8。
浮点数变成整数叫量化、浮点数变成整数叫做反量化。

常见的量化方法

在这里插入图片描述

Vim用transformer做图像分类

在这里插入图片描述
这个模型完全没用cnn,把内容和位置同时加到一个向量,在第一个向量模仿bert做了一个cls。

文本微调

在这里插入图片描述
以上是讲授的微调技术。
在这里插入图片描述

在nlp领域的一些基础的预训练模型👆

在这里插入图片描述

👆为nlp一些常见的任务在这里插入图片描述

bert类预训练模型所用的一些微调的方法

在这里插入图片描述

GPT刚开始的微调是通过最后的全连接层+一个softmax来实现的在这里插入图片描述

因为模型太大了微调基本不好实现👆说了一种方法叫做in-context learning 先给几个翻译例子给模型,然后模型对于下面的例子做到的效果就比较好,很玄学。

在这里插入图片描述

大模型模型越大效果越好,可使用的范围也会变大。在这里插入图片描述

👆中的调查结果显示现在的1billion以上的大模型的使用率还是很低的。

在这里插入图片描述

现在所用的大模型的调试有两种思路

1、通过prompt-learning进行调试
2、用delta tuning 通过 调试一小部分(0.1%或0.01%)来进行全面的微调。
在这里插入图片描述

没使用prompt之前,是通过👆预训练模型进行单词的预测,fine-tuning来进行分类的预测,两种方法区别较大。

在这里插入图片描述

把预训练模型加词,这样就把两种方法所做的事情联系起来了。👆,通过你prompt所加的词(it‘s 、it can do,it‘s longth is small/big)的不同,就可以把他看作是不同的分类。bert(双向attention)是用来做‘生成’的 ,但用这种token生成的方式也可以做‘分类’,gpt是做‘生成’的,现在也可以这样处理让他做‘理解’。

在这里插入图片描述

👆的例子就是用bert做情感分类(bert双向注意力机制刚开始的目的是用来做‘理解’)。

在这里插入图片描述

GPT正常是做预测👆

在这里插入图片描述

👆bert做理解

在这里插入图片描述

通过一些template可以实现一些人类逻辑的理解👆

template

在这里插入图片描述

template还可以做一些实体类型词的指定,这样可以更直接的提取信息。

在这里插入图片描述

分结构的template👆通过键值对的方式来提醒模型应该是从哪个方面去选择。

在这里插入图片描述

在机器学习的时候可能会做很多特征工程,在大模型现在这种状态,可能会做更多的提示工程(prompt engineering)。

在这里插入图片描述

👆模型生成什么样的template,还是取决于我们对于处理template的策略。

在这里插入图片描述

👆NLU(Natural Language Understanding)

"prompt"是一种用于引导模型生成输出的输入形式,而"data point"是机器学习中的一个基本单位,包含输入和输出。在某些情况下,prompt可以被视为一种特殊类型的数据点。

在这里插入图片描述

在上述这篇论文中说一个prompt大概等于50个data point。

prompt-learning: Verbalizer

在这里插入图片描述

👆其实是做的对于answer的答案进行分类,Mapping,通过计算给出词的概率,答案类别,可以是一个词或多个词,一个字符串,一个任意长的句子。verbalizer可以人为的去构造也可以自动的去生成。

在这里插入图片描述

怎么去用好对于verbalizer的问题是一个很需要研究的问题

在这里插入图片描述

prompt的institution是定义把预训练和下游任务之间的gap给弥补回来,通过额外的上下文提示去告诉模型怎么去做。

在这里插入图片描述

在这里插入图片描述

在预训练模型时加入prompt👆在这里插入图片描述

在预训练中进行prompt👇

在这里插入图片描述

PLM(Pre-trained Language Model)

👆所说的是,通过对一个120B的PLM进行六十个任务训练,训练的是一个auto-regressive的模型,每个任务在给出文本的时候给出问题,然后在问题的回答的时候给出OPTION提示,达到预训练的目的。这样在下一个给出的推理问题的时候,给出提示之后,通过之前训练的范式,也会有很好的理解语义的效果。

👆有一个特别引人深思的现象,80B之前的训练没有很好的效果,但是在80亿参数之后,突然对于这种理解类的效果特别好。

上述任务是通过很多类型的prompt训练模型之后,用一个新的任务,理解也会很好。

在这里插入图片描述

👆这个像1750亿级别的GPT3都没法在特定领域训练效果很好,但是如果用prompt-learning可能在较小的模型中针对性训练就可以效果很好。

Delta Tuning

只优化其中很小部分的参数,就能达到很好的效果。

在这里插入图片描述

对于fine-tuning可能同时调100多个任务,内存要求极高不可能实现,但是对于Delta tuning可能只需要每个人物抽取一部分Objects,几十兆或几百兆,就能达到不错的效果。但是技术点也有很多,Delta数据怎么选,模型怎么选,怎么进行tuning优化。

在这里插入图片描述

为什么Delta Tuning有效(work)呢,因为预训练模型的基础让模型的知识训练量到达了一定程度的规模👇

在这里插入图片描述

👆有一个说法非常理解:tuning更多的是去“激发”model学到的知识。

增量式:插入参数。

指定式(替换):哪些可训练,哪些不可训练。

重参数化式:用低秩的矩阵来代替模型完成微调。在这里插入图片描述

adapter-Tuning

1、增量式在这里插入图片描述

👆里面在进入transformer的时候加一个adapter 层,到时候训练的时候就只更改adapter层 只用整体变量的很小一部分。0.5%~8%。在这里插入图片描述

由于adapter的正向传播和反馈都得经过各个层变量,所以上述方法提供了一个方法,把adapter提出来做单独的训练,这样显存和内存使用的情况都少了很多,速度也会变快,非常巧妙。

在这里插入图片描述

在进transformer之前加一些prefixs,增加变量进行一定的微调训练。👆

在这里插入图片描述

2、指定式在这里插入图片描述

3、重参数化式

在前面已经讲过了,只在输入层加入一些embeddings

在这里插入图片描述

把120个任务压缩到一个低维的子空间里进行tuning👆在这里插入图片描述

把模型的矩阵参数认为是低秩的(其实不是)。

prefix-tuning、adapter、LoRA结合起来使用

在这里插入图片描述

Delta-tunning的联系👇

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

把tunning解释成:在离散状态下寻找最优控制器的过程。

在这里插入图片描述

其实通过图中可以发现,当模型为XXL时,各种调试方法的结果都会特别好。👆

以上的各种微调的方法,还是在进行人为的选择方法中来进行的,下面说一种可以人为选择的方法,在每个可定义优化的地方加上开关,进行Automatically search the structure。

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

提出了一种共享tuning的想法,把这些Delta-Tuning的调试模型都放在一个平台用来使用👆

这些Delta-tuning的方法就会使可以在一些平民化的GPU上面也可以进行训练使用,方便对于技术的下游实现应用。👇

在这里插入图片描述

👆这里有个细节,就是对于batch size大的情况效率会变慢,因为显存的占有空间都用在了对于训练的数据的储存,对于变量的计算速度会变慢。

Delta Tuning Summary

在这里插入图片描述

现有的tuning的方法,都在有一个验证的趋势,就是当模型变大之后,tuning的具体方法(prompt、delta、prefix)就有可能变得不重要。

在这里插入图片描述

相关论文👆

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值