📢 转载信息
原文链接:https://machinelearningmastery.com/bert-models-and-its-variants/
原文作者:Jason Brownlee
BERT(Bidirectional Encoder Representations from Transformers,来自 Transformer 的双向编码器表示)是自然语言处理领域最著名的模型之一。自 2018 年问世以来,它已成为许多 NLP 任务的标准基线,并催生了大量新的模型变体。
本文旨在全面概述 BERT 模型,包括其工作原理、关键特征及其主要变体。我们将探讨 BERT 家族中最重要的模型,以及它们如何推动了 NLP 领域的发展。
BERT 是什么?
BERT 是由 Google 研究人员于 2018 年发布的一款预训练语言模型。它基于 Transformer 架构的编码器部分,旨在为各种下游 NLP 任务生成高质量的上下文嵌入。
BERT 的核心创新在于其“双向”预训练方法,它允许模型在处理特定词语时同时考虑其左侧和右侧的上下文。这与早期的模型(如 ELMo 和传统的循环神经网络/RNN)形成鲜明对比,后者通常是单向或浅层双向的。
BERT 的关键创新
BERT 模型基于以下两个关键的无监督预训练任务:
- 掩码语言模型 (Masked Language Model, MLM):模型随机掩盖输入文本中的一些词语(通常是 15%),然后学习去预测这些被掩盖的词语。这使得模型能够学习深入的双向上下文关系。
- 下一句预测 (Next Sentence Prediction, NSP):模型被输入一对句子(A 和 B),并学习判断句子 B 是否是句子 A 在原始文本中的下一句。这对于需要理解句子间关系的任务(如问答和自然语言推理)至关重要。
通过这些任务,BERT 能够在大量未标记的文本数据上进行预训练,从而学习到强大的语言表示能力。预训练完成后,该模型可以通过“微调”(Fine-tuning)适应特定的下游任务。
BERT 的变体和改进
BERT 的巨大成功激发了研究人员对其架构进行改进,旨在提高性能、效率或适应特定应用场景。以下是一些最重要的 BERT 变体:
RoBERTa (Robustly optimized BERT approach)
RoBERTa 是由 Facebook AI 在 BERT 发布后不久提出的一个改进版本。研究人员发现 BERT 的预训练过程可以得到显著优化。
RoBERTa 的主要改进包括:
- 移除 NSP 任务:研究表明 NSP 任务对下游性能的贡献不大,移除后模型表现更好。
- 动态掩码:BERT 在预训练期间使用静态掩码,而 RoBERTa 在每次迭代中动态生成掩码模式。
- 使用更大的批次和更多训练数据:RoBERTa 在比 BERT 多得多的数据上进行了更长时间的训练。
总而言之,RoBERTa 证明了 BERT 架构本身是强大的,但其训练过程可以被更好地优化。
ALBERT (A Lite BERT)
ALBERT 旨在解决原始 BERT 模型参数量过大的问题,从而减少内存消耗和提高训练速度。
ALBERT 通过两个主要的参数减少技术实现了这一点:
- 跨层参数共享 (Cross-layer Parameter Sharing):所有 Transformer 层的参数是共享的。
- 因式分解的词嵌入参数化 (Factorized Embedding Parameterization):将词嵌入矩阵分解为两个较小的矩阵。
虽然 ALBERT 的参数更少,但它通常能在相同的或更少的训练步骤后达到与 BERT 相当或更好的性能。
DistilBERT
DistilBERT 是通过知识蒸馏(Knowledge Distillation)技术创建的 BERT 的“蒸馏”版本。知识蒸馏的目标是训练一个更小、更快的“学生”模型来模仿更大、更复杂的“教师”模型(此处为 BERT)。
DistilBERT 移除了 Token-type embeddings 和 Pooler,并减少了 Transformer 层数(通常减半)。结果是:
- 模型参数减少了约 40%。
- 推理速度提高了约 60%。
- 在 GLUE 基准测试上保留了 97% 的性能。
ELECTRA (Efficiently Learning an Encoder that Classifies Token Replacements Accurately)
ELECTRA 提出了一个全新的预训练目标:Replaced Token Detection (RTD),而不是 MLM。
在 RTD 中,一小部分输入 token 被一个小的生成器网络替换,然后一个判别器网络(即 ELECTRA 模型本身)被训练来判断输入序列中的每个 token 是原始的还是被替换的。
这种方法比 MLM 更高效,因为它允许模型在每次迭代中学习所有 token 的信息,而不仅仅是被掩盖的 15% 的 token,从而显著提高了训练效率。
XLNet
XLNet 试图结合 BERT 的双向上下文能力和传统的自回归模型(如 GPT)的优势。它使用了 Permutation Language Modeling (PLM) 机制。
PLM 不依赖于特定的掩码或输入结构,而是通过随机排列输入序列的顺序来学习双向依赖,同时保持自回归的框架。这使得 XLNet 避免了 MLM 引入的“预训练-微调”差异(即预训练时有 [MASK] 标记,微调时没有)。
BERT 模型尺寸和用途
BERT 模型通常以其尺寸来区分,这些尺寸直接影响其性能和计算需求。最常见的两个版本是:
BERT-Base:12 层 Transformer 编码器,隐藏层维度 768,12 个注意力头,总共约 1.1 亿参数。
BERT-Large:24 层 Transformer 编码器,隐藏层维度 1024,16 个注意力头,总共约 3.4 亿参数。
选择哪个模型取决于具体的应用场景:
- BERT-Base:适用于资源受限或需要快速推理的场景。
- BERT-Large:适用于需要最高性能,且计算资源充足的任务(如复杂的问答系统或自然语言推理)。
总结
BERT 架构及其衍生模型是现代 NLP 领域不可或缺的一部分。从原始的 BERT 开始,研究人员已经通过 RoBERTa 优化了训练策略,通过 ALBERT 和 DistilBERT 提高了效率,并通过 XLNet 和 ELECTRA 探索了新的预训练范式。
对于希望在 NLP 任务中取得最佳效果的开发者来说,理解这些模型之间的权衡(性能、速度、参数量)至关重要。新的变体仍在不断涌现,但它们都建立在 BERT 奠定的 Transformer 编码器和双向上下文理解的坚实基础上。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区