GPT 与BERT的异同
1.什么是BERT:
BERT(Bidirectional Encoder Representations from Transformers)是一种预训练语言表示模型,由Jacob Devlin、Ming-Wei Chang、Kenton Lee和Kristina Toutanova在2019年提出。BERT的核心思想是通过在大量未标注文本上预训练深度双向Transformer编码器,来学习语言的深层次特征。这种预训练模型可以通过微调(fine-tuning)应用于多种自然语言处理任务,如问答、语言推理等,并且在这些任务上取得了显著的效果。
背景知识
- 语言模型预训练:通过在大量文本上预训练语言模型,可以提高多种自然语言处理任务的性能。这些任务包括句子级别的任务(如自然语言推理、释义)和词语级别的任务(如命名实体识别、问答)。
- 预训练策略:有两种主要策略,基于特征的方法(如ELMo)和微调方法(如OpenAI GPT)。基于特征的方法将预训练的表示作为额外特征输入到任务特定的模型中,而微调方法则在预训练模型的基础上直接进行微调。
研究方法
- BERT模型架构:BERT使用多层双向Transformer编码器。模型有两个主要版本:BERT-BASE(12层,768个隐藏单元,12个注意力头,总参数1.1亿)和BERT-LARGE(24层,1024个隐藏单元,16个注意力头,总参数3.4亿)。
- 预训练任务:
- 掩码语言模型(Masked LM, MLM):随机遮蔽输入文本中的一些词(15%),然后预测这些被遮蔽的词。这允许模型在预训练阶段同时考虑上下文信息。
- 下一句预测(Next Sentence Prediction, NSP):给定两个句子,预测第二个句子是否是第一个句子的下一句。这有助于模型学习句子之间的关系。
实验结果
- GLUE基准测试:BERT在GLUE基准测试中取得了显著的成绩,BERT-BASE和BERT-LARGE在多个任务上均超过了之前的最佳模型。例如,在MNLI任务上,BERT-LARGE取得了86.7%的准确率,比之前的最佳模型提高了4.6%。
- SQuAD问答数据集:在SQuAD v1.1数据集上,BERT-LARGE取得了93.2的F1分数,比之前的最佳模型提高了1.5分。在SQuAD v2.0数据集上,BERT-LARGE取得了83.1的F1分数,比之前的最佳模型提高了5.1分。
- SWAG数据集:在SWAG数据集上,BERT-LARGE取得了86.6%的准确率,比之前的最佳模型提高了27.1%。
关键结论
- 双向预训练的重要性:BERT通过使用掩码语言模型和下一句预测任务,实现了深度双向预训练,这使得模型能够更好地理解和利用上下文信息。
- 预训练任务的影响:实验表明,去除NSP任务会显著降低模型在某些任务上的性能,尤其是那些需要理解句子关系的任务。
- 模型大小的影响:更大的模型(如BERT-LARGE)在多个任务上表现更好,即使在训练数据较少的情况下也是如此。
- 特征提取方法:BERT不仅可以用于微调,还可以用于特征提取。实验表明,使用BERT的特征提取方法在命名实体识别任务上也取得了很好的效果。
细节解释
- 掩码语言模型(MLM):在预训练阶段,BERT随机遮蔽输入文本中的一些词(15%),然后预测这些被遮蔽的词。为了减少预训练和微调之间的不匹配,BERT在遮蔽时采取了混合策略:
- 80%的情况下,将词替换为[MASK]标记。
- 10%的情况下,将词替换为随机词。
- 10%的情况下,保持词不变。
- 下一句预测(NSP):在预训练阶段,BERT随机选择两个句子,50%的情况下第二个句子是第一个句子的下一句(标记为IsNext),50%的情况下是随机选择的句子(标记为NotNext)。这有助于模型学习句子之间的关系。
- 输入表示:BERT使用WordPiece嵌入,词汇表大小为30,000个词。输入序列可以是一个句子或两个句子的组合,使用[CLS]和[SEP]标记来区分句子。
- 微调:在微调阶段,BERT通过添加一个任务特定的输出层,并对所有参数进行端到端微调。这使得BERT能够适应多种下游任务,如分类、问答和命名实体识别。
总结
BERT通过在大量未标注文本上进行深度双向预训练,学习到了丰富的语言表示。这些表示可以通过微调应用于多种自然语言处理任务,并在多个基准测试中取得了显著的效果。BERT的成功表明,深度双向预训练模型在理解和生成自然语言方面具有巨大的潜力。未来的研究可以进一步探索如何改进预训练任务和模型架构,以进一步提高模型的性能和泛化能力。
2.什么是GPT:
GPT1介绍了一种通过生成式预训练(Generative Pre-Training)来提升语言理解能力的方法。这种方法首先在一个大型的未标注文本语料库上进行语言模型的预训练,然后针对具体的任务进行判别式微调(discriminative fine-tuning)。文章详细阐述了这种方法的动机、相关工作、框架、实验结果以及分析。
背景知识与研究动机
自然语言理解(NLU)涉及多种任务,如文本蕴含、问答、语义相似度评估和文档分类等。这些任务通常面临标注数据稀缺的问题,限制了基于判别式训练模型的性能。文章提出,通过在大量未标注文本上进行生成式预训练,可以学习到对多种任务有用的通用语言特征,然后通过针对具体任务的微调,实现性能的显著提升。
研究方法
GPT采用了两阶段的训练过程:
- 无监督预训练阶段:使用语言建模目标在未标注数据上训练一个Transformer模型,学习文本的通用特征。
- 有监督微调阶段:将预训练的模型参数适应到具体任务上,使用对应任务的标注数据进行训练。
模型架构选择了Transformer,因为它在处理长距离依赖时表现出色。预训练阶段使用的是BooksCorpus数据集,包含7000多本不同 genre 的书籍,这允许模型学习到长期的文本结构信息。
实验结果
文章在多种自然语言理解任务上评估了这种方法,包括自然语言推理、问答、语义相似度和文本分类。实验结果显示,这种方法在9个任务上超越了之前的最佳性能,具体如下:
- 自然语言推理(NLI):在MNLI、SNLI、SciTail、QNLI和RTE等数据集上,模型取得了显著的性能提升,例如在MNLI上提升了1.5%,在SciTail上提升了5%。
- 问答和常识推理:在RACE和Story Cloze Test上,模型分别取得了5.7%和8.9%的绝对提升。
- 语义相似度:在STS-B数据集上,模型取得了1%的绝对提升。
- 文本分类:在CoLA和SST-2数据集上,模型分别取得了45.4和91.3%的准确率,显著优于之前的最佳结果。
关键结论与分析
- 层数转移的影响:实验表明,转移的层数越多,性能提升越明显,尤其是在MultiNLI和RACE任务上。
- 零样本行为:文章还探讨了预训练模型在没有微调的情况下,通过启发式方法在不同任务上的表现,发现随着预训练的进行,这些启发式方法的性能稳步提升。
- 消融研究:通过对比有无辅助语言模型目标、使用Transformer与LSTM的性能差异,以及有无预训练的模型,文章进一步验证了预训练和Transformer架构的有效性。
方法细节与关键数值结果
- 模型规格:使用了12层的Transformer解码器,每层有768维的状态和12个注意力头。前馈网络的内部状态为3072维。训练使用了Adam优化器,最大学习率为2.5e-4,训练了100个周期,每批次包含64个随机采样的512 token序列。
- 微调细节:大多数任务使用了6.25e-5的学习率和32的batch size,训练3个周期。辅助语言模型目标的权重λ设置为0.5。
观点与现象
GPT强调了使用Transformer架构进行预训练的重要性,以及在多种任务上进行微调的有效性。通过在大量未标注数据上进行预训练,模型能够学习到对多种任务有用的通用特征,这在实验中得到了验证。此外,文章还指出,即使在标注数据较少的情况下,这种方法也能取得显著的性能提升。
总结
GPT使用了一种有效的半监督学习方法,通过生成式预训练和判别式微调,显著提升了自然语言理解任务的性能。这种方法在多个基准测试中超越了现有的最佳方法,展示了预训练在NLP领域的巨大潜力。未来的研究可以进一步探索预训练模型在其他语言和任务上的应用,以及如何进一步优化预训练和微调过程。
3.他们之间的异同:
GPT | BERT | |
架构 | 基于 Transformer 的 解码器(Decoder),使用自左向右的单向注意力机制来捕捉上下文,无法直接利用右侧的语境信息。 | 基于 Transformer 的 编码器(Encoder),使用双向自注意力机制,能够同时从左右两侧的上下文中学习信息,构建深度双向的表示。 |
训练集 | 使用 BookCorpus 和英文维基百科进行训练。BookCorpus 是一个约 7,000 本英文书的集合;维基百科是一个广泛的百科知识库。 | 首次训练使用了 BooksCorpus(800M 词)和英文维基百科(2,500M 词),后续训练扩展至更大的数据集,包括 Common Crawl 等。 |
参数 | 大约 1.17 亿参数。 | BERT-BASE:12 层、768 个隐藏单元、12 个注意力头,约 1.1 亿参数。 BERT-LARGE:24 层、1,024 个隐藏单元、16 个注意力头,约 3.4 亿参数。 |
损失函数 | 使用标准的语言建模损失函数,即最大化预测下一个单词的概率。微调是加入特定任务的损失。 | 使用两个损失函数: 1. 掩码语言模型(MLM)损失:通过预测被遮蔽的单词来训练模型。 2. 下一句预测(NSP)损失:预测句子对的顺序是否正确。 |
训练方法 | 以无监督的方式预训练,通过在给定前文的情况下,预测下一个词的概率来完成。 | 采用了无监督预训练的方式,通过MLM和NSP两个任务来训练。 |
应用方向 | 自然语言生成(如文本生成、故事创作等)、问答系统、对话系统、语言翻译、文本分类等。 | 自然语言理解(如情感分析、自然语言推理等)、问答系统、命名实体识别、句子关系判断、文本蕴含等。 |
效果结论 | GPT1 在文本生成和自然语言生成方面表现出色,能够生成较连贯和自然的文本,对上下文有一定的敏感性。 | BERT 在理解能力和上下文捕捉方面更为突出,能够更好地理解文本的深层含义和句子之间的关系,适合需要对文本进行深入理解和分析的任务。 |