d2l 李沐(笔记:李沐老师GPT系列讲解)gpt 硬核推荐

 

在这个快速发展的互联网时代,每1天都有新的创新和突破出现。现在,就让我们聊1聊最近互联网界的1些热门话题,看看有哪些令人瞠目结舌的事情正在发生。

今天分享的是李沐大神讲解GPT系列论文的读书笔记GPT可以简单理解为是transformer的解码器GPT,GPT,GPT 论文精读【论文精读】_哔哩哔哩_bilibili​www.bilibili.com/video/BV1AF411b7xQ?from=search&seid=15281165116455457971&spm_id_from=333.337.0.0。

上图是transformer,Bert,GPT的发表时间以及引用量GPTGPT1论文传送门​www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf。

motivation:虽然无标注的文本很多,但是在下流任务上,有标注的文本很少作者采用语言模型的方式在无标注文本下进行预训练,以后再在各个下流任务长进行微调整使用没有标号文本的时候遇到的1些困难:1,没有知道用什么损失函数。

2,如何将学到的文本的表示传递到下流的子任务上因为NLP上的这些子任务之间的差别还是比较大的,没有1个统1的表示GPT提出了1种方法:在没有标注的数据集中进行预训练,以后再在有标注的下流任务长进行微调模型次要3个方向的贡献:1,如何在没有标注的数据集长进行预训练;2,如何做微调;3,如何在每个子任务上表示其输入。

预训练:输入含有大量token的语料库:U={u1,u2,…,un}\mathcal{U}=\left\{ u_{1},u_{2},…,u_{n} \right\}, GPT使用1个语言模型来极大化这个似然函数。

具体的说,语言模型就是给定第 i−ki-k 到第 i−1i 个词,预测第 ii 个词出现的概率其中 kk 被称为滑动窗口,当 kk 的值被设置的很大的时候,模型将会看到更多的器材,当 kk 的值被设计的很小时,模型将会看到更少的器材

语言模型的损失函数:其实是1个乘法规则,但是因为有log,所以就变成加法作者选择transformer作为骨干模型,其中作者选择transformer的decoder。

表示transformer decoder当输入是 U=(u−k,…,u−1)U=\left( u_{-k},…,u_{}\right) 时,将这些词通过映射矩阵转化为词嵌入,再加上位置嵌入,再通过transformer_block对其进行更新,最后输入到全连接层,得到最终的预测值。

微调:当预训练后,作者将预训练好的参数直接迁移到下流任务中来下流任务数据集表示为 C\mathcal{C} ,其中数据集中的每1个数据含有1系列的token: ,,x1,…,xmx^{1},…,x^{m}。

,标签为 yy 。将这些数据喂到预训练好参数的transformer decoder中,将得到的结果用softmax进行分类,得到最后的结果。

下流任务的预测部分将预测值和真实值进行比对,得到有监督部分的损失函数,如下所示:

有监督部分的损失函数作者发现将预训练时的损失函数和有监督的损失函数加在1起,可以取得更好的效果,因此,作者将两部分损失加在1起,进行训练。

下流任务的损失=有监督的损失+预训练的损失如何把NLP里面很没有1样的子任务表示成1个我们想要的形式(表示成1个序列+对应的标签)

预训练模型和微调之间的差异classification分类任务:1段文字,以后输出这段文字的标签start+文本+extract输入到transformer_block中,以后将得到的结果输入到线性分类器中,得到最终的结果。

entailment蕴含任务:给出两段文字,以后输出这两段文字是否是相互关联的start+文本1+delim+文本2+extract输入到transformer_block中,以后将得到的结果输入到线性分类器中,得到最终的结果。

similarity相似任务:给出两段文字,以后输出这两段文字是否相关start+文本1+delim+文本2;start+文本2+delim+文本1,将以上两个标签输入到transformer_block中,以后将得到的结果输入到线性分类器中,得到最终的结果。

