news 2026/4/23 12:57:27

BERT 变体综述:RoBERTa、ALBERT 与 DistilBERT 的架构与优化策略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BERT 变体综述:RoBERTa、ALBERT 与 DistilBERT 的架构与优化策略

【精选优质专栏推荐】

  • 《AI 技术前沿》—— 紧跟 AI 最新趋势与应用
  • 《网络安全新手快速入门(附漏洞挖掘案例)》—— 零基础安全入门必看
  • 《BurpSuite 入门教程(附实战图文)》—— 渗透测试必备工具详解
  • 《网安渗透工具使用教程(全)》—— 一站式工具手册
  • 《CTF 新手入门实战教程》—— 从题目讲解到实战技巧
  • 《前后端项目开发(新手必知必会)》—— 实战驱动快速上手


每个专栏均配有案例与图文讲解,循序渐进,适合新手与进阶学习者,欢迎订阅。

文章目录

    • 前言
    • BERT 的架构与训练
    • BERT 的变体
    • 总结

前言

本文分为两部分:

  • BERT 的架构与训练
  • BERT 的变体

BERT 的架构与训练

BERT 是一个仅包含编码器的模型。其架构如下图所示。

BERT 虽然使用了一系列 Transformer 块,但其关键创新在于训练方式。

根据原始论文,BERT 的训练目标是预测输入序列中被掩码的词语。这被称为掩码语言模型(Masked Language Model,MLM)任务。模型的输入是如下格式的 token 序列:

[CLS] <text_1> [SEP] <text_2> [SEP]

其中<text_1><text_2>是来自两句不同句子的序列。特殊 token[CLS][SEP]用于分隔句子。[CLS]token 作为序列开头的占位符,用于学习整个序列的表示。

与常见的大语言模型(LLM)不同,BERT 不是因果模型。它可以看到整个序列,并且任意位置的输出依赖于左右上下文。这使得 BERT 适用于诸如词性标注等自然语言处理任务。模型通过最小化以下损失函数进行训练:

loss = loss_MLM + loss_NSP

其中,第一项是掩码语言模型(MLM)任务的损失,第二项是下一句预测(Next Sentence Prediction, NSP)任务的损失。具体如下:

MLM 任务
<text_1><text_2>中的任意 token 都可以被掩码,模型需要识别并预测原始 token,可能出现三种情况:

  1. token 被替换为[MASK]。模型应识别该特殊 token 并预测原始 token。
  2. token 被替换为词表中的随机 token。模型应识别该替换。
  3. token 未发生变化,模型应预测其未变。

NSP 任务
模型需要预测<text_2>是否为紧跟<text_1>的真实下一句。也就是说,两句来自同一文档且相邻。该任务是二分类任务,使用序列开头的[CLS]token 进行预测。

因此,训练数据不仅包含文本,还包含额外的标签。每个训练样本包含:

  • 一段被掩码的 token 序列:[CLS] <text_1> [SEP] <text_2> [SEP],部分 token 按上述规则替换
  • 区段标签(0 或 1),用于区分第一句和第二句
  • 布尔标签,指示<text_2>是否确实跟随<text_1>
  • 掩码位置列表及其对应的原始 token

这种训练方法使模型能够分析整个序列,并在上下文中理解每个 token。因此,BERT 在文本理解上表现出色,但并非为文本生成而训练。例如,BERT 可以提取文本中相关部分来回答问题,但无法用不同语气改写答案。这种通过 MLM 和 NSP 目标的训练称为预训练,之后模型可以针对特定应用进行微调。

BERT 的变体

BERT 由 𝐿 层堆叠的 Transformer 模块组成。模型的关键超参数包括隐藏维度大小 𝑑 和注意力头数量 ℎ。原始的 BERT base 模型参数为 𝐿 = 12、𝑑 = 768、ℎ = 12;而 BERT large 模型为 𝐿 = 24、𝑑 = 1024、ℎ = 16。

自 BERT 取得成功以来,多个变体相继被提出。最简单的变体是 RoBERTa,它保持与 BERT 相同的架构,但在分词上使用 BPE(Byte-Pair Encoding)而非 WordPiece。RoBERTa 在更大规模的数据集上进行训练,且使用更大的批大小和更多轮数。此外,其训练仅使用 MLM 损失,不包含 NSP 损失。这表明原始 BERT 模型实际上是“训练不足”的;更充分的训练策略与更多数据可以在不增加模型规模的情况下显著提升性能。

ALBERT是一种更快、参数更少的 BERT 变体,它通过两项技术减少模型规模。第一项是因式分解嵌入(factorized embedding):嵌入矩阵先将输入 token 映射为更小维度的嵌入向量,然后再由一个投影矩阵将其映射为较大维度的最终嵌入供 Transformer 使用。可以理解为:

这里,𝑁 是投影矩阵,𝑀′ 是维度较小的嵌入矩阵,其维度大小为 𝑘。当输入一个 token 时,嵌入矩阵作为查找表返回对应的嵌入向量。模型仍然在较大的维度 𝑑(其中 𝑑 > 𝑘)上运行,但由于添加了投影矩阵,总参数量变为:

