BERT
BERT双向理解文本的模型
BERT(双向编码器表示 Transformer)是 Google AI Language 团队于 2018 年提出的预训练语言模型,通过掩码语言建模让模型同时利用左右两侧上下文,在 11 项 NLP 任务上刷新当时最优成绩,奠定了「大规模预训练 + 下游微调」范式在 NLP 领域的主导地位。
概述
BERT 是 Encoder-only 架构的代表性模型,专为语言理解而设计。
- 作者与机构:由 Jacob Devlin、Ming-Wei Chang、Kenton Lee、Kristina Toutanova 在 Google AI Language 提出,论文于 2018 年 10 月提交 arXiv(编号 1810.04805),正式发表于 NAACL 2019
- 双向编码:不同于 GPT 等自左向右的单向模型,BERT 预训练时同时看到一个词的左侧和右侧上下文,语义表示更丰富
- 刷新基准:发布时在 GLUE、SQuAD 等 11 项 NLP 基准上创下最优成绩,引发业界大规模跟进
- 工业影响:至今仍广泛用于搜索排序、文本分类、命名实体识别等低延迟场景
预训练任务
BERT 的核心创新在于两个联合预训练目标,驱动模型学习深层语言结构。
- 掩码语言模型(MLM):随机遮盖输入中约 15% 的词元,要求模型根据两侧上下文预测原词;为缓解训练-推理分布偏移,被选中词元中 80% 替换为 [MASK]、10% 随机替换为其他词、10% 保留原词
- 下句预测(NSP):将两段文本拼接,训练模型判断第二段是否是第一段的真实后续句(正负样本各 50%),用于学习句间逻辑关系
- 预训练语料:BooksCorpus(约 8 亿词)与英语维基百科(约 25 亿词)
- 注:后续 RoBERTa 通过消融实验表明去掉 NSP 反而能提升性能,NSP 任务的必要性受到质疑
模型架构
BERT 采用纯 Transformer 编码器堆叠,不含 Decoder,因此只能理解而无法自回归生成。
- BERT-Base:12 层 Transformer、12 个注意力头、隐层维度 768,参数约 1.1 亿
- BERT-Large:24 层 Transformer、16 个注意力头、隐层维度 1024,参数约 3.4 亿
- 输入表示:词嵌入由 Token Embedding + Segment Embedding + Position Embedding 三者相加,序列首位插入 [CLS] 标记,句间以 [SEP] 分隔
- WordPiece 分词:将文本切分为子词单元,标准词表约 3 万词,兼顾词汇覆盖率与序列长度
微调与应用
预训练后只需在顶层添加轻量任务头并用有标注数据微调,即可适配多种下游任务。
- 文本分类:取 [CLS] 位置的输出向量接分类层,适用于情感分析、意图识别等
- 序列标注:对每个词元的输出向量逐位分类,适用于命名实体识别(NER)、词性标注等
- 抽取式问答:预测答案在段落中的起止位置,适用于 SQuAD 格式的阅读理解
- 语义检索:将句对分别编码后计算相似度,常配合 Bi-Encoder 架构用于搜索粗排和 FAQ 匹配
- 不适用场景:开放式文本生成、长文档摘要等需要 Decoder 或 Encoder-Decoder(T5、BART)的任务
主要变体
BERT 发布后催生了大量围绕效率、训练策略和多语言支持的衍生模型。
- RoBERTa(Meta,2019):去掉 NSP、扩大训练数据和步数,在多项基准超越原版,证明原始 BERT 训练不充分
- DistilBERT(Hugging Face,2019):通过知识蒸馏压缩约 40% 体积,保留约 97% 性能
- ALBERT(Google,2019):参数共享 + 嵌入因式分解,大幅降低参数量同时维持性能
- 中文变体:哈工大与科大讯飞发布 BERT-wwm(全词掩码)、MacBERT,针对中文分词特性优化
局限与误区
使用 BERT 时需注意几个常见误区和固有限制。
- 误区:BERT 能生成文本——BERT 无自回归 Decoder,无法流畅生成连续句子
- 输入长度上限:原版最多支持 512 个 Token,超长文档必须截断或分段,跨段上下文会丢失
- 训练-推理不一致:预训练时引入的 [MASK] 标记在实际推理中不存在,原论文用三种替换策略缓解此问题
- 大模型时代定位收窄:随着 GPT-3.5/4 等指令模型普及,BERT 的优势逐渐收窄至对延迟和成本高度敏感的垂直部署场景
发展脉络
BERT 是多项关键进展的汇聚点,也引爆了此后数年的预训练模型竞赛。
- 2017:Transformer 架构(Vaswani 等,Google)发表,奠定 BERT 底层结构基础
- 2018 年初:ELMo(Peters 等,AllenAI)用双向 LSTM 上下文化词向量,验证双向预训练价值
- 2018 年 10 月:BERT 论文预印本发布,随即在 11 项 NLP 任务刷新最优成绩
- 2019:RoBERTa、DistilBERT、ALBERT 相继发布;BERT-wwm 等中文变体在国内落地
- 2020:GPT-3 出现,研究重心向 Decoder-only 大规模生成模型转移
- 2022 年至今:大语言模型主流化,BERT 系退守垂直分类和低延迟场景,但「预训练 + 微调」范式被所有后续模型继承
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「双向理解文本的模型」
- 「NLP 老梗新用」
- 「跟 BERT 是一回事吗」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 中级概念高频查看详解 →
BERT 和 GPT 的架构与适用场景有何不同?
BERT 是 Encoder-only 双向理解模型,适合分类/NER;GPT 是 Decoder-only 自回归生成模型,适合文本生成与对话。
- 中级概念高频查看详解 →
BERT 的预训练任务(MLM 与 NSP)是怎么设计的?
BERT 用双向 Encoder,靠 MLM 随机遮盖 15% token 预测原词、NSP 判别下一句,学到深层双向表示。
- 中级概念高频查看详解 →
Word2Vec 和 Transformer Embedding 有何区别?
Word2Vec 是静态词向量,一词一向量;Transformer 是上下文相关动态表示,同一词在不同句子向量不同。
- 高级概念查看详解 →
什么是自然语言处理(NLP)?为什么重要?
[自然语言处理(NLP)](/glossary/language-model) 让计算机理解、生成与操作人类语言,涵盖分词、句法分析、机器翻译、问答、情感分析等。它连接文本数据与业务价值,是搜索、客服、内容审核与 [大语言模型](/glossary/gpt) 的基础。
延伸阅读
从知识库精选 2 篇文章,帮助深入理解该术语。
外部参考
维基百科:查看「BERT」词条本页内容为本站原创撰写;维基百科链接仅作延伸参考。
