alex_bn_lee

导航

【833】BERT相关(Hugging Face)

参考:BERT入门——tensorflow

参考:李宏毅-ELMO, BERT, GPT讲解


个人理解: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

How to Finetune BERT for Text Classification (HuggingFace Transformers, Tensorflow 2.0) on a Custom Dataset

Hugging Face Official Site - BERT resources

Fine-tune a pretrained model

如何使用BERT和Tensorflow建立一个文本分类模型

 

posted on 2023-04-23 10:25  McDelfino  阅读(139)  评论(0编辑  收藏  举报