大模型学习 (Datawhale_Happy-LLM)笔记6: Encoder-only PLM

大模型学习 (Datawhale_Happy-LLM)笔记6: Encoder-only PLM

Encoder Only PLM 的产生

Google 选择了对 Transformer 中的 Encoder 层进行优化,通过将 Encoder 层进行堆叠,扩大模型参数,结合预训练任务 (MLM, Masked Language Model) 进一步推动了预训练+微调范式的发展。

BERT

  • 简述
    Encoder-only 的模型代表 BERT(Bidirectional Encoder Representations from Transformers)是由 Google 2018年基于论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》发布的预训练语言模型。从BERT 的命名上揭示了其核心架构设计与预训练机制的底层逻辑。本质是利用多层 Transformer Encoder 对文本进行双向语义建模,将输入序列转化为包含丰富上下文信息的向量表示 (Vector Representation)。

  • 架构
    BERT 模型整体主要是由 Embedding、Encoder 及 Prediction_heads 组成:

    • Tokenizer (分词器)将输入的文本分词后转换为 input_ids (与句子每个 token 对应的索引)作为 BERT model 的输入

    • Embedding(嵌入)
      input embedding = token embedding(词元) + segment embedding(段落) + position embedding(位置)

    • Encoder (编码器)
      Encoder 块中是对叠起来的 N 层 Encoder Layer,BERT 有两种规模的模型,分别是 base 版本(12层 Encoder Layer,768 的隐藏层维度,总参数量 110M),large 版本(24层 Encoder Layer,1024 的隐藏层维度,总参数量 340M)。通过Encoder 编码之后的最顶层 hidden states 最后经 过 prediction_heads 就得到了最后的类别概率,经过 Softmax 计算就可以计算出模型预测的类别。

      • 每个 Encoder 层包含两个子层:
        1. 多头自注意力子层(Multi-head Self-Attention):处理上下文关联
        2. Intermediate 子层(增强特征非线性表达) :BERT 的 Intermediate 层通过 “线性映射 + GELU 激活” 实现特征的非线性变换与维度调整,是模型捕获复杂语义的关键模块。GELU 的平滑性和自适应门控特性,使其比传统激活函数更适配 Transformer 的深层架构,这一设计在原始论文中被验证,并成为后续预训练模型的标准配置之一。BERT 原始论文《BERT: Pre-training of Deep Bidirectional Transformers》中直接采用 GELU,而该激活函数在《Gaussian Error Linear Units (GELU)》论文中被提出,实验证明其在 NLP 任务中效果优于 ReLU、Swish 等函数。GELU 的计算方式为: GELU(x) = 0.5 x ( 1 + t a n h ( 2 π ) ( x + 0.044715 x 3 ) ) \text{GELU(x)}=0.5x(1+tanh(\large\sqrt\frac{2}{\pi})(x+0.044715x^3)) GELU(x)=0.5x(1+tanh(π2 )(x+0.044715x3))
          (*GELU 的随机正则化并非通过显式添加噪声或丢弃操作,而是通过基于概率的连续激活函数,在数学层面实现了以下效果:
          • 对输入的概率加权激活,抑制噪声特征;
          • 平滑的非线性变换,增强模型对输入扰动的鲁棒性;
          • 隐式的集成学习效应,减少神经元的共适应。这种机制使 GELU 在 Transformer 等深层架构中成为兼顾表达能力和泛化能力的优选激活函数,尤其在 NLP 任务中表现突出。*)
    • Prediction_heads(线性层+激活函数)

      • prediction_heads 是由线性层(Linear)、激活函数、线性层组成的结构,通过线性变换 + 激活引入非线性,最后一个线性层输出维度与任务类别数匹配,用于将模型编码的特征映射到任务输出(如分类任务的类别概率等 ),把 Transformer 编码器输出转换为特定任务预测结果 。
      • 实际中会根据任务调整 prediction heads
        • 分类任务(如情感分析):常是 “线性层 + Softmax”,输出维度等于类别数;
        • 问答任务(如 SQuAD ):用两个线性层,分别预测答案起始、结束位置;
        • 序列标注(如 NER ):线性层 + CRF(可选),输出各 token 标签概率;
        • 预训练阶段(如 BERT 的 MLM ):线性层 + 词表映射(还可能共享嵌入权重 )。

BERT 预训练任务(MLM + NSP)

1. MLM(Masked Language Model,掩码语言模型)
通过掩盖输入文本中的部分token,迫使模型根据上下文预测被掩盖的词汇,从而学习语义依赖关系和上下文表示。
1.1. 实现机制
- 掩码策略
在输入序列中随机选择15%的token进行替换,具体规则如下:
- 80%的概率用[MASK]标记替换(如:“我的[MASK]是苹果”);
- 10%的概率用随机词汇替换(如:“我的书本是苹果”);
- 10%的概率保持原词不变(如:“我的苹果是苹果”)。
这种设计避免模型过度依赖[MASK]标记(训练与推理时的差异),同时通过随机替换和原词保留增强模型的鲁棒性。
1.2. 训练目标:
模型需预测被掩盖token的原始词汇,本质是一个多分类问题(预测词表中概率最高的词)。
1.3. 语义学习效果

  • 双向语境理解:MLM允许模型同时利用上下文信息预测目标词,例如:

    • 输入:“[MASK]喜欢吃苹果” → 模型需结合“喜欢吃苹果”推断出“人”“他”等主语;
    • 输入:“她买了[MASK]和香蕉” → 结合“香蕉”推断出“苹果”“橘子”等并列水果。
  • 深层语义表征:通过预测任务,模型被迫学习词汇间的语义关联(如同义词、上下位词)和语法结构(如主谓宾关系)。

  • 2. NSP(Next Sentence Prediction,下一句预测)
    2.1. 核心目标:
    判断两个句子是否存在连续上下文关系,学习文本级别的语义连贯性和逻辑关系。

    2.2. 训练机制
    - 样本构造:
    - 正例:从同一文档中选取两个连续句子(如A和B,顺序不变);
    - 负例:从不同文档中选取两个句子(如A和C,语义不相关)。
    - 训练目标:
    模型通过输入句子对(A,B/C),输出“是否连续”的二分类结果(是/否)。

