-
包含两个步骤:
pre-training
以及fine-tuning
-
预训练阶段,使用无标签数据在不同的预训练任务上训练
-
微调阶段,首先使用预训练的参数进行初始化,然后根据下游任务的标签数据进行微调,不同的下游任务有不同的微调模型,BERT的一个显著的特点就是在不同的任务之间有统一的架构,并且架构之间的差异非常小
-
模型架构:多层的双向transformer encoder;BERT BASE的参数为(L=12,L=768,A=12),L表示transformer blocks的层数,H表示隐藏层大小,A表示自注意力头的数目;BERT LARGE的参数为(L=24,H=1024,A=16)
-
输入输出表示:以一个token sequence来表示一个或两个sentence(堆叠一起),而sentence指的是任意范围的连续文本,而不限定于连续的有语义的句子;使用WordPiece embeddings,有两个特殊的token:[CLS]、[SEP];对每个输入token,其输入表示由token embedding、segment embedding以及position embedding相加得到
-
预训练BERT:使用两个无监督任务来训练,分别是Masked LM (MLM) 以及Next Sentence Prediction (NSP)
-
MLM:随机遮罩15%的tokens,并只预测这些tokens,虽然这使我们能够获得双向预训练模型,但缺点是我们在预训练和微调之间创建了不匹配,因为在微调过程中不会出现[MASK]标记。缓解的方法是:对于被随机选中,需要进行遮罩的tokens,有80%的概率会被替换成[MASK],有10%的概率会被替换成随机的token,10%的概率不改变
-
NSP:为了理解两个句子之间的关系,为下游任务如问答、自然语言推理等提供帮助。每个训练样本由A和B两个句子组成,50%的情况下B是A的下个句子,50%情况下不是。
-
预训练的数据集包括BooksCorpus和英文的Wikipedia
-
微调BERT:对于每个任务,我们只需将特定于任务的输入和输出插入到BERT中,并端到端微调所有参数。在输出时,token representation被输送到输出层用于令牌级任务,例如序列标记或问答,而[CLS] representation被输送到输出层用于分类,例如蕴涵(entailment)或情感分析。
BERT要点理解
最新推荐文章于 2024-01-30 03:26:56 发布
BERT模型通过预训练和微调两步进行学习。预训练阶段在大规模无标签数据上进行,使用Masked LM和Next Sentence Prediction任务。微调阶段则针对具体下游任务,如问答、自然语言推理等,进行参数调整。模型架构为多层双向Transformer Encoder,输入输出涉及WordPiece embeddings、[CLS]和[SEP]标记。预训练数据集包括BooksCorpus和英文Wikipedia。
摘要由CSDN通过智能技术生成