当前位置: 首页> 科技> 名企 > 网页设计与制作页面_小程序商店怎么做_营销100个引流方案_公司企业网站制作

网页设计与制作页面_小程序商店怎么做_营销100个引流方案_公司企业网站制作

时间:2025/7/8 7:40:03来源:https://blog.csdn.net/qq_38146189/article/details/148769043 浏览次数:0次
网页设计与制作页面_小程序商店怎么做_营销100个引流方案_公司企业网站制作

参考资料:https://github.com/datawhalechina/happy-llm 

3.1.1 BERT

BERT(Bidirectional Encoder Representations from Transformers)是由 Google 团队在 2018 年发布的预训练语言模型,标志着预训练+微调范式在自然语言处理(NLP)领域的广泛应用。BERT 在多个 NLP 任务上取得了 SOTA(State Of The Art)性能,推动了预训练模型的发展,直到 LLM(Large Language Models)的出现才逐渐被取代。

BERT 继承了 Transformer 的架构,并在此基础上进行了优化,同时引入了两个创新的预训练任务(MLM 和 NSP),以更好地捕捉双向语义关系。

(1)思想沿承

BERT 的核心思想包括:

  1. Transformer 架构

    • BERT 基于 Transformer 的 Encoder 部分,通过堆叠多层 Encoder Layer 来扩大模型参数,提升模型性能。

  2. 预训练+微调范式

    • BERT 采用了预训练+微调的模式,先在海量无监督语料上进行预训练,再针对下游任务进行微调。

(2)模型架构——Encoder Only

BERT 的模型架构主要由以下部分组成:

  1. Embedding 层

    • 将输入的 token 索引映射为嵌入向量。

  2. 位置编码(Positional Encoding)

    • 使用可训练的相对位置编码,而不是 Transformer 的正余弦位置编码。

  3. Encoder

    • 由多层 Encoder Layer 组成,每层包含多头自注意力和前馈神经网络。

  4. 分类头(Prediction Heads)

    • 用于将 Encoder 的输出转换为特定任务的输出,例如分类任务的类别概率。

BERT 的模型架构如下:

  • 输入文本序列经过分词器(tokenizer)转化为 input_ids

  • input_ids 进入 Embedding 层,转化为特定维度的 hidden_states

  • hidden_states 经过 Encoder 块处理。

  • 最终的 hidden_states 通过分类头(prediction_heads)得到任务输出。

BERT 有两种规模的模型:

  • BERT-Base:12 层 Encoder Layer,768 维隐藏层,总参数量 110M。

  • BERT-Large:24 层 Encoder Layer,1024 维隐藏层,总参数量 340M。

(3)预训练任务——MLM + NSP

BERT 的创新之处在于其提出的两个预训练任务:

  1. 掩码语言模型(MLM,Masked Language Model)

    • 随机遮蔽部分 token,要求模型根据上下文预测被遮蔽的 token。

    • 通过这种方式,模型可以学习双向语义关系。

    • 在预训练时,15% 的 token 被随机选择用于遮蔽,其中:

      • 80% 的概率被遮蔽为 <MASK>

      • 10% 的概率被替换为任意一个 token。

      • 10% 的概率保持不变。

    • 这种策略消除了预训练和微调之间的不一致性,并迫使模型学习上下文信息。

  2. 下一句预测(NSP,Next Sentence Prediction)

    • 判断两个句子是否是连续的上下文。

    • 通过这种方式,模型可以学习句子之间的关系,适配句级 NLU 任务。

    • 正样本是连续的句子对,负样本是随机打乱的句子对。

BERT 的预训练使用了 3.3B token 的语料,包括 800M 的 BooksCorpus 和 2500M 的英文维基百科语料。训练时,BERT 使用了 16 块 TPU(BERT-Base)和 64 块 TPU(BERT-Large),训练了 4 天。

(4)下游任务微调

BERT 的预训练-微调范式使得模型能够高效地迁移到各种下游任务:

  1. 输入格式

    • 每个输入文本序列的首部加入特殊 token <CLS>,用于表示整句的状态。

  2. 微调策略

    • 在预训练模型的基础上,使用少量全监督数据进行微调。

    • 对于不同任务,可以修改分类头(prediction_heads)以适配任务需求。

    • 例如,文本分类任务可以直接使用 <CLS> 对应的特征向量进行分类。

BERT 在多个 NLP 任务上取得了 SOTA 性能,成为 NLU 领域的霸主。即使在 LLM 时代,BERT 仍然在某些特定任务上表现出色,尤其是在标注数据丰富且强调高吞吐的任务中。

3.1.2 RoBERTa

RoBERTa 是 Facebook 发布的一个优化版的 BERT 模型,主要在以下几个方面进行了优化:

(1)去掉 NSP 预训练任务

  • 背景:NSP(Next Sentence Prediction)任务被认为过于简单,可能对下游任务微调时没有明显益处,甚至可能带来负面效果。

  • 实验:RoBERTa 设置了四个实验组,结果表明去掉 NSP 任务的组(特别是单文档的 MLM 组)在下游任务上表现更好。

  • 改进:RoBERTa 去掉了 NSP,只使用 MLM(Masked Language Model)任务。

  • 动态遮蔽:RoBERTa 将 Mask 操作放到了训练阶段,即动态遮蔽策略,使每个 Epoch 的训练数据 Mask 位置不一致,更高效且易于实现。