𝑑·𝑘 + 𝑘·𝑁 = 𝑘·(𝑑 + 𝑁)

当 𝑘 足够小时,这一参数量相比完整嵌入矩阵 𝑑·𝑁 要小得多。

第二项技术是跨层参数共享(cross-layer parameter sharing)。在 BERT 中,堆叠的 Transformer 模块虽然结构相同,但参数各不相同;而 ALBERT 则强制它们不仅结构一样,而且共享参数。本质上,模型将输入序列在同一个 Transformer 模块中重复处理 𝐿 次,而不是依次通过 𝐿 个不同模块。这样能够显著减少模型复杂度,同时性能仅有轻微下降。

DistilBERT 保持了与 BERT 相同的架构,但通过知识蒸馏进行训练。首先训练一个较大的教师模型达到较高性能,然后训练一个较小的学生模型去模仿教师的输出。DistilBERT 论文指出,该学生模型能以仅 60% 的参数达到教师模型 97% 的性能。

在 DistilBERT 中,学生模型与教师模型拥有相同的隐藏维度和注意力头数,但学生模型的 Transformer 层数减半。学生模型通过匹配自身各层输出与教师模型对应层输出来学习。其损失函数包含三部分:

1.语言模型损失(MLM loss):即 BERT 使用的原始掩码语言模型损失
2.蒸馏损失(distillation loss):学生模型与教师模型 softmax 输出之间的 KL 散度
3.余弦距离损失(cosine distance loss):学生模型每一层的隐状态与教师模型对应层隐状态之间的余弦距离

这三类损失在蒸馏中提供额外指导,使学生模型的性能优于直接独立训练的小模型。

总结

本文介绍了 BERT 的架构与训练方式,包括 MLM 与 NSP 两大训练目标。随后还介绍了几个重要的变体:

  • RoBERTa:采用改进训练策略的 BERT
  • ALBERT:通过参数因式分解与跨层共享减少模型规模
  • DistilBERT:通过知识蒸馏获得更小但高效的模型

这些模型在性能、大小与计算效率之间提供了不同的权衡,适用于各种 NLP 应用场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:10:31

Steam Headless Docker 无头模式游戏流媒体服务器配置指南

Steam Headless Docker 无头模式游戏流媒体服务器配置指南 【免费下载链接】docker-steam-headless A Headless Steam Docker image supporting NVIDIA GPU and accessible via Web UI 项目地址: https://gitcode.com/gh_mirrors/do/docker-steam-headless Steam Headle…

作者头像 李华
网站建设 2026/4/23 12:49:05

AI Agent为何突然爆火?一文讲透它的原理与未来

AI Agent是具备自主决策能力的智能系统&#xff0c;经历了从传统聊天机器人到LLM驱动&#xff0c;再到RAG系统的进化。其核心组件包括感知模块、推理引擎、执行机构、知识库和学习系统&#xff0c;正在改变智能驾驶、精准医疗等领域。尽管面临伦理困境和数据依赖等挑战&#xf…

作者头像 李华
网站建设 2026/4/23 11:27:47

DAY 37 GPU训练及类的call方法

一、GPU性能的查看&#xff1a;看架构代际、核心数、线程数 二、GPU性能的查看&#xff1a;看显存、看级别、看架构代际 三、GPU训练的方法&#xff1a;数据和模型移动到GPU device上 模型在 GPU 上训练&#xff0c;主要是将模型和数据迁移到 GPU 设备上。 在 PyTorch 里&a…

作者头像 李华
网站建设 2026/4/18 10:31:28

传统IT运维的转型之路:一段关于思维与技能的升级记录

在IT基础设施领域工作多年后&#xff0c;我逐渐观察到一种趋势&#xff1a;单纯的系统稳定与响应速度已不再是衡量运维价值的唯一标尺。随着云原生、微服务架构的普及&#xff0c;系统的复杂性呈指数级增长&#xff0c;传统的监控与响应模式开始显得捉襟见肘。作为一名在运维一…

作者头像 李华
网站建设 2026/4/19 17:31:11

计算机毕业设计springboot基于Java的游乐园管理系统设计与实现 基于Spring Boot框架的Java游乐园综合管理系统开发与应用 Java技术驱动的Spring Boot游乐园运营管理系

计算机毕业设计springboot基于Java的游乐园管理系统设计与实现47q0x9 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着电子科技的飞速发展&#xff0c;游乐园作为现代休闲娱乐…

作者头像 李华
网站建设 2026/4/19 17:42:41

ArkUI-X iOS跨平台开发实战:从入门到精通的5个关键步骤

ArkUI-X iOS跨平台开发实战&#xff1a;从入门到精通的5个关键步骤 【免费下载链接】arkui_for_ios ArkUI-X adaptation to iOS | ArkUI-X支持iOS平台的适配层 项目地址: https://gitcode.com/arkui-x/arkui_for_ios 你是否在为跨平台应用开发中iOS端适配的复杂性而困扰…

作者头像 李华