预训练模型详解

预训练模型详解


一、主流预训练模型对比

1.1 模型特性总览

模型 核心改进 参数量 中文支持 竞赛推荐度
BERT 双向Transformer编码器 Base: 110M / Large: 340M bert-base-chinese 基线首选
RoBERTa 动态Mask + 更大语料 + 去NSP 同BERT roberta-wwm-ext 强于BERT
DeBERTa V2/V3 注意力解耦 + 增强型Mask解码器 Base/Large/XLarge deberta-v3-base 天花板最高
MacBERT MLM as correction + 全词Mask 同BERT macbert-base 中文优化
ERNIE 知识增强(实体/短语级Mask) Base: 110M ernie-3.0-base 中文知识密集
NEZHA 相对位置编码 + 全词Mask 同BERT nezha-base-wwm 中文长文本

1.2 选型决策树

是否中文任务?
├── 是 → 是否需要知识增强?
│   ├── 是 → ERNIE / MacBERT
│   └── 否 → RoBERTa-wwm-ext / DeBERTa-v3
└── 否 → 是否追求极致性能?
    ├── 是 → DeBERTa V3 XLarge
    └── 否 → RoBERTa Base → BERT Base

二、BERT架构详解

2.1 核心组件

组件 说明
Input Embedding Token Embedding + Segment Embedding + Position Embedding
Transformer Encoder Multi-Head Self-Attention + FFN + LayerNorm + Residual
[CLS] Token 句子级表征,用于分类任务
[SEP] Token 句子分隔符
[MASK] Token 预训练时的掩码标记

2.2 预训练任务

任务 说明 BERT使用 RoBERTa改进
MLM 随机遮蔽15%的Token并预测 静态Mask 动态Mask
NSP 判断两个句子是否相邻 使用 弃用(无收益)
SOP 判断两个句子顺序是否被交换 不使用 ALBERT使用

三、DeBERTa核心创新

3.1 注意力解耦(Disentangled Attention)

维度 说明
传统注意力 内容-内容交互:Q_c * K_c^T
解耦注意力 三重交互:内容-内容 + 内容-位置 + 位置-内容
位置编码 相对位置编码,而非绝对位置编码
优势 更好地捕捉Token间的相对位置关系,对长距离依赖建模更强

3.2 增强型Mask解码器(EMD)

维度 说明
问题背景 解耦注意力在输出层缺少绝对位置信息
解决方案 在Softmax之前注入绝对位置信息
效果 弥补解耦注意力对绝对位置的忽视

3.3 DeBERTa V3改进

维度 说明
RTD(Replaced Token Detection) 替代MLM,检测哪些Token被替换
Generator-Discriminator 生成器替换Token,判别器检测替换
共享Embedding 生成器和判别器共享Token Embedding
优势 比MLM更高效的预训练信号

四、RoBERTa改进要点

改进 说明 效果
动态Mask 每个Epoch重新生成Mask模式 比静态Mask更优
去NSP 去掉Next Sentence Prediction任务 NSP无收益甚至有害
更大语料 使用160GB文本语料 更强的语言理解能力
更长训练 更多的训练步数和更大的Batch Size 更充分的预训练
全词Mask(wwm) 中文场景下遮蔽完整词而非单字 中文任务提升显著
BPE分词 Byte-level BPE,词表更大 覆盖更多Unicode字符

Byte-level BPE详解

维度 说明
传统BPE 基于字符级别构建词表,处理未知词能力有限
Byte-level BPE 以字节为基本单位构建词表,天然覆盖所有Unicode字符
词表大小 基础词表仅256个字节,通过合并操作扩展到50K+
优势 无需未知词标记,任何语言的文本都能编码
RoBERTa应用 RoBERTa使用Byte-level BPE,词表大小50265

五、中文预训练模型对比

5.1 MacBERT

维度 说明
核心改进 用同义词替换[MASK],而非直接用[MASK]标记
MLM as Correction 预训练任务变为"纠错"而非"填空",更接近Fine-tuning场景
全词Mask 中文场景下遮蔽完整词
Ngram Mask 按Ngram概率遮蔽(1-gram: 80%, 2-gram: 15%, 3-gram: 5%)
优势 消除预训练与微调之间的Mask差异

5.2 ERNIE

维度 说明
知识增强 实体级Mask + 短语级Mask,而非Token级Mask
多语言版本 ERNIE 2.0 / ERNIE 3.0
持续学习框架 通过多任务持续学习框架增量注入知识
适用场景 知识密集型任务(如实体识别、关系抽取)

5.3 NEZHA

维度 说明
相对位置编码 使用相对位置编码替代绝对位置编码
全词Mask 中文场景下遮蔽完整词
优势 对长文本和位置敏感任务更优

六、预训练模型微调范式

6.1 标准微调流程

1. 加载预训练权重
2. 添加任务特定的分类头
3. 冻结/解冻策略选择
4. 设置分层学习率
5. 训练并保存最优权重

