Bert(Bidirectional Encoder Representations from Transformers)是一种基于Transformer架构的预训练语言模型,由Google在2018年提出。Bert模型在自然语言处理领域取得了重大突破,被广泛应用于各种NLP任务,如文本分类、命名实体识别、问答系统等。
Bert模型的核心思想是通过大规模无监督预训练来学习通用的语言表示,然后再通过有监督微调来适应特定任务。与传统的语言模型不同,Bert模型采用了双向Transformer编码器,能够同时利用上下文信息,从而更好地理解句子中的词语。
BERT
Bert模型的预训练过程包括两个阶段:Masked Language Model(MLM)和Next Sentence Prediction(NSP)。在MLM阶段,Bert模型会随机遮盖输入句子中的一些词语,然后通过上下文信息预测这些被遮盖的词语。在NSP阶段,Bert模型会判断两个句子是否是连续的。
屏蔽语言建模 (MLM):取一个句子,模型随机屏蔽输入中 15% 的单词,然后通过模型运行训练,并预测屏蔽的单词。 这与传统的循环神经网络 (RNN) 不同,传统的循环神经网络通常会一个接一个的输入单词,也不同于 GPT 等自回归模型。
句子预测(NSP):模型在预训练期间连接屏蔽两个句子作为输入。数据有时2个句子是相邻的句子,有时则不是,模型需要进行训练,来判断2个句子的相关性。
在微调阶段,Bert模型可以通过简单地添加一个任务特定的输出层来适应不同的NLP任务。通过微调,Bert模型可以在各种任务上取得出色的性能,而无需针对每个任务进行独立的训练。本期我们就使用transformers来从头训练一个多标签的Bert模型。
这里使用的是hugging face的transformers库来进行Bert模型的训练,并加载了一个dataset,运行以上代码后,模型会自动下载相关的数据集,可以看到此数据集有6838行train训练数据,3259行test数据以及886行validation验证数据。
当然这里可以看一下整个数据的样式,打印一下这个数据集的数据,可以看到,每行数据有一个ID,一句话以及这句话的标签组成。我们就来训练此数据集,最终模型可以接受一个输入,并反馈此句话的标签。
领取专属 10元无门槛券
私享最新 技术干货