2026/1/8 12:12:04
网站建设
项目流程
wordpress做自建站,php综合网站源码,网站开发 不好 怎么说,做婚恋网站的思路【精选优质专栏推荐】 《AI 技术前沿》 —— 紧跟 AI 最新趋势与应用《网络安全新手快速入门(附漏洞挖掘案例)》 —— 零基础安全入门必看《BurpSuite 入门教程(附实战图文)》 —— 渗透测试必备工具详解《网安渗透工具使用教程(全)》 —— 一站式工具手册《CTF 新手入门实战教…【精选优质专栏推荐】《AI 技术前沿》—— 紧跟 AI 最新趋势与应用《网络安全新手快速入门(附漏洞挖掘案例)》—— 零基础安全入门必看《BurpSuite 入门教程(附实战图文)》—— 渗透测试必备工具详解《网安渗透工具使用教程(全)》—— 一站式工具手册《CTF 新手入门实战教程》—— 从题目讲解到实战技巧《前后端项目开发(新手必知必会)》—— 实战驱动快速上手每个专栏均配有案例与图文讲解循序渐进适合新手与进阶学习者欢迎订阅。文章目录前言BERT 的架构与训练BERT 的变体总结前言本文分为两部分BERT 的架构与训练BERT 的变体BERT 的架构与训练BERT 是一个仅包含编码器的模型。其架构如下图所示。BERT 虽然使用了一系列 Transformer 块但其关键创新在于训练方式。根据原始论文BERT 的训练目标是预测输入序列中被掩码的词语。这被称为掩码语言模型Masked Language ModelMLM任务。模型的输入是如下格式的 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可能出现三种情况token 被替换为[MASK]。模型应识别该特殊 token 并预测原始 token。token 被替换为词表中的随机 token。模型应识别该替换。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 相同的架构但在分词上使用 BPEByte-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采用改进训练策略的 BERTALBERT通过参数因式分解与跨层共享减少模型规模DistilBERT通过知识蒸馏获得更小但高效的模型这些模型在性能、大小与计算效率之间提供了不同的权衡适用于各种 NLP 应用场景。