6.2 冻结策略

策略 说明 适用场景
全参数微调 所有参数参与训练 数据充足时
冻结底层 只训练顶层和分类头 数据较少时
渐进解冻 从顶到底逐步解冻 中等数据量
Adapter 插入小参数Adapter模块 多任务场景

6.3 分层学习率设置

学习率 说明
Embedding层 1e-5 ~ 2e-5 预训练知识丰富,少动
Transformer层 2e-5 ~ 5e-5 逐层递增
分类头 1e-4 ~ 5e-4 随机初始化,需快速学习

七、模型规模与性能权衡

模型规模 参数量 推理速度 显存需求 性能天花板
Base ~110M 中等
Large ~340M 较高
XLarge ~900M 最高
多模型融合 N倍 N倍慢 需进程隔离 最高

实战建议

维度 说明
起步阶段 用Base模型快速验证思路,确认数据管线无误
中期阶段 切换Large模型,配合对抗训练和混合池化
冲刺阶段 使用XLarge + 多折 + 多模型融合
Code Submission 考虑模型蒸馏或Self-Distillation压缩模型

八、其他重要预训练模型

ELECTRA

维度 说明
核心思想 生成器替换部分Token,判别器检测哪些Token被替换(RTD)
与BERT区别 BERT只学习被Mask的15%Token,ELECTRA学习全部Token
参数效率 在相同计算量下,ELECTRA Small超越BERT Small
竞赛应用 适合计算资源有限时,同等参数量下效果更好

ALBERT

维度 说明
核心改进 跨层参数共享 + 嵌入分解,大幅减少参数量
参数量 ALBERT-xxLarge仅235M参数,但效果接近甚至超过BERT-Large
SOP任务 用Sentence Order Prediction替代NSP
竞赛应用 显存受限时可选,但推理速度不比BERT快(层数未减少)

XLNet

维度 说明
核心改进 排列语言模型(PLM),自回归方式学习双向上下文
相对位置编码 使用Transformer-XL的相对位置编码和片段循环机制
与BERT区别 BERT的[MASK]标记在微调时不存在(预训练-微调差异),XLNet无此问题
竞赛应用 长文本任务中有优势,但训练资源消耗大

Longformer / BigBird

维度 说明
核心改进 稀疏注意力机制,支持4096+长度输入
Longformer 滑动窗口注意力 + 全局注意力(关键Token)
BigBird 随机注意力 + 滑动窗口 + 全局注意力
竞赛应用 长文档分类、长文本NER等超过512 Token限制的任务

九、参数高效微调(PEFT)

LoRA(Low-Rank Adaptation)

维度 说明
核心思想 冻结原始权重,在Attention层旁路添加低秩矩阵A和B
公式 h = Wx + BAx,其中B∈R^(d×r),A∈R^(r×d),r远小于d
秩r 通常4~16,越大表达能力越强但参数越多
参数量 仅增加0.1%~1%参数即可达到全参数微调效果
竞赛应用 多任务场景下为每个任务训练一个LoRA,推理时切换
实现 peft.LoraConfig + get_peft_model()

P-Tuning / Prefix Tuning

方法 核心思想 可训练参数
P-Tuning 在输入前添加可学习的连续Prompt向量 Prompt向量参数
Prefix Tuning 在每层Attention的Key/Value前添加可学习前缀 前缀向量参数
Prompt Tuning 仅在输入Embedding层添加可学习Prompt 最少参数
P-Tuning v2 每层都添加可学习Prompt,效果接近全参数微调 适中

Adapter

维度 说明
核心思想 在Transformer层中插入小型瓶颈结构(Down→ReLU→Up)
参数量 仅增加2%~5%参数
优势 多任务场景下每个任务只训练一个Adapter,共享主模型
劣势 增加推理延迟(额外前向传播)

PEFT方法选择

场景 推荐方法 理由
显存不足 LoRA 参数最少,无推理延迟
多任务切换 Adapter / LoRA 每任务独立参数,共享主模型
追求极致性能 全参数微调 表达能力最强
快速实验 Prompt Tuning 最少参数,最快训练

十、领域自适应预训练(DAPT)

维度 说明
核心思想 在目标领域的无标注语料上继续预训练通用模型
适用场景 医疗、法律、金融等特定领域,通用模型表现差时
语料要求 至少需要数GB级别的领域语料,太少容易过拟合
训练方式 继续MLM任务,学习率设为1e-5~5e-5,训练1~3个epoch
与任务微调关系 DAPT → Task Fine-tuning,两阶段训练
竞赛经验 医疗NER等强领域任务中,DAPT可带来1~3个百分点的提升

DAPT实战流程

1. 收集领域无标注语料(如医疗文本、法律文书)
2. 加载通用预训练模型(如bert-base-chinese)
3. 在领域语料上继续MLM预训练(1~3 epoch, lr=1e-5)
4. 保存领域预训练模型
5. 在任务数据上微调(标准流程)