3. MLM与NSP的协同作用

任务关注层面对模型的贡献局限性
MLM词汇级、局部语境学习词向量的语义关联和上下文依赖,提升token级表征精度。仅建模局部信息,难以捕捉长距离语义依赖。
NSP句子级、全局语篇学习文本的逻辑连贯性和主题一致性,增强段落级理解能力。负例构造简单(随机选句),可能低估模型真实推理能力。

RoBERTa 与 ALBERT 的核心改进:参数效率与训练优化

1. RoBERTa(Robustly Optimized BERT Pretraining Approach
RoBERTa 是 BERT 的直接优化版本,主要通过训练策略改进超参数调整提升性能,核心创新点如下:

1.1 训练优化
  • 更大的批量大小
    从 BERT 的 256 样本/批次提升至 8k 样本/批次,通过梯度累积实现高效训练,实验表明大批次训练能学习更稳定的表征。
  • 动态掩码策略
    BERT 对每个样本仅应用一次静态掩码(预训练时固定),而 RoBERTa 在每次训练迭代时重新生成掩码,增强模型对不同语境的适应能力。
  • 更长的训练时间
    增加训练步数(如从 1M 步到 3M 步),充分利用大规模语料(如 CC-News、OpenWebText 等)。
1.2 任务简化
  • 移除 NSP 任务
    实验证明 NSP 对模型性能提升有限,RoBERTa 仅保留 MLM 任务,专注于词汇级和句子级表征学习。
  • 优化文本编码
    使用更密集的文本片段(如连续段落而非随机句子对),并引入字节对编码(BPE)处理未登录词。
1.3. 效果验证
  • 在 GLUE、SQuAD、RACE 等基准测试中全面超越 BERT,例如:
    • SQuAD 2.0 F1 得分提升 3.9%(从 88.5 到 92.4);
    • MNLI 匹配准确率提升 2.3%(从 84.6 到 86.9)。
2. ALBERT(A Lite BERT)

ALBERT 聚焦于参数压缩训练效率,通过创新性架构设计大幅减少参数量,核心改进如下:

2.1 参数共享机制
  • 跨层权重共享
    不同于 BERT 每层参数独立,ALBERT 将所有 Transformer 层的权重共享(仅保留输入/输出层差异),参数量从 110M(BERT-Base)降至 12M,减少约 90%。
  • 因式分解嵌入层
    将词嵌入维度 ( E ) 与隐藏层维度 ( H ) 解耦(BERT 中 ( E = H = 768 )),ALBERT 采用 ( E = 128 )、( H = 768 ),通过矩阵分解减少嵌入层参数(从 ( V \times H ) 降至 ( V \times E + E \times H ))。
2.2 增强训练稳定性
  • 句子顺序预测(SOP)替代 NSP
    NSP 任务因正例(连续句子)与负例(随机句子)区分过于简单,效果有限。ALBERT 改为预测同一文档中两句子的顺序(正例:A→B;负例:B→A),更聚焦语义连贯性。
  • 层归一化优化
    将 LayerNorm 移至自注意力机制前(而非残差连接后),提升训练稳定性。
2.3 效果验证
  • 参数量对比
    • ALBERT-Base(12M 参数)≈ BERT-Tiny(14M 参数),但性能远超后者;
    • ALBERT-Large(18M 参数)在 GLUE 基准上超越 BERT-Large(340M 参数)。
  • 计算效率
    因权重共享,前向传播速度提升约 15%,内存占用减少约 30%。
3. RoBERTa 与 ALBERT 的对比
改进维度RoBERTaALBERT
核心目标优化训练策略,提升模型性能。压缩参数,提高训练/推理效率。
参数规模与 BERT 相近(如 Base 版 110M)。显著减少(如 Base 版 12M,仅为 BERT 的 10%)。
训练数据使用更多、更丰富的语料。与 BERT 相似(如 Wikipedia + BooksCorpus)。
任务设计移除 NSP,仅保留 MLM。用 SOP 替代 NSP,增强连贯性建模。
权重共享跨层共享所有 Transformer 参数。
应用场景追求极致性能的任务(如问答、推理)。资源受限环境(如移动端、边缘计算)。
4. 后续影响与演进
  • RoBERTa 奠定了大规模预训练的标准范式,后续模型(如 GPT-3、XLNet)均采用类似的大规模训练策略;
  • ALBERT 开创了参数高效预训练的方向,启发了 T5、DeBERTa 等模型在架构压缩上的创新;
  • 两者结合:如 ELECTRA 融合了 RoBERTa 的训练策略和 ALBERT 的参数共享思想,实现性能与效率的平衡。

总之,RoBERTa 和 ALBERT 分别从训练优化和参数效率两个维度突破了 BERT 的局限,共同推动了预训练语言模型向更大规模、更高效率发展。

相关论文引用:

Liu, Y., Ott, M., Goyal, N., Du, J., Joshi, M., Chen, D., … & Stoyanov, V. (2019). RoBERTa: A Robustly Optimized BERT Pretraining Approach. arXiv preprint arXiv:1907.11692.

Lan, Z., Chen, M., Goodman, S., Gimpel, K., Sharma, P., & Soricut, R. (2020). ALBERT: A Lite BERT for Self-Supervised Learning of Language Representations. arXiv preprint arXiv:1909.11942.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值