【833】BERT相关(Hugging Face)
个人理解:BERT是一个语言模型,把它作为一个抽取Feature的东西,因此它已经把文本进行的加工,最终只需要把BERT接入具体的任务,来训练下游任务的参数即可!
- Case 1:
input: single sentence
output: class
example: sentiment analysis, document classification - Case 2:
input: single sentence
output: class of each word
example: slot filling - Case 3:
input: two sentences
output: class
example: natural language inference - Case 4:
input: document, query
output: two integers (s, e)
example: extraction-based question answering (QA)
BERT简介
BERT是一种预训练语言模型(pre-trained language model, PLM),其全称是Bidirectional Encoder Representations from Transformers。
- 语言模型:对于任意的词序列,它能够计算出这个序列是一句话的概率。比如词序列A:“知乎|的|文章|真|水|啊”,这个明显是一句话,一个好的语言模型也会给出很高的概率,再看词序列B:“知乎|的|睡觉|苹果|好快”,这明显不是一句话,如果语言模型训练的好,那么序列B的概率就很小很小。
- 预训练:预训练是一种迁移学习的概念。所谓预训练模型,举个例子,假设我们有大量的维基百科数据,那么我们可以用这部分巨大的数据来训练一个泛化能力很强的模型,当我们需要在特定场景使用时,例如做医学命名实体识别,那么,只需要简单的修改一些输出层,再用我们自己的数据进行一个增量训练,对权重进行一个轻微的调整即可。预训练语言模型有很多,典型的如ELMO、GPT、BERT等。
- Transformer:Bert是基于Transformer实现的,BERT中包含很多Transformer模块,其取得成功的一个关键因素是Transformer的强大作用。
Transformer可以理解为一个神经网络模块,模块内部有其复杂的网络结构,我们可以暂且将其视为黑盒,这并不影响对Bert的理解。总之,这个模块通过自注意力机制实现快速并行,改进了RNN最被人诟病的训练慢的缺点,并且可以增加到非常深的深度,充分发掘DNN模型的特性,提升模型准确率。
BERT的原理一层层深究下去是这样的:【BERT】–【Transformer】–【self-attention】–【attention机制】–【seq2seq】
Hugging Face BERT实战参考:
HuggingFace简明教程,BERT中文模型实战示例.NLP预训练模型,Transformers类库,datasets类库快速入【中文材料,视频,代码,PyTorch】
lansinuote/Huggingface_Toturials - github
Hugging Face Official Site - BERT resources