外观
BERT 与编码器家族
BERT(Bidirectional Encoder Representations from Transformers)是 2018 年谷歌提出的基于 Transformer 编码器(encoder-only)、以"掩码语言建模(MLM)"为预训练任务的双向表示模型。它与 GPT 一同引爆了"预训练 + 微调"范式,但在架构选择上与 GPT 分道扬镳:GPT 走"解码器 + 生成",BERT 走"编码器 + 理解"。本页拆解 BERT 的原理、家族演进与在 LLM 时代的地位;架构底层机制见 Transformer 架构详解,与 GPT 路线的完整对照见 GPT 系列:从 GPT-1 到 GPT-4o。
一、BERT 是什么:一句话定义
BERT = 双向编码器 + 掩码语言建模(MLM)预训练 + 下游微调。它用"随机挖掉句子中的词、让模型根据左右两侧上下文猜回来"的方式预训练,得到深度双向的文本表示;再在每个下游任务(分类、抽取、问答、相似度)上加一个轻量输出头微调。
预训练目标(MLM):
输入: 中国的[ MASK ]是北京,人口超过[ MASK ]千万。
预测: [ MASK ]₁ → "首都" [ MASK ]₂ → "1"(依据左右双向上下文)
下游微调(如情感分类):
[CLS] 这部电影太好看了 [SEP] → 输出层 → 正面BERT 论文《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》2018 年 10 月发布于 arXiv(2019 年获 NAACL 最佳长文)。它在 11 项 NLP 基准上刷新 SOTA,与 GPT-1 几乎同时出现,共同确立了"预训练 + 微调"时代。
二、原理拆解:BERT 的三个关键设计
1. 双向:与 GPT 的本质区别
GPT 用因果掩码,每个位置只能"看左边"(单向自回归);BERT 不做因果掩码,每个位置能看到全部上下文(双向)。直觉上,理解任务(判断情感、抽取实体)非常依赖下文——"这电影不怎么样"的"不"要结合后面才知道是负面的。双向是 BERT 在理解类任务上压倒同规模 GPT 的根本原因。
2. MLM:掩码语言建模
掩码策略的细节(论文原文):随机选 15% 的 token 做预测,其中 80% 替换为 [MASK]、10% 替换为随机词、10% 保持原词。这样做的动机:预训练与微调时模型都看不到 [MASK],强制模型学习上下文语义而非"看到 [MASK] 就猜词"。
80/10/10 的比例设计颇有深意:若 100% 都替换成 [MASK],模型只会学会"看见 [MASK] 就猜词",而微调阶段文本里并没有 [MASK],预训练与微调的输入分布就会不一致;若 100% 保持原词,模型又几乎没有预测压力。折中的 80/10/10 让模型既依赖上下文语义、又对"被随机替换的词"保持稳健。这一设计后来被动态掩码、整词掩码等方案沿用或修订,但"让预训练目标与下游分布对齐"的思想至今仍是预训练目标设计的核心考量(见 预训练:数据与目标)。
3. NSP:下一句预测
为了让模型理解"句子间关系"(对问答、蕴含任务重要),BERT 同时训练二分类任务:判断 B 句是否是 A 句的下一句(50% 真实 / 50% 随机)。后续研究表明 NSP 贡献有限(RoBERTa 去掉它反而更强),但它体现了那个时代对"句间结构"的探索。
4. 输入构造与规格
| 项目 | 规格 |
|---|---|
| 输入格式 | [CLS] 句子A [SEP] 句子B [SEP] + 段嵌入 + 位置嵌入 |
| 输出头 | [CLS] 位向量用于分类;其余位置向量用于 token 级任务 |
| BERT-base | 1.1 亿参数(12 层 / 768 维 / 12 头) |
| BERT-large | 3.4 亿参数(24 层 / 1024 维 / 16 头) |
| 预训练数据 | BookCorpus + English Wikipedia(约 33 亿词) |
| 最大输入长度 | 512 token(位置嵌入上限) |
5. 效果
BERT-large 发布时在 GLUE(79.6 → 82.1)、SQuAD 1.1(F1 93.2,超人类)、SQuAD 2.0 等 11 项基准上全部 SOTA。它的公开权重 + 开源实现让"任何人几小时内微调出一个世界级 NLP 模型"成为现实,直接催生了 Hugging Face 生态的爆发。
三、BERT vs GPT:两条路线的对照
这是 2018–2023 年间最重要的架构对比,值得反复咀嚼:
双向注意力的价值在不同任务上差异很大:凡是"答案依赖全文上下文"的任务(蕴含判断、指代消解、问答),双向有明显优势;凡是"顺序敏感"的任务(生成、翻译、时序推理),单向/自回归更自然。这就是为什么编码器模型在自然语言蕴含、抽取类任务上至今仍是强基线,而生成任务完全归了解码器。选架构时别问"哪个更好",要问"我的任务更依赖全局上下文还是顺序生成"。
| 维度 | BERT | GPT |
|---|---|---|
| 架构 | 编码器(encoder-only) | 解码器(decoder-only) |
| 注意力方向 | 双向(无因果掩码) | 单向(因果掩码,只看左侧) |
| 预训练目标 | 掩码语言建模(MLM) | 自回归 next-token prediction |
| 擅长任务 | 理解:分类、抽取、排序、检索 | 生成:续写、翻译、对话、代码 |
| 下游适配 | 加输出头微调 | 提示 / 上下文学习 / 微调 |
| 规模轨迹 | 停滞在亿级(最多 ~百亿) | 一路到千亿级、万亿级 |
| 时代归宿 | LLM 时代的"工具件" | LLM 时代的"主角" |
为什么 GPT 最终赢了?
两种目标本质是互补的:MLM 让表示更"懂",自回归让模型更"会写"。但对话、编程、Agent 这些杀手级应用全部需要生成;而生成能力一旦配上规模与对齐(见 对齐:RLHF 与 DPO),就自然覆盖了大部分理解任务。BERT 的理解优势在绝对能力被拉开后不再显著。
四、编码器家族:BERT 的改进与压缩
BERT 发布后一年内涌现了一批改进,围绕四个方向:数据更多、训练更久、参数更省、推理更快。
| 模型 | 时间 | 参数量 | 关键改动 | 效果 |
|---|---|---|---|---|
| BERT-large | 2018.10 | 3.4 亿 | 基线 | GLUE 82.1 |
| RoBERTa | 2019.7 | 3.55 亿 | 去掉 NSP、动态掩码、10 倍数据(160GB)、训练更久 | GLUE 88.5 |
| XLNet | 2019.6 | 3.4 亿 | 排列语言建模(自回归目标 + 双向上下文) | 当时多项 SOTA |
| ALBERT | 2019.9 | ~1200 万(共享后) | 跨层参数共享 + 分解嵌入 + SOP 替换 NSP | 以极少参数逼近 RoBERTa |
| DistilBERT | 2019.10 | 6600 万 | 知识蒸馏(教师 BERT-base) | 保留约 97% 能力,推理快约 60% |
| ELECTRA | 2020.3 | 3.3 亿 | 替换 token 检测(判别式预训练) | 用 1/4 算力追平 RoBERTa |
1. RoBERTa:数据与训练细节的胜利
RoBERTa 的结论极具启发性:BERT 还有大量"没训够"的余量——把数据从 16GB 提到 160GB、动态掩码、去掉 NSP、训练 4 倍步数后,GLUE 从 82.1 涨到 88.5。它证明在预训练时代,"数据量 + 训练时长"的重要性不亚于架构创新(这与 规模法则 的结论同构)。
2. ALBERT 与 DistilBERT:省参数与提速
- ALBERT:三招降参——跨层共享参数、嵌入矩阵分解、用句子连贯性预测(SOP)替代 NSP。参数量从亿级降到千万级,能力只略降。
- DistilBERT:知识蒸馏的典范——用教师 BERT 的软标签训练 6600 万参数的学生,保留 97% GLUE 能力,推理快约 60%。"大模型教小模型"后来成为 从零构建一个大模型 与蒸馏小模型的主流思路。
3. XLNet 与 ELECTRA:两个"哲学变体"
- XLNet:想同时要"自回归 + 双向"——通过排列(permutation)让自回归模型在训练时也能看到全部上下文,但没有根本性胜出。
- ELECTRA:把预训练从"生成式"改为"判别式"——让生成器挖词、判别器判断每个位置是否被替换,计算效率高,性能逼近 RoBERTa。
五、T5:把一切任务统一成"文本到文本"
1. 核心思想
T5(Text-to-Text Transfer Transformer,2019 年 10 月,Google)选择了第三条路线:编码器-解码器(encoder-decoder),并把所有任务(翻译、摘要、分类、问答)统一成"输入一段文本,输出一段文本":
输入: "翻译成英文: 我爱中国" → 输出: "I love China"
输入: "情感分类: 这部电影太好看了" → 输出: "正面"2. 规格与贡献
| 项目 | 规格 |
|---|---|
| 最大版本 | T5-11B(编码器-解码器,约 110 亿参数) |
| 训练数据 | C4(Colossal Clean Crawled Corpus,约 750GB,Common Crawl 清洗版) |
| 关键创新 | 统一的 text-to-text 框架、任务前缀(task prefix)、C4 数据清洗方法论 |
| 效果 | 发布时 GLUE / SuperGLUE / SQuAD 多项 SOTA |
T5 的另一份方法论遗产是"任务前缀 + 统一输入输出"的设计,它让"用同一个模型处理上百个任务"成为可能。这一思想与后来的指令微调一脉相承(见 微调:SFT 与参数高效微调)——事实上,许多指令微调数据集就是把任务描述当作 T5 式前缀。理解 T5,就能理解为什么今天的模型能凭一句指令切换技能:任务本身就是输入的一部分,模型的"通用性"来自对"任务表述"的泛化。
T5 的贡献在于方法论:它系统验证了"任务表述的统一性"——同一个预训练模型,靠不同的"文本前缀"切换任务,甚至不需要改输出头。这直接启发了两件事:一是后来的指令微调(微调:SFT 与参数高效微调)中"任务描述进输入"的做法;二是"用一个模型做所有事"的通用性思想。
三种架构的记忆法
编码器管"懂"、解码器管"写"、编码器-解码器管"转换"。分类、检索、表示 → BERT 家族;生成、对话 → GPT 家族;翻译、摘要、多任务 → T5 家族。理解架构选型,就能预测模型家族的能力边界。
六、BERT 的遗产与局限
1. 遗产:在 LLM 时代仍活跃的四个方向
- 文本表示(Embedding)模型:BERT 类的双向模型至今是高质量 sentence/document embedding 的主力基座——E5、bge、GTE、text-embedding 系列等检索嵌入模型大多以编码器架构蒸馏/微调而来。
- 检索编码器:RAG 的密集检索依赖双塔/单塔编码器把 query 和 doc 映射到同一向量空间(如 DPR),这正是 RAG:检索增强生成 的"索引"阶段地基。
- 理解任务的性价比选择:分类、NER、垃圾过滤、排序等任务上,几百 MB 的编码器微调模型,成本与延迟远低于调用生成式大模型,仍是工业界的主流方案。
- 蒸馏与效率:编码器小模型(DistilBERT 等)与"教师-学生"蒸馏范式,被 LLM 时代的轻量化反复复用。
一个自然的问题是:既然解码器一路涨到万亿级,编码器为什么停在几亿到百亿?原因有三:其一,理解任务(分类、抽取)的能力饱和得早,再大边际收益低;其二,检索表示更看重"对齐"与"区分度"而非"容量",双塔模型太大反而难训练;其三,部署成本——十亿级编码器已能在 CPU 上实时服务,更大的编码器没有性价比。编码器"小而精"是工程选择而非能力天花板。
2. 局限:为什么不擅长生成
- 没有自回归解码能力:BERT 不产出"下一个词",要生成必须外接 decoder 或改成 seq2seq,效果和架构都不如原生解码器。
- 双向带来"暴露偏差":训练时看到全句,生成时只能看已生成部分,二者分布不一致。
- 512 token 上限:早期编码器上下文极短,长文档能力弱(后来 Longformer 等有改进,但未改变格局)。
- 掩码目标低效:MLM 只利用 15% 的 token 做预测,信息利用效率低于自回归目标(这也是 GPT 路线后来者居上的原因之一)。
3. 编码器与解码器如何协同
现实系统里编码器与解码器不是对立而是协作。一个典型的检索增强问答系统中(见 RAG:检索增强生成):编码器负责把千万级文档库压缩成可检索的向量索引(低成本、低延迟),解码器负责根据检索结果组织自然语言答案(高能力、高成本)。编码器的召回质量直接决定解码器能接触到的信息边界——检索错了,生成再强也无济于事。类似的分工也出现在评测链路:用编码器做向量相似度打分,用解码器做 LLM-as-a-judge 语义评审,两种手段互补。把"谁负责找、谁负责说"想清楚,系统设计就成功了一半。
编码器还承担着不少"隐藏角色":大规模数据去重(用 embedding 找近似重复文本)、分类路由(判断问题类型再分配给不同模型)、安全过滤(敏感内容识别)等环节,编码器都远快于生成式大模型。这意味着即使一个团队完全用闭源大模型做前端,其后端也几乎必然运行着一批编码器模型。编码器不会消失,只会退居到"幕后基础设施"的位置。
4. 幻觉与对齐的缺失
编码器模型本身不"说话",因此没有 幻觉:成因与缓解、对齐、安全这些"生成侧"问题;但当它作为 LLM 应用的一环(检索、分类、打分)时,错误会传导进上层,依然需要纳入 评测与基准 体系。
七、在 LLM 时代的地位:从"主角"到"工具件"
2018–2021 年,BERT 是 NLP 的事实主角;2022 年 ChatGPT 之后,生成式大模型接管了对话、Agent、创作等主流场景,编码器从"主角"退居为"工具件":
| 场景 | 2020 年的答案 | 2025 年的答案 |
|---|---|---|
| 情感分类 / 抽取 | 微调 BERT | 小编码器微调 或 生成式模型 |
| 问答 / 对话 | 微调 BERT / T5 | 生成式大模型 |
| 语义检索向量 | BERT embedding | 编码器 embedding(仍主流) |
| 零样本多任务 | 不太可能 | 生成式大模型 + 提示 |
一句话总结:BERT 定义了"预训练 + 微调"和"深度双向表示",这两样东西今天仍深埋在大模型应用的底层(检索、嵌入、蒸馏、理解子任务)里;只是聚光灯已经从它身上移开,交到了解码器家族手中。
未来几年编码器的研究重心有三个方向:其一是多语言与长文档 embedding,让检索覆盖更多语种与更长篇幅;其二是与多模态结合,把图像、表格、代码也纳入统一的向量空间(相关思路见 多模态大模型);其三是在线学习与持续更新,让表示模型能跟上知识库变化而不必频繁重训。这些方向共同指向一个判断:编码器作为"高效理解与检索件"的地位,将在 LLM 生态中长期存在。
对从业者的直接建议是:把编码器当作工程组件而非研究热点来对待。选一个成熟基座(bge / E5 / GTE 类),用你的数据微调或蒸馏,配好评测集,就能稳定吃到"低延迟、低成本理解"的红利;把省下的精力投入到检索策略与生成模型的应用层,收益通常更大。评估编码器的方法见 评测与基准 与 评估实战。
不要用 BERT 家族做生成
一个常见误区是"拿 BERT 微调去写文章/对话"。编码器没有自回归生成机制,硬凑输出既慢质量也差。生成任务请用解码器模型;BERT 的正确用法是表示、检索、分类与蒸馏。
八、编码器的现代应用:检索、分类与蒸馏落地
理解了原理与家族,还要知道编码器在今天具体怎么用。这一节给出四条主流落地路径与工程参数。
1. 检索编码器:双塔与交叉编码器
检索场景存在两类编码器,分工不同:
| 类型 | 做法 | 速度 | 精度 | 用途 |
|---|---|---|---|---|
| 双塔(bi-encoder) | query 与 doc 分别编码、比较相似度 | 快(可向量索引) | 中 | 召回(recall):百万级候选粗筛 |
| 交叉编码器(cross-encoder) | query 与 doc 拼起来整体编码打分 | 慢 | 高 | 精排(rerank):对 top-k 重新排序 |
RAG 的标准检索链路是"双塔召回 + 交叉编码器重排"(见 RAG:检索增强生成)。代表性开源 embedding 模型有 bge、E5、GTE、text-embedding 系列,它们的通用评测基准是 MTEB(涵盖检索、分类、聚类、语义相似度等任务,见 数据集与基准档案)。
# 双塔召回流程示意(伪代码)
query_vec = embed_query(问题)
doc_vecs = vector_db.search(query_vec, top_k=100) # 向量检索粗筛
rerank = cross_encoder(question, doc) for doc in doc_vecs # 精排
final = sort(rerank)[:5] # 取前 5 片段2. 分类与抽取的微调落地
分类(情感、意图、垃圾过滤)、抽取(NER、关键词)是编码器微调的经典场景:
- 分类:取
[CLS]位向量 → 接线性层 → softmax; - 抽取:对每个 token 位置输出标签(BIO 序列标注);
- 数据量:几百到几万条标注即可,远少于生成模型的指令数据;
- 微调要点:低学习率、小 batch、早停,防止灾难性遗忘(方法见 微调:SFT 与参数高效微调)。
3. 蒸馏与压缩
编码器家族是知识蒸馏最成熟的应用领域:用大模型(BERT-large、甚至 GPT 类教师)的软标签训练小模型,可以在保留 95%+ 能力的同时把推理延迟降一个数量级。配合量化(INT8/INT4),编码器小模型可以在 CPU 上实时服务,部署要点见 部署与服务化。
4. 落地选型速查
| 任务 | 推荐方案 | 规模参考 |
|---|---|---|
| 语义检索 embedding | bge / E5 / GTE(编码器蒸馏) | 0.1~1B 参数 |
| 问答精排 | 交叉编码器(BGE-Reranker 等) | 几十~几百 M |
| 情感分类 / NER | 微调 BERT/RoBERTa 小模型 | 100~400 M |
| 大规模聚类 / 去重 | embedding + 聚类算法 | 任意编码器 |
5. 什么时候别用编码器
| 场景 | 为什么不用编码器 | 正确选择 |
|---|---|---|
| 对话 / 创作 / 摘要 | 没有生成能力 | 解码器大模型 |
| 开放域问答 | 需要组织完整回答 | 解码器 + RAG |
| 需要零样本泛化 | 编码器微调才有效果 | 解码器 + 提示 |
| 复杂多步推理 | 编码器不做推理 | 解码器 + CoT/Agent |
编码器的当代定位
编码器是"高速理解件",解码器是"通用大脑"。凡是"把文本变成向量或标签"的活儿,编码器又快又省;凡是"说人话、干活"的活儿,交给解码器。两者在 RAG、蒸馏、评测链路里大量协作。
九、编码器选型与实战 Q&A
1. 从任务出发的选型表
| 任务 | 首选 | 备选 | 为什么 |
|---|---|---|---|
| 情感 / 意图分类 | 微调 BERT/RoBERTa | 生成模型 + 提示 | 分类又快又稳,成本低 |
| NER / 关系抽取 | 微调编码器 | 生成模型 + 结构化输出 | 序列标注天然适合编码器 |
| 语义检索 | bge / E5 / GTE | 闭源 embedding API | 编码器 embedding 质量高 |
| 语义相似度 | Sentence-BERT 类 | 交叉编码器 | 双塔可索引 |
| 文本去重 / 聚类 | embedding + 聚类 | — | 大规模可行 |
| 问答 / 对话 / 创作 | 解码器大模型 | — | 需要生成能力 |
2. 微调编码器的数据与超参
| 超参 | 经验值 | 说明 |
|---|---|---|
| 学习率 | 2e-5 ~ 5e-5 | 比从头训练低一个量级 |
| batch size | 16~64 | 过小不稳、过大显存爆 |
| 训练轮数 | 2~4 | 编码器易过拟合,早停 |
| 数据量 | 几百 ~ 几万条 | 质量 >> 数量 |
| 对抗验证 | 做 | 防止学到数据集噪声 |
数据准备与标注规范见 预训练:数据与目标 中关于后训练数据的部分;评测对比见 评测与基准。
3. 编码器与生成模型的评测差异
| 维度 | 编码器 | 生成模型 |
|---|---|---|
| 输出形态 | 向量 / 标签 | 自由文本 |
| 评测方式 | 准确率、F1、Recall@k | 自动指标 + 人类偏好 + LLM judge |
| 可复现性 | 高(确定性打分) | 中(采样波动) |
| 回归测试 | 便宜 | 贵(每轮都要重新生成) |
4. 编码器会被大模型取代吗
短期内不会,原因有四:
- 成本量级差异:编码器推理比生成模型便宜一到两个数量级;
- 延迟敏感场景:搜索、推荐、风控需要在毫秒级返回;
- 可解释与可控:分类结果可审计,适合合规场景;
- 蒸馏仍需要教师表示:生成模型的隐藏表示常被蒸馏成小编码器用于检索。
长期看,两者会更深地融合:生成模型提供能力上限,编码器承接高频低延迟任务——RAG、蒸馏、评估链路都是它们协作的舞台(见 RAG:检索增强生成)。
5. 高频问题速答
| 问题 | 速答 |
|---|---|
| 编码器能生成吗? | 不能,生成请用解码器 |
| 中文检索用什么 embedding? | bge / GTE / E5 中文版 |
| 多少数据够微调? | 分类几百条起步,抽取更少 |
| 微调会遗忘吗? | 会,用低学习率 + 混合原始语料 |
| 部署多大显存? | 400M 模型 FP16 约 0.8GB,量化后更小 |
| 和 LLM 怎么分工? | 编码器做理解/检索,LLM 做生成/决策 |
关于"编码器 vs 解码器"还有一个常见误解:很多人以为解码器大模型已经完全覆盖编码器能力。实际上,在需要"固定结构输出 + 高吞吐"的场景(排序、打分、聚类、大规模分类),解码器的生成式输出既慢又难保证格式,编码器仍是工程上更优的选择。这不是能力问题,而是形态匹配问题——两种模型各有所长,选型要看任务形态而非"谁更强"。
一句话记住编码器选型
把"要不要生成文本"作为分水岭:不需要生成 → 编码器(快、省、稳);需要生成 → 解码器。绝大多数系统两者都要,靠 RAG 与蒸馏把它们接起来。
十一、编码器评测基准深读
1. GLUE:理解能力的"原始体检表"
GLUE 由 9 个子任务组成,覆盖句子级与单句级理解:
| 任务 | 类型 | 考察 |
|---|---|---|
| CoLA | 语法可接受性 | 语言学能力 |
| SST-2 | 情感二分类 | 情感理解 |
| MRPC / QQP | 句子相似/重复 | 语义匹配 |
| STS-B | 语义相似度打分 | 连续语义 |
| MNLI / RTE | 蕴含推理 | 逻辑推理 |
| QNLI | 问答蕴含 | 阅读与推理 |
| WNLI | 指代消解 | 世界知识 |
BERT-large 当年以 82.1 登顶 GLUE;RoBERTa 提到 88.5;随后模型突破 90,GLUE 被"测满",研究者转向更难的任务。
2. SuperGLUE:难度升级
SuperGLUE 是为击败 GLUE 的模型而设计:加入常识问答(COPA)、多选阅读(MultiRC)、抽象推理(ReCoRD)等,更强调知识与推理。T5、ELECTRA 等都曾在此登顶。
3. MTEB:检索/表示的现代尺度
随着编码器的主要用途从"分类"转向"检索与表示",MTEB(Massive Text Embedding Benchmark)成为新标尺——覆盖 8 类任务(检索、分类、聚类、重排、STS、摘要等)与数十个数据集,统一评测 embedding 质量。
| 类别 | 代表性数据集 | 说明 |
|---|---|---|
| 检索 | BEIR 系列 | 密集检索质量 |
| 分类 | AmazonPolarity 等 | 线性分类能力 |
| 聚类 | Arxiv 等 | 无监督表示 |
| 重排 | 各语料 | 排序质量 |
4. 评测污染与正确用法
- 污染:模型训练数据可能包含评测集,导致分数虚高;
- 正确姿势:自建 golden set + 公开基准交叉验证,并记录模型版本与数据版本(方法见 评测与基准);
- 趋势:编码器评测向"检索场景化"(企业知识库、多语言、长文档)演进。
另外要提醒:GLUE/SuperGLUE 上的历史分数不宜直接用于今天的模型对比——一是任务可能已被训练数据覆盖(污染),二是旧榜无法体现长文本与多语言能力。现代选型请以 MTEB 类新基准加自建集为准。
十二、经典资源与工具
| 资源 | 用途 |
|---|---|
| HF Transformers | 加载/微调 BERT 家族与 embedding 模型 |
| HF sentence-transformers | 句向量、双塔训练与推理 |
| MTEB 榜单 | embedding 模型横向对比 |
| GLUE / SuperGLUE | 理解任务基准 |
| Hugging Face Trainer / PEFT | 微调与 LoRA |
| bge / E5 / GTE 仓库 | 中文与多语言 embedding 基座 |
编码器测评的现代建议
分类小任务看 GLUE 历史 + 自建集;检索任务直接看 MTEB + 你的数据实测。榜单只是起点,拿自己的数据跑一遍才是真验收。
关于蒸馏还有一个常被引用的比例:编码器蒸馏的典型结果是"约 40% 的参数保留约 90% 的能力"——DistilBERT 用 6600 万参数(约为 BERT-base 的 60%)保留 97% GLUE 能力是其中比较优秀的案例。蒸馏不仅省显存,还让模型更容易部署到边缘设备(手机、IoT),这与 部署与服务化 中的量化思路叠加后,是把大模型能力"下沉"到低成本硬件的主要路径。
十三、延伸阅读
- 语言建模:下一词预测范式——MLM 与自回归两种目标的对比
- Transformer 架构详解——编码器/解码器的注意力差异
- GPT 系列:从 GPT-1 到 GPT-4o——同门不同路的解码器家族
- RAG:检索增强生成——编码器 embedding 在检索中的角色
- 微调:SFT 与参数高效微调——编码器与解码器的微调方法对比
- 主流模型档案——编码器家族在模型版图中的位置
参考资料
- Devlin et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(2018)——BERT 原始论文(arXiv)
- Liu et al. RoBERTa: A Robustly Optimized BERT Pretraining Approach(2019)——RoBERTa 论文(arXiv)
- Lan et al. ALBERT: A Lite BERT for Self-supervised Learning of Language Representations(2019)——ALBERT 论文(arXiv)
- Sanh et al. DistilBERT, a distilled version of BERT(2019)——DistilBERT 论文(arXiv)
- Raffel et al. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer(T5, 2019)——T5 论文(arXiv)
- Yang et al. XLNet: Generalized Autoregressive Pretraining for Language Understanding(2019)——XLNet 论文(arXiv)
- Clark et al. ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators(2020)——ELECTRA 论文(arXiv)
- Reimers & Gurevych. Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks(2019)——句向量与检索应用的代表工作(arXiv)