Bert原理介绍

BERT(Bidirectional Encoder Representations from Transformers)是一种预训练模型,旨在通过引入masked language model(MLM)解决传统预训练模型无法利用双向上下文的问题。BERT模型还结合next sentence prediction任务,以提升文本对的联合表示。它采用深度双向Transformer结构,通过预训练和微调步骤,广泛应用于自然语言处理任务,如智能问答和文本理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Bert基本原理介绍

背景
  基于语言模型的预训练(pre-training)已经被证明可以有效提升各种 NLP 任务的表现。通常有两种策略可以运用到预训练模型得到的结果上:基于特征(feature-based)和微调(fine-tuning),基于特征的策略使用任务特定的架构,将预训练的表示作为额外的特征,其代表为 ELMo;基于微调的策略使用最少的任务特定参数,通过简单的微调预训练参数来训练下游任务,其代表 OpenAI GPT。

  之前的研究的局限性在于,其在预训练时使用的目标函数均基于单向语言模型,没有同时考虑到双向的上下文信息。BERT 模型旨在解决这一局限性,通过提出一种新的预训练目标:masked language model(MLM)。简单来说,MLM 随机地从输入中遮蔽一些词语,然后训练目标是基于被遮蔽词语的双侧上下文来预测该词语在词典中的 id。此外,BERT 模型还引入了一个 next sentence prediction 任务,来预训练文本对的联合表示。

  下图给出了 BERT、ELMo 和 OpenAI GPT 三者之间的结构比较。只有 BERT 真正同时使用了左右两侧上下文的信息。
在这里插入图片描述

1.1 Bert基本介绍

接下来我们将从what,how,wher等三个方面来介绍bert
Bert是什么呢?(what)
BERT是Pre-training of Deep Bidredirectional Encoder Representations from Transfomers的缩写,其中每一个单词都表示了BERT的特征:
Pre-training说明BERT是一个预训练模型,通过前期的大量语料的无监督训练,为下游任务学习大量的先验

### BERT模型的工作原理及技术细节 #### 1. 模型概述 BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer架构的预训练语言表示模型。它通过双向编码器结构捕获上下文信息,从而显著提升了自然语言处理任务的效果[^1]。 #### 2. 核心组件 ##### (a) 双向Transformer编码器 BERT利用Transformer的编码器部分来实现其功能。与传统的单向语言模型不同,BERT采用双向自注意力机制(Bi-directional Self-Attention Mechanism),能够同时考虑输入序列左侧和右侧的信息[^2]。 ##### (b) 输入表示 BERT的输入由三部分组成:词嵌入(Token Embeddings)、位置嵌入(Positional Embeddings)和分段嵌入(Segment Embeddings)。这种组合使得模型可以区分不同的单词顺序以及句子间的界限。 ```python import torch from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') input_text = "This is a sample sentence." tokens = tokenizer(input_text, return_tensors="pt") outputs = model(**tokens) last_hidden_states = outputs.last_hidden_state ``` #### 3. 训练目标 为了学习通用的语言表示,BERT采用了两种无监督的学习方法: - **掩码语言建模(Masked Language Modeling, MLM)** 随机遮蔽输入中的某些单词,并让模型预测这些被遮蔽的单词。这种方法强制模型关注整个上下文以完成任务[^2]。 - **下一句预测(Next Sentence Prediction, NSP)** 给定两个句子A和B,判断B是否为A的下一个句子。这有助于捕捉句子间的关系,在下游任务中尤为重要。 #### 4. 层次结构 BERT分为多个变体,常见的有`BERT_BASE`和`BERT_LARGE`。两者的主要区别在于隐藏层大小、层数和参数数量的不同。更大的模型通常能获得更好的性能,但也增加了计算成本[^2]。 #### 5. 应用场景 经过预训练后,BERT可以通过微调适应各种具体的NLP任务,例如情感分析、命名实体识别、机器翻译等。由于其强大的泛化能力,已成为许多现代系统的基石之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值