

BERT的预训练包含两个核心任务:
Masked Language Model (MLM)原理:随机遮蔽(mask)输入文本中的部分单词(约15%),模型需通过上下文预测被遮蔽的词。示例:输入:I love [MASK] movies.目标:预测 [MASK] 处的词为 "watching"。作用:迫使模型同时学习前文和后文的上下文信息。Next Sentence Prediction (NSP)原理:给定两个句子(如句子A和句子B),模型需判断句子B是否是句子A的下一句。示例:句子A:I went to the store.句子B:I bought some apples.目标:判断B是否是A的下一句。作用:帮助模型理解句子间的语义关系,提升对长文本的理解能力。(2) 架构设计
词向量(Word Embeddings):将单词映射为向量。
位置向量(Position Embeddings):编码词在句子中的位置信息(如区分“我爱你”和“你爱我”)。
句子向量(Segment Embeddings):区分不同句子(如句子A和句子B)。
Transformer Encoder:多层Self-Attention和前馈网络,逐层提取上下文特征。
(3) 版本参数BERT主要有两种规模版本:
版本
层数
隐藏层维度
注意力头数
参数量
BERT-Base
12层
768维
12头
1.1亿
BERT-Large
24层
1024维
16头
3.4亿
3. BERT的创新点

BERT在多种NLP任务中表现优异,包括:
文本分类:情感分析、垃圾邮件检测。命名实体识别(NER):识别文本中的实体(如人名、地点)。问答系统(QA):抽取或生成答案。机器翻译:结合编码器-解码器结构提升翻译质量。文本摘要:生成简洁的摘要文本。代码补全:理解代码上下文,补全缺失部分。5. BERT的局限性生成任务(NLG)的不足:BERT是 单向编码器,不擅长生成连贯的文本(如对话、文章生成)。但可通过以下方式改进:BERT-Gen(ACL 2021):结合自回归目标,使BERT支持生成任务。VLM(ACL 2021):通过动态掩码注意力实现多任务适配。计算成本高:预训练需大量计算资源(如30亿词级数据)。NSP任务的争议:NSP任务被认为简单且效果有限,后续模型(如ALBERT)改进为预测句子顺序是否对调。6. BERT与其他模型的对比模型类型
BERT(双向编码器)
GPT(自回归解码器)
ELMo(双向但非上下文)
结构
Transformer Encoder
Transformer Decoder
BiLSTM + 随机初始化词向量
上下文利用
双向(同时利用前后文)
单向(仅利用前文)
双向但非上下文敏感(固定词向量)
预训练任务
MLM + NSP
语言模型(左到右生成)
上下文无关词向量
优势
理解任务(分类、NER)
生成任务(文本生成)
早期双向词向量
典型应用
文本分类、问答
对话系统、文章生成
词向量初始化
7. BERT的代码示例(Hugging Face)from transformers import BertTokenizer, BertModel# 加载预训练BERT模型和分词器tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")model = BertModel.from_pretrained("bert-base-uncased")# 输入文本text = "BERT is a powerful NLP model."inputs = tokenizer(text, return_tensors="pt") # 转换为PyTorch张量# 前向传播获取输出outputs = model(**inputs)last_hidden_states = outputs.last_hidden_state # 各词的上下文向量cls_output = outputs.pooler_output # 句子级别的向量(来自[CLS]标记)8. 总结BERT的核心贡献:通过双向上下文学习和Transformer架构,显著提升了NLP任务的性能。适用场景:以理解任务(如分类、NER)为主,生成任务需结合其他技术(如解码器)。未来方向:改进生成能力(如BERT-Gen)、轻量化(如DistilBERT)和多模态扩展(如ViLBERT)。