# BERT **开源之后就没有更新了。** 它会先从数据集抽取两个句子,其中第二句是第一句的下一句的概率是 50%,这样就能学习句子之间的关系。其次随机去除两个句子中的一些词,并要求模型预测这些词是什么,这样就能学习句子内部的关系。最后再将经过处理的句子传入大型 Transformer 模型,并通过两个损失函数同时学习上面两个目标就能完成训练。 **BERT 官方预训练模型** 在众多研究者的关注下,谷歌发布了 BERT 的实现代码与预训练模型。其中代码比较简单,基本上是标准的 Transformer 实现,但是发布的预训练模型非常重要,因为它需要的计算力太多。总体而言,谷歌开放了预训练的 BERT-Base 和 BERT-Large 模型,且每一种模型都有 Uncased 和 Cased 两种版本。 其中 Uncased 在使用 WordPiece 分词之前都转换为小写格式,并剔除所有 Accent Marker,而 Cased 会保留它们。项目作者表示一般使用 Uncased 模型就可以了,除非大小写对于任务很重要才会使用 Cased 版本。所有预训练模型及其地址如下: - BERT-Base, Uncased:12-layer, 768-hidden, 12-heads, 110M parameters - 地址:https://storage.googleapis.com/bert_models/2018_10_18/uncased_L-12_H-768_A-12.zip - BERT-Large, Uncased:24-layer, 1024-hidden, 16-heads, 340M parameters - 地址:https://storage.googleapis.com/bert_models/2018_10_18/uncased_L-24_H-1024_A-16.zip - BERT-Base, Cased:12-layer, 768-hidden, 12-heads , 110M parameters - 地址:https://storage.googleapis.com/bert_models/2018_10_18/cased_L-12_H-768_A-12.zip - BERT-Large, Cased:24-layer, 1024-hidden, 16-heads, 340M parameters(目前无法使用,需要重新生成)。 每一个 ZIP 文件都包含了三部分,即保存预训练模型与权重的 ckpt 文件、将 WordPiece 映射到单词 id 的 vocab 文件,以及指定模型超参数的 json 文件。除此之外,谷歌还发布了原论文中将预训练模型应用于各种 NLP 任务的源代码,感兴趣的读者可以查看 GitHub 项目复现论文结果。 BERT 官方项目地址:https://github.com/google-research/bert 最后,这个项目可以在 CPU、GPU 和 TPU 上运行,但是在有 12GB 到 16GB 显存的 GPU 上,很可能模型会发生显存不足的问题。因此读者也可以在 Colab 先试着使用 BERT,如下展示了在 Colab 上使用免费 TPU 微调 BERT 的 Notebook: BERT Colab 地址:https://colab.sandbox.google.com/github/tensorflow/tpu/blob/master/tools/colab/bert_finetuning_with_cloud_tpus.ipynb