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 预训练时同时看到一个词的左侧和右侧上下文,语义表示更丰富
  • 刷新基准:发布时在 GLUESQuAD11 项 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 是多项关键进展的汇聚点,也引爆了此后数年的预训练模型竞赛。

  • 2017Transformer 架构(Vaswani 等,Google)发表,奠定 BERT 底层结构基础
  • 2018 年初ELMo(Peters 等,AllenAI)用双向 LSTM 上下文化词向量,验证双向预训练价值
  • 2018 年 10 月BERT 论文预印本发布,随即在 11 项 NLP 任务刷新最优成绩
  • 2019RoBERTaDistilBERTALBERT 相继发布;BERT-wwm 等中文变体在国内落地
  • 2020GPT-3 出现,研究重心向 Decoder-only 大规模生成模型转移
  • 2022 年至今:大语言模型主流化,BERT 系退守垂直分类和低延迟场景,但「预训练 + 微调」范式被所有后续模型继承

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「双向理解文本的模型」
  • 「NLP 老梗新用」
  • 「跟 BERT 是一回事吗」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    BERT 预训练模型深度解析

    解析 BERT 的 MLM 和 NSP 预训练任务,以及下游任务的微调方法

  2. 2

    NLP 基础:从词嵌入到 Transformer

    自然语言处理的核心技术路线。从 One-Hot 到 Word2Vec,从 RNN/LSTM 到注意力机制,再到 Transformer 架构的完整演进历程。包含词向量可视化、注意力权重计算和简易 Transformer 的 Python 实现。

外部参考

维基百科:查看「BERT」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。