1.BERT模型介绍
BERT模型结构
BERT(Bidirectional Encoder Representations from
Transformers)是一种基于Transformer的预训练语言表示模型。从架构上讲,BERT是一个基于Transformer编码器的架构。以下是其主要组成部分的简要概述:架构
Encoder-Only:BERT使用了Transformer中的编码器部分。与标准Transformer相比,它不包括解码器部分,因为BERT的设计旨在生成固定大小的向量表示,用于下游NLP任务,而不是生成序列输出。
多层Transformer编码器:BERT模型具体由多层(例如BERT-Base为12层,BERT-Large为24层)Transformer编码器堆叠而成。每一层都包括多头自注意力机制和前馈神经网络。
输入表示
- 词嵌入(Token Embeddings):将输入的单词转换为向量形式。
- 位置编码(Positional Encodings):由于Transformer架构不自然地处理序列的顺序,位置编码被添加到词嵌入中,以提供位置信息。
- 片段嵌入(Segment Embeddings):用于区分两个不同的句子,主要用于下游任务中的句子对分类任务,如问答和自然语言推理。
所有这些嵌入向量被逐元素相加,形成了模型的最终输入表示。
输出
- BERT的输出是输入序列的每个元素的高维表示。这些表示捕获了输入文本的丰富上下文信息,可以被用于各种下游任务。
预训练任务
BERT在预训练阶段通过两种任务学习语言表示:
- 遮蔽语言模型(Masked Language Model, MLM):随机遮蔽输入序列中的单词(如用"[MASK]"代替),然后模型尝试预测这些遮蔽单词。
- 下一句预测(Next