(2)更大规模的预训练数据和预训练步长

  • 数据规模:RoBERTa 使用了 160GB 的无监督语料,包括 BookCorpus、英文维基百科、CC-NEWS、OPENWEBTEXT 和 STORIES,是 BERT 的 10 倍。

  • 训练策略

    • 使用更大的 batch size(8K,对比 BERT 的 256)。

    • 在 8K 的 batch size 下训练 31K Step,总训练 token 数与 BERT 一样是 3.3B,但模型性能更好。

    • 一共训练了 500K Step(约合 66 个 Epoch)。

    • 全部在 512 长度上进行训练,不再采用 BERT 的分阶段训练策略。

  • 算力需求:训练一个 RoBERTa,Meta 使用了 1024 块 V100(32GB 显存)训练了一天。

(3)更大的 BPE 词表

  • 背景:BERT 原始的 BPE 词表大小为 30K。

  • 改进:RoBERTa 选择了 50K 大小的词表来优化模型的编码能力,提升模型对子词的处理能力。

RoBERTa 的影响

  • 性能提升:通过上述优化,RoBERTa 在多个下游任务上取得了 SOTA 性能,一度成为 BERT 系模型中最热门的预训练模型。

  • 预训练的重要性:RoBERTa 的成功证明了更大规模的预训练数据、更长的训练步长和更大的词表大小的重要性。

  • 对后续模型的影响:这些优化策略为后续的 LLM(Large Language Models)的发展奠定了基础。

3.1.3 ALBERT

ALBERT(A Lite BERT)是基于 BERT 架构进行优化的模型,旨在通过减小模型参数量的同时保持甚至提升模型性能。ALBERT 通过优化模型结构和改进预训练任务,成功地以更小的参数量实现了超越 BERT 的性能。虽然 ALBERT 的一些改进思想没有被广泛采用,但其方法和新预训练任务 SOP 仍对 NLP 领域具有重要的参考意义。

ALBERT 的主要优化策略包括以下几个方面:

(1)优化一:将 Embedding 参数进行分解

BERT 等预训练模型具有庞大的参数量,BERT-large 拥有 24 层 Encoder Layer,1024 维隐藏层,总参数量达 340M。其中,Embedding 层的参数矩阵维度为 V×H,其中 V 为词表大小 30K,H 为隐藏层大小 768,导致 Embedding 层参数达到 23M。当隐藏层维度增加到 2048 时,Embedding 层参数会膨胀到 61M,极大增加了模型的计算开销。

ALBERT 对 Embedding 层的参数矩阵进行了分解,让 Embedding 层的输出维度和隐藏层维度解绑。具体方法是在 Embedding 层后面加入一个线性矩阵进行维度变换。ALBERT 设置 Embedding 层的输出维度为 128,然后通过一个 128×768 的线性矩阵将 Embedding 层的输出升维到隐藏层大小。这样,Embedding 层的参数从 V×H 降低到 V×E+E×H,当 E 远小于 H 时,该方法对 Embedding 层参数的优化效果显著。

(2)优化二:跨层进行参数共享

通过对 BERT 的参数进行分析,ALBERT 发现各个 Encoder 层的参数高度一致。因此,ALBERT 提出让各个 Encoder 层共享模型参数,以减少模型的参数量。

在具体实现上,ALBERT 仅初始化了一个 Encoder 层。在计算过程中,虽然仍然会进行 24 次计算,但每一次计算都是经过这一个 Encoder 层。这样,虽然是 24 层 Encoder 计算的模型,但只有一层 Encoder 参数,从而大大降低了模型参数量。ALBERT 通过实验证明,相较于 334M 参数量的 BERT,同样是 24 层 Encoder 但将隐藏层维度设为 2048 的 ALBERT(xlarge 版本)仅有 59M 参数量,但在具体效果上还优于 BERT。

然而,上述优化虽然显著减小了模型参数量并提高了模型效果,但也存在明显不足。尽管 ALBERT 的参数量远小于 BERT,但训练效率仅略微优于 BERT,因为在模型设置中,虽然各层共享权重,但计算时仍需通过 24 次 Encoder Layer 的计算,导致训练和推理速度较 BERT 更慢。这也是 ALBERT 最终未能取代 BERT 的一个重要原因。

(3)优化三:提出 SOP 预训练任务

类似于 RoBERTa,ALBERT 也认为 NSP(Next Sentence Prediction)任务过于简单,无法显著提升模型效果。但与 RoBERTa 直接去掉 NSP 不同,ALBERT 选择改进 NSP,增加其难度,以优化模型的预训练。

在传统的 NSP 任务中,正例由两个连续句子组成,负例则是从任意两篇文档中抽取出的句对,模型较容易判断正负例,无法很好地学习深度语义。ALBERT 提出的 SOP(Sentence Order Prediction)任务改进了这一点。SOP 任务的正例同样由两个连续句子组成,但负例是将这两个句子的顺序反过来。也就是说,模型不仅要拟合两个句子之间的关系,更要学习其顺序关系,从而大大提升了预训练的难度。

例如:

  • 输入:

    • Sentence A:I love you.

    • Sentence B: Because you are wonderful.

  • 输出:1(正样本)

  • 输入:

    • Sentence A:Because you are wonderful.

    • Sentence B: I love you.

  • 输出:0(负样本)

ALBERT 通过实验证明,SOP 预训练任务对模型效果有显著提升。使用 MLM + SOP 预训练的模型效果优于仅使用 MLM 预训练的模型,更优于使用 MLM + NSP 预训练的模型。

通过上述三点优化,ALBERT 成功地以更小的参数量实现了更强的性能。尽管其架构带来的训练和推理效率降低限制了模型的进一步发展,但打造更宽模型的思路仍为众多更强大的模型提供了参考价值。

关键字:网页设计与制作页面_小程序商店怎么做_营销100个引流方案_公司企业网站制作

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: