一、对比背景:为什么需要比较这三类预训练范式
自然语言处理近年最深刻的变化,是从“人工特征+小模型”转向“大规模自监督预训练+下游适配”。沿着这条演进主线,出现了三代代表性技术路线:
- 第一代:静态词向量类——训练完成后每个词对应一个固定向量;
- 第二代:动态上下文词向量类——同一个词在不同上下文中表示不同;
- 第三代:基于Transformer的预训练语言模型——参数规模更大,且强调“预训练+微调”的端到端迁移范式。
对开发者而言,真正的难点不是“哪个模型最强”,而是在自身业务的数据规模、算力预算、时延约束下,哪条路线的综合性价比最高。本文将系统对比这三类范式,并回答两个高频问题:预训练语言模型到底如何做微调?中文预训练模型在公开评测中刷榜,是否等于业务可用?
二、对象定义:三类方案分别是什么
1. 什么是预训练模型
预训练模型是指先在大规模无标注语料上,通过自监督任务(如预测被遮盖的词、按上文预测下文、判断句间关系)学习通用语言表示,再将学到的参数迁移到下游任务的模型。其核心价值在于把“理解语言”这一通用能力从具体任务中解耦出来,显著降低下游任务对标注数据量的依赖。
2. 方案A:静态词向量类
代表思路是两种互为镜像的窗口式语言模型:一种以中心词预测周边词,一种以周边词预测中心词;此外还有基于全局共现统计的矩阵分解式词向量,以及在词向量上叠加字符级n-gram、支持快速文本分类并缓解未登录词问题的增强变体。
训练层面的三个经典技巧值得展开:
- 层次化softmax:不再对词表规模为W的全部输出位置计算概率分布,而是沿树形结构只评估约log₂W个节点,大幅降低输出层计算量;
- 负采样:以一次“输入词预测输出词”的训练为例,设词典1万词、向量维度300,输出侧one-hot编码时仅1个正样本、9999个负样本;若每次只抽取少量(如5个)负样本连同正样本一起更新,输出层参数更新量即从300×10000量级降到300×6量级,效率显著提升。经验上,小规模数据集选5~20个负样本、大规模数据集选2~5个较常见;
- 高频词二次采样:the、a、in等高频虚词携带信息量远低于罕见词,训练时按频率相关的概率随机丢弃,避免其主导梯度、把网络“带偏”。
核心局限:向量训练完成后即固定,属静态表示,无法区分一词多义;窗口式训练目标也难以充分利用语料的全局信息。
3. 方案B:动态上下文词向量类
以多层双向循环网络(如双向LSTM栈)为基础,在每个位置结合左右上下文动态生成表示,下游任务对各层输出进行加权融合;另有基于机器翻译任务编码器迁移得到的上下文向量,以及基于字符级的上下文嵌入方案(对罕见词、拼写变体更鲁棒)。这类模型显著缓解了多义词问题,但通常作为“冻结的特征抽取器”使用,不直接改预训练参数。
主流分两种架构:
- 单向自回归式:堆叠Transformer解码器,从左到右预测下一个词,天然适配文本生成类任务;
- 双向掩码式:堆叠Transformer编码器,通过“随机遮盖词重建”(掩码语言模型)与句对关系预测学习双向上下文,更适合分类、匹配、信息抽取等理解类任务,其句级聚合表示可直接接一个轻量任务头完成下游适配。
与之配套的是成熟的微调方法论,如判别式分层学习率、渐进解冻等,最早在基于循环网络的通用微调框架中被系统化提出。
三、相同点分析
- 目标一致:都利用大规模无标注语料做自监督学习,产出可迁移的通用表示,缓解标注数据稀缺问题;
- 范式一致:都遵循“先预训练、后下游适配”的两阶段思路,只是适配方式不同;
- 表示粒度相近:均以词、子词或字符为基本表示单元,再向上组合成句子、篇章表示;
- 都能提升冷启动效果:在小标注数据场景下,相比从零训练均可带来明显收益,只是收益幅度不同。
四、核心差异分析
| 维度 |
方案A:静态词向量 |
方案B:动态上下文向量 |
方案C:Transformer预训练模型 |
| 技术架构 |
浅层网络/查表 |
双向循环网络栈 |
深层自注意力编码器或解码器 |
| 多义词处理 |
无法区分 |
按上下文动态生成 |
按上下文动态生成 |
| 训练目标 |
局部窗口预测/全局共现 |
双向语言模型 |
掩码重建/自回归预测 |
| 使用方式 |
查表取向量,作为特征拼接 |
冻结抽取特征,按层加权融合 |
特征式或端到端微调均可 |
| 上下文建模 |
局部窗口为主 |
全句双向 |
全句双向或单向生成 |
| 计算与资源成本 |
低 |
中 |
高(训练与推理均更重) |
| 下游接入改造量 |
小 |
中 |
中偏大(需训练流水线与算力) |
| 任务覆盖 |
召回、相似度、轻量分类 |
中小规模序列标注、分类 |
理解、生成、问答、摘要等广覆盖 |
几点关键差异需要进一步说明:
- 语义动态性差异的来源:静态向量把“一个词的所有含义”压缩进同一个向量,多义词只能得到折中表示;动态方案为每个出现位置单独计算表示,语义消歧能力来自“表示与上下文绑定”这一机制本身;
- 使用方式差异:方案A、B本质上都是“特征提供者”,下游模型结构自由度高;方案C则把下游任务简化为“加一个任务头”,但要端到端更新大模型参数,训练工程复杂度随之上升;
- 成本结构差异:静态向量训练和推理都很轻,人力成本低但效果天花板也低;Transformer方案效果上限高,但需要GPU算力、更长的迭代周期和更重的线上推理预算,长期维护成本更高。
五、预训练语言模型如何做微调
下游适配存在两条路线:
- 特征式(冻结):冻结预训练参数,只把输出表示接入下游小模型。实现简单、显存占用低、不易过拟合,适合方案B和小数据场景;
- 微调式(Fine-tuning):预训练参数+任务头端到端训练,效果上限更高,是方案C的主流用法。
微调流程的通用示意(伪代码):
model = 加载预训练权重(冻结与否按策略设定)head = 初始化任务头(标签数量)for epoch in 1~4轮: # 微调轮数通常远小于从零训练 for batch in 训练集: rep = model.encode(batch.text) # 得到句级或token级表示 loss = 任务损失(head(rep), batch.label) loss.backward() # 小学习率更新,避免破坏通用表示 优化器.step()
实践中需要重点把握以下原则:
- 任务头设计:句级分类用聚合后的句向量接线性层;序列标注在token级表示上做逐位置分类;句子对任务通过拼接交互获得 richer 表示;
- 学习率要远小于预训练阶段:业界常见经验在1e-5~5e-5量级;可采用判别式分层学习率——底层通用特征用更小步长、靠近任务头的层用更大步长;
- 渐进解冻:先只训练任务头,再自顶向下逐层解冻,避免一开始的大梯度冲垮预训练知识;
- 训练轮数宜少:通常1~4轮量级,配合学习率预热与梯度裁剪,防止灾难性遗忘;
- 数据量与策略匹配:标注很少时做线性探测(只训任务头);数据中等时做部分层微调;数据充足时全参微调收益最大;
- 领域适配:垂直领域术语密集时,可先在领域内语料上继续预训练,再做任务微调,形成“两段式”迁移;
- 工程配套:长文本用截断或滑动窗口;显存不足用梯度累积、混合精度;线上延迟敏感时用蒸馏、量化做压缩部署。
六、中文预训练模型可以刷榜吗
技术上可以。中文预训练模型通过字词切分策略优化、中文特有语料建设、任务适配等手段,在公开中文评测基准上成绩持续攀升是客观事实;国内技术团队(如百度等)在中文预训练方向也有多年投入,云上通常还提供模型训练、微调与部署类的通用产品能力,可作为工程落地时的选择之一。
但要理性看待榜单,原因有四:
- 榜单会饱和:指标接近上限后,细微差距对业务参考价值有限;
- 榜单分布≠业务分布:评测集的领域、标注口径与真实线上数据往往不同,榜单第一不等于业务收益第一;
- 上线约束被忽略:模型体积、推理时延、吞吐、成本在榜单中不体现,却直接决定能否投产;
- 领域外迁移会衰减:通用榜单成绩好,不代表在医疗、法律、金融等垂直语料上依然领先。
结论:可以刷榜,但选型应“以自身业务评测集为准,榜单仅作初筛参考”。
七、典型场景选择与选型建议
- 高吞吐、低延迟、资源受限(如移动端、边缘侧、大规模粗排召回):优先静态词向量+轻量分类器,或对大模型做蒸馏压缩;
- 中小标注数据、中等算力:动态上下文向量做特征融合,或中等规模模型做部分微调;
- 复杂理解与生成、数据充足:大规模预训练模型全参微调,效果上限最高;
- 垂直领域术语密集:领域内继续预训练+任务微调的两段式方案更稳妥;
- 团队运维能力有限:优先考虑托管化程度更高的模型服务类通用能力,降低训练与推理基础设施的维护负担。
八、迁移与使用注意事项
从静态向量迁移到微调式预训练模型时,需提前评估:
- 接口变化:从“查表取向量”变为“调用编码器”,下游模型结构需要重构;
- 资源重估:显存占用、推理时延、吞吐都要重新压测,必要时引入量化、蒸馏或批处理优化;
- 预处理一致性:词表、切分方式、特殊符号必须线上线下统一,避免训练与推理分布不一致;
- 效果回归:微调存在随机性,应固定评测集、多随机种子对比,建立基线再决定是否切换;
- 数据合规:微调数据可能包含敏感信息,需做好权限控制、数据隔离与审计;
- 版本与监控:模型文件、配置、代码要版本化管理,上线后持续监控效果漂移。
九、总结
三代预训练范式的本质差异,在于表示是否随上下文变化以及下游适配是“用特征”还是“改参数”:静态词向量胜在轻量高效,适合召回与资源受限场景;动态上下文向量以冻结特征的方式解决了多义词问题;Transformer预训练模型则以“预训练+微调”的端到端迁移获得最高的效果上限。微调的关键在于小学习率、分层策略、渐进解冻与少轮次训练;而面对“刷榜”现象,应坚持业务评测优先。选型没有绝对答案,只有与自身数据规模、算力预算和时延约束相匹配的条件化判断。