multiple choice多项选择任务:给出1个问题和几个候选选项,以后挑选出正确的答案strat+文本+delim+候选选项1,……strat+文本+delim+候选选项n,分别输入到transformer_block中,以后将得到的结果输入到线性分类器中,得到最终的结果。

实验:数据集BooksCorpus(数据集中包括7000篇书),以后使用12层transformer decoder,每1层的维度是768其中BERT-base的维度和GPT的维度是1致的,BERT-base其实就是为了和GPT进行对比的。

GPT2GPT2传送门​www.persagen.com/files/misc/radford2019language.pdfGPT2没有仅仅使用1个更大的数据集,使用更大的模型去学习,还提出了1个新的更难的任务,z

ero-shot,零少样本学习,即将预训练好的模型,直接接诸多的下流任务,在多个任务下都可以取得很好的效果GPT3GPT3传送门​eva.fing.edu.uy/pluginfile.php/360914/mod_folder/content/0/Language%20Models%20are%20Few-Shot%20Learners.pdf。

GPT3的参数量进1步的增大,并且使用few-shot learning的方法,取得了很好的效果GPT3特别大,在计算子任务的时候没有需要计算梯度,而且性能是非常好的最近1些年来,大家都使用预训练好的语言模型,以后再进行微调,这其实是有问题的:微调需要对每1个任务有1个任务相关的数据集以及和任务相关的微调。

1,需要1个大的数据集,需要对其进行标号,当1个样本没有出现在数据分布的时候,泛化性没有见得比小模型要好,GPT3是1个1750亿参数的模型,评估用的是3种方法:1,Few-shot learning,对每个子任务,提供大概1000个训练样本。

2,特殊情况是one-shot模型,也就是每1个类别只有1个样本3,zero-shot,1个样本都没有提供,直接让其进行测试

GPT中in-context learning和传统fine-tune的区别GPT提出了1种in-context learning的方法,就是给出任务的描述和1些参考案例的情况下,模型能根据当前任务描述、参数案例明白到当前的语境,即使在下流任务和预训练的数据分布没有1致情况下,模型也能表现很好。

注意的是,GPT并没有利用实例进行Fine-tune,而是让案例作为1种输入的指导,帮助模型更好的完成任务这里再把语言模型类比成1个博览群书的人,虽然这小我很厉害,但你给他1些具体任务让他解决时,他还是会懵逼,例如我现在叫这小我1个情感分析的任务,输入"请给上面影评做情感分析,判断正面还是负面:这个电影有点冗长,但是画面还是没有错的,属于__"。

小我是蒙的,即使他博览群书,但他没有知道评价标准,这句话即有正面的因素,也有负面的因素,究竟是分到正面还是负面好?但这时候,你给任务的时候,顺便给多1个参考案例,输入变成“请给上面影评做情感分析,判断正面正面还是负面:这个电影剧情很差,幸好选的演员把电影撑起来了,属于正面。

这个电影有点冗长,但是画面还是没有错的,属于__” ,这时候,这个博览群书的人就知道该把这个样本分到正面了在zero-shot的设置条件下:先给出任务的描述,以后给出1个测试数据对其进行测试,直接让预训练好的模型去进行任务测试。

在one-shot的设置条件下:在预训练和真正翻译的样本之间,插入1个样本做指导好比说在预训练好的结果和所要执行的任务之间,给1个例子,告诉模型英语翻译为法语,应该这么翻译在few-shot的设置条件下:在预训练和真正翻译的样本之间,插入多个样本做指导。

好比说在预训练好的结果和所要执行的任务之间,给多个例子,告诉模型应该如何工作

本文转载于万像专栏:https://www.wanxiangsucai.com/read/

为您推荐

d2l 李沐(笔记:李沐老师GPT系列讲解)gpt 硬核推荐

d2l 李沐(笔记:李沐老师GPT系列讲解)gpt 硬核推荐

今天分享的是李沐大神讲解GPT系列论文的读书笔记。GPT可以简单理解为是transformer的解码器。 GPT,GPT-2,GPT-...

2023-05-24 栏目:科技派

当前非电脑浏览器正常宽度,请使用移动设备访问本站!