BERT是一个基于Transformer的模型,以自监督的方式在大型英语数据集上进行预训练。 这意味着BERT模型仅对原始文本数据进行预训练,没有人为的干预。其BERT模型通过自动过程从这些数据集中生成输入数据和标签。确切的说,BERT模型是为了两个目标而进行预训练的。:
BERT
屏蔽语言建模 (MLM):取一个句子,模型随机屏蔽输入中 15% 的单词,然后通过模型运行训练,并预测屏蔽的单词。 这与传统的循环神经网络 (RNN) 不同,传统的循环神经网络通常会一个接一个的输入单词,也不同于 GPT 等自回归模型。
句子预测(NSP):模型在预训练期间连接屏蔽两个句子作为输入。数据有时2个句子是相邻的句子,有时则不是,模型需要进行训练,来判断2个句子的相关性。
BERT模型最初发布了2个版本,用于区分大小写和不区分大小写的输入文本。随着模型的发布,中文和多语言模型也随之推出。本期我们就基于上面的模型来看看BERT是如何进行完形填空的。
在使用BERT模型前,我们需要在自己的环境下安装Transformers模型,其安装也很简单,只需输入如下命令即可。
安装完成transformers后,我们新建一个py文件,并输入如下代码。
首先我们从transformers库中导入pipeline,并使用pipeline建立一个大语言模型,此模型基于BERT训练好的bert-large-uncased模型,代码运行时会自动下载相关预训练模型。
模型下载完成后,我们就可以使用此模型进行完形填空了。遥想当年,英语完形填空都是失分的部分,有了BERT模型,还害怕完形填空吗。模型运行完成后,会根据预测的标签进行打分,按照分数进行排序,并反馈给用户。
领取专属 10元无门槛券
私享最新 技术干货