BERT(Bidirectional Encoder Representations from Transformers)是一种由Google开发的预训练语言表征模型。它使用两个步骤——预训练和微调,以创建用于各种任务的最先进模型。下面是BERT的工作原理的详细解释:
-
预训练(Pre-training):
- BERT首先在大规模文本数据上进行预训练。它使用Transformer编码器层的堆叠,每个编码器层都包含多个“头”(fully-connected神经网络),并且使用自注意机制计算键(key)、值(value)和查询(query)向量。
- 对于输入序列中的每个标记,每个头都计算这些向量,然后使用它们创建加权表示。
- BERT的预训练目标是通过预测掩码标记(masked language model)或下一个句子(next sentence prediction)来学习单词的上下文表示。
-
微调(Fine-tuning):
- 经过预训练后,可以将同一模型用于各种下游任务(例如文本分类、命名实体识别等)。
- 在微调阶段,我们针对特定任务对预训练模型进行微调,以适应该任务的特定要求。
- BERT的统一架构使得同一预训练模型可以用于多个不同的下游任务,并且在这些任务上获得接近最先进的结果。
-
BERT的架构:
- BERT的架构是一系列Transformer编码器层的堆叠。每个编码器层都包含多个注意力头(attention heads)。
- BERT Base模型有12个编码器层,隐藏大小为768,注意力头数为12,总参数约为110M。
- BERT Large模型有24个编码器层,隐藏大小为1024,注意力头数为16,总参数约为340M。