深度学习:前沿技术-GPT 1 & 2 – Ling之博客(gpt2模型)
图解GPT⑵模型:理解Self Attention注意力机制及利用
概述
GPT⑵模型是一种基于Transformer的大范围语言模型,用于生成联贯的文本段落。它通过训练模型预测下一个词的几率来实现文字预测功能。GPT⑵使用了大量的数据集进行训练,其中包括WebText等多个源。通过自回归方式生成文本序列,采取了单向语言模型的训练方式。
一、Self Attention注意力机制
GPT⑵使用了Self Attention注意力机制来捕捉输入序列的上下文信息。Self Attention注意力机制允许模型根据区别位置的信息分配区别的注意力权重。通过注意力矩阵的计算,GPT⑵可以捕捉到输入序列中区别词之间的关系。
1. Self Attention的计算进程
Self Attention的计算进程包括三个步骤:
- 计算查询(Query)、键(Key)和值(Value)向量。
- 计算注意力分数,用于衡量区别位置之间的相关性。
- 根据注意力分数对值进行加权求和,得到终究的输出。
二、GPT⑵的利用
1. 文字生成
GPT⑵可以生成联贯的文本段落,可以用于自动作文、文本摘要等利用场景。通过输入一段文本,GPT⑵可以生成与之相应的、自然流畅的文本内容。
2. 文本分类与情感分析
GPT⑵可以对文本进行分类,包括情感分类、主题分类等。通过输入一段文本,GPT⑵可以输出相应的分类结果,帮助用户进行文本理解和分析。
3. 机器翻译
GPT⑵可以用于机器翻译任务,将一种语言的文本转换成另外一种语言。通过输入原始语言的文本,GPT⑵可以输出相应的翻译结果,实现跨语言的文本翻译功能。
4. 对话生成
GPT⑵可以用于对话生成任务,生成自然流畅的对话内容。通过输入对话的前几句话,GPT⑵可以生成符合上下文的回答,实现智能对话的功能。
总结
GPT⑵模型是一种基于Transformer的大范围语言模型,利用Self Attention注意力机制来捕捉输入序列的上下文信息。通过训练模型预测下一个词的几率,GPT⑵能够生成联贯的文本段落。该模型可以利用于文字生成、文本分类与情感分析、机器翻译和对话生成等多个领域,为用户提供更好的文本处理和理解能力。
gpt2模型的进一步展开说明
深度学习:前沿技术 – GPT 1 & 2
欢迎转载,作者:Ling,注明出处:深度学习:前沿技术-GPT 1 & 2
GPT 1
定义
GPT是“Generative Pre-Training”的简称,它是一种生成式的预训练模型。
两阶段进程
GPT的训练进程可以分为两个阶段:
第一个阶段是利用语言模型进行预训练;
第二阶段通过Fine-tuning的模式解决下游任务。
GPT VS ELMO
下图展现了GPT的预训练进程,与ELMO相比,它们在两个方面存在区别:
首先,GPT使用的特点抽取器不是RNN,而是Transformer。如前所述,Transformer的特点提取能力要强于RNN,这是一个明智的选择;
其次,GPT的预训练只采取了单向语言模型,即只根据单词Wi之前的上文Context-before来预测Wi。而ELMO在预测单词Wi时,同时使用了上文和下文。这样的选择其实不理想,由于它未将单词的下文斟酌在内,这限制了模型在其他任务中的表现,比如浏览理解。在处理任务时,可以同时斟酌上文和下文作出决策。如果预训练时未将单词的下文嵌入到Word Embedding中,那将是一个遗憾,由于它丢失了很多信息。
训练进程
输入前面的单词,输出下一个单词,中间包括Tranformer的Decoders+FFNN+Softmax。
使用
将训练好的Decoders作为Encoders,输入句子,得到每一个单词的特点向量,用于下游任务。
下图展现了GPT在第二阶段怎样使用:
首先,对区别的下游任务而言,你本来可以自由设计网络结构,现在需要与GPT的网络结构保持一致。然后,在履行下游任务时,利用预训练阶段学到的语言学知识来初始化GPT网络结构,这样做非常好。
其次,你可使用下游任务对网络进行Fine-tuning,调剂网络参数,使其更合适解决手头的问题。就是这样。你会不会想起了图象领域的预训练进程?这个进程和那个是一样的。
新问题
为了使区别的NLP任务接近GPT的网络结构,应当怎么改造?
GPT论文提供了以下改造方案:
分类问题:无需太多改动,只需添加起始和终结符号便可;
句子关系判断问题,比如Entailment:只需在两个句子之间添加一个分隔符便可;
文本类似性判断问题:将两个句子顺序颠倒作为两个输入,告知模型句子顺序其实不重要;
多项选择问题:多个输入,将文章和答案选项拼接作为输入便可。
通过上图可以看出,这类改造非常方便,区别任务只需要在输入部份进行改动便可。
优点
采取Transformer替换了LSTM,具有并行处理的能力和强大的特点提取能力。
缺点
没有ELMO的双向性质。
缺少炒作
GPT 2
GPT 2与GPT 1本质上没有太大区分。GPT 2通过增加Decoder层数和增加数据数量、广度和质量来改进性能。以下是GPT 2的对照方式:
GPT 1 VS GPT 2
数据质量:GPT 2更高,经过挑选;
数据广度:GPT 2更广,包括网页数据和各个领域的数据;
数据数量:GPT 2更大,WebText数据集包括800万个网页;
数据模型:模型更大,参数数量到达15亿;
结构变化:变化不大;
两阶段 vs 一步到位:GPT 1是两阶段模型,通过语言模型预训练,然后通过Fine-tuning训练区别任务的参数。GPT 2则直接通过引入特殊字符,一步到位解决问题,例如机器翻译任务。
Summary
模型大小和参数数量比较:
GPT⑵ Small: 345M;
GPT⑵ Extra Large: 6.5GB。
层数比较:
GPT 2, BERT, Transformer-XL。
我们知道完全的Seq2Seq模型包括Encoder和Decoder。
与BERT和Transformer相比,GPT2的主要区分可以用下图总结:
GPT 2:只能看到之前的内容,不能看到以后的内容,因此是一个Decoder模型;
BERT:可以同时看到上下文,因此是一个Encoder模型;
Transformer XL:如果输入太长,会被截断成多个片断,前一段的信息将为后一段提供服务,但也只能看到前文,不能看到后文,因此是一个Recurrent Decoder模型。
Decoder Only block
输入依然是由Token Embedding和Positional Encoding组成。
Self-Attention VS Masked Self-Attention:
从第三人称的视角来看,Self-Attention是一个强大的特点提取器。它能够在处理序列数据时全面捕捉到上下文关系和依赖关系。Masked Self-Attention与Self-Attention的区别的地方在于,Masked Self-Attention只能关注之前的内容。中文的「进一步展开说明」是指在预测下一个单词时,模型没法看到以后的单词。基于这样的限制,模型更加重视对上下文的理解和学习。
以上内容是关于GPT 1 & 2的详细介绍,希望对读者有所帮助。
gpt2模型的常见问答Q&A
问题1:GPT⑵模型是甚么?
答案:GPT⑵模型是一种基于Transformer的大范围无监督自回归语言模型。它由OpenAI组织于2019年发布,是其在GPT模型基础上的升级版。GPT⑵模型可以根据给定的上文来生成联贯的下文序列。
- 例如,给定一段文本作为上文,GPT⑵模型可以生成与该上文相关的语句。
- GPT⑵模型的训练数据包括了大量的互联网文本,其中包括WebText数据集等。
- GPT⑵模型由Transformer的多层自注意力机制组成,通过对输入文本进行编码和解码来实现文本生成。
问题2:GPT⑵模型的注意力机制是甚么?
答案:GPT⑵模型采取了自注意力机制(Self-Attention),这是一种用于处理文本序列的关键技术。自注意力机制可以帮助模型在生成文本时更好地理解上下文。
- 自注意力机制将输入的序列分别映照为查询(Query)、键(Key)和值(Value)。
- 通过计算查询与键的匹配度,模型可以取得每一个查询与其他键的注意力散布。
- 接下来,通过将注意力散布与对应的值相乘并求和,模型可以得到每一个查询所关注的值。
问题3:GPT⑵模型的训练数据是怎样的?
答案:GPT⑵模型的训练数据包括了大量的互联网文本,具体来讲,是通过从网上搜集的一个名为WebText的40GB大的数据集进行训练。
- WebText数据集包括了近8000万的网页文本数据,这些数据被用作GPT⑵模型的预训练语料库。
- 通过在这么大范围的数据集上进行训练,GPT⑵模型能够学习到丰富的语言知识和模式。
- 训练数据的多样性和范围是GPT⑵模型取得较好生成效果的重要因素之一。