1、学习总结
1.1GPT介绍
和BERT类似,GPT-1同样采取pre-train + fine-tune的思路:先基于大量未标注语料数据进行预训练,后基于少量标注数据进行微调。但GPT-1在预训练任务思路和模型结构上与BERT有所差别。
1.1.1GPT Input
- GPT-1的输入同样为句子或句子对组成,并添加special tokens。
[BOS]:表示句子的开始,(论文中给出的token表示为[START]),添加到序列最前;
[EOS]:表示序列的结束,(论文中的给出的[EXTRACT]),添加到序列最后,在进行分类任务时,会将该special token对应的输出接入输出层;我们也可以理解为该token可以学习到整个句子的语义信息;
[SEP]:用于间隔句子对中的两个句子。
- GPT Embedding分三类: token Embedding、Position Embedding、Segment Embedding
- 将三种信息分别输入Embedding层。
1.1.2GPT Model Architecture
GPT由Decoder Layer堆叠而成,Decoder Layer组成与Transformer Decoder Layer相似,只不过没有了计算encoder输出和decoder输入之间注意力分数的multi-head attention。
1.1.3GPT模型规范
1.1.4GPT生成式预训练变换器
相比于BERT注重文本理解,GPT侧重的是语句生成,即基于之前的文本序列,预测下一个词语。
GPT按照生成式的逻辑统一了下游任务的应用模板,使用最后一个token([EOS] or [EXTRACT])对应的隐向量,输入额外的输出层中,进行分类标签预测。
1.2Unsupervised Language Modelling
1.2.1建模方法
有一组由n个词汇组成的序列:
判断是否是正常语句的方法:通过计算整个序列的概率P(U),我们认为概率越高,序列组成的句子越符合我们日常说话的方式。
按照链式法则(Chain Rule),进一步转化成:
其中,ui: 当前被预测的下一个单词;u1...ui-1:前序内容,模型基于前序词汇进行下一单词预测;i:窗口长度(context window length),即需要往前看多少个单词。
1.2.2建模目标
最大化P(U),使语句看起来更加合理。无监督训练:
1.3Supervised Fine-Tuning
- 预测出的标签
- loss的大小:为了加快模型的收敛,增强模型的泛化性,所以在下游任务微调中也需要考虑language modelling的损失
2、学习心得
无监督语言建模是一个非常有趣且具有挑战性的领域。通过从大量未标记的文本数据中学习语言的内在结构和模式,我们可以更好地理解自然语言的本质和规律。这种技术为自然语言处理领域带来了新的视角和可能性,使得计算机可以更加智能地处理和理解人类语言。
3、经验分享
在这里分享下GPT-1和BERT的区别
- 技术路线:GPT-1采用的是解码器的形式,与Transformer的解码器部分相似,而BERT则是一个双向模型,类似于Transformer的编码器部分。这意味着BERT可以联系上下文进行分析,而GPT-1只能从左到右进行阅读。
- 应用领域:BERT在阅读理解领域表现出色,被广泛应用在各种NLP任务中,如问答、文本分类等。而GPT-1则更擅长生成任务,如机器翻译、文本生成等。
- 模型大小和计算量:由于BERT是双向模型,需要更多的计算资源和存储空间,因此其模型大小和计算量都比GPT-1更大。
- 预训练数据:BERT使用的是遮盖语言建模(Masked Language Modeling)任务,需要大量的无标签数据来预训练模型。而GPT-1使用的是自回归语言建模(Autoregressive Language Modeling)任务,需要较小的无标签数据来进行预训练。
4、课程反馈
通过上节课对于BERT的学习,能够较轻松对GPT-1的课程深入学习,课程的连贯性很好。
5、未来展望
希望之后能独立实操训练下这节课的模型。