BERT模型简介

article/2025/9/15 14:13:28

基础架构-Transformer的Encoder:
由下到上,依次三个部分为输入、注意力机制和前馈神经网络
Encoder基础的Bert,六个encoder,六个decoder。

  • 输入部分
    input = token embedding + segment embedding + position embedding
    bert预训练的NSP(Next Sentence Prediction),其为一个二分类任务,用于处理句子之间的关系,[CLS]向量不能代表整个句子的语义信息。

Bert input representation
Bert框架的预训练:
两个任务:

  • 掩码语言模型MLM(Mask language model)
    无监督文本预训练,举例两个无监督目标函数:AR和AE。
    AR(auto regressive),自回归模型;只考虑单侧信息,GPT为其典型例子。
    p(ABCD)=p(A)p(B|A)p(C|AB)p(D|ABC)
    AE(auto encoding),自编码模型;从损坏的输入数据中预测重建原始数据。可以兼顾上下文信息,BERT就是采用的AE
    mask后:[ABmaskD]
    p(ABCD|ABmaskD)=p(mask=C|ABD)
    从训练信息中提取各个单词在句子中的关联概率,然后对未知做出推测。
  • mask模型的缺点:P(ABCD|ABmaskmask)=P(C|AB)P(D|AB),推理中默认CD互相独立了
  • 判断两个句子间的关系NSP(Next Sentence Prediction)
    NSP样本建立。首先,从训练语料库中取出两个连续的段落作为正样本;其次,从不同的文档中随机创建一对段落作为负样本(不同主题抽取)。
  • 缺点:主题预测和连贯性预测合并为一个单项任务
    微调Bert
    句子对的分类任务
    单句分类任务:对CLS输出做fine-tune,做二分类和多分类
    问答任务
    序列标注任务:将所有token输出,加softmax看属于实体中的哪一个
    常用做法,借用大公司预训练好的Bert实验,基于任务数据进行模型微调,常用的如谷歌中文的Bert。训练步骤例子:
    1、在大量通用语料上训练一个LM(Pretrain):中文谷歌BERT
    2、在相同领域上继续训练LM(Domain transfer):在大量新闻文本上继续训练这个BERT
    3、在任务相关的小数据上继续训练LM:在新闻分类文本上(剔除第二步与训练目标不相干的大部分数据,剩余有效数据)
    4、在任务相关数据上做具体任务(Fine-tune)
    在相同领域数据中进行further pre-training
    动态mask:更换mask的覆盖位置,每次epoch去训练的时候mask,而不是使用同一个。
    n-gram mask:例如ERNIE和SpanBert都是类似于做了实体词的mask
    参数设置:Batch size:16,32-影响不大,根据机器性能调整;Learning rate(Adam):5e-5,3e-5,2e-5,尽可能小一点避免灾难性遗忘;Number of epoch:3,4;Weighted decay修改后的adam,使用warmup,搭配线性衰减
    数据增强/自蒸馏/外部知识的融入(知识图谱、实体词的信息),前提需要较高的机器性能。
    名词解释part
    词表:
    计算机无法直接识别语言,比如英语,汉语等。因此,NLP实验中要先把自然语言转化成计算机能够识别的符号——数字(向量)。大体流程:自然语言>>编号>>向量
    当我们拿到一段文本,首先要统计出词表,并把词表保存成vocab.txt,方便后续使用。一般来说在给文本编号和词向量抽取时可能会用到词表。
    词表实例Epoch:使用训练集的全部数据对模型进行一次完整的训练,这个训练被称为“一代训练”。在神经网络中仅仅将完整的数据集传递一次是不够的,我们需要将完整的数据集在同样的神经网络中传递多次。但我们使用的是有限的数据集,并且我们使用一个迭代过程,即梯度下降,来优化学习过程。随着epoch数量增加,神经网络中的权重的更新次数也在增加,曲线会从欠拟合变得过拟合。
    epoch变化而导致的拟合变化Batch:使用训练集中的一小部分样本对模型权重进行一次反向传播的参数更新,这一小部分样本被称为“一批数据”
    Iteration:使用一个Batch数据对模型进行一次参数更新的过程,被称为“一次训练”
    一个完整的数据集通过了神经网络一次并且返回了一次,为一个epoch;然而,当Epock的样本过大,就需要将其分成小块,也就是多个Batch;最后,训练一个Batch就i是一次Iteration。
    cost function/loss function(代价函数):代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。训练模型的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中提到的梯度,防止过拟和时添加的正则化项也是加在代价函数后面的。
    梯度下降:在优化参数θ的过程中,最常用的方法是梯度下降,这里的梯度下降就是代价函数J(θ)对θ1, θ2, …, θn的偏导数。由于需要求偏导,我们可以得到另一个关于代价函数的性质:选择代价函数时,最好挑选对参数θ可微的函数(全微分存在,偏导一定存在)

参考文献:
NLP从入门到放弃.BERT从零详细解读,看不懂来打我.B站.2021.3

0与1的邂逅.深度学习 | 三个概念:Epoch, Batch, Iteration.简书.2019.11


http://chatgpt.dhexx.cn/article/nQVsxW1a.shtml

相关文章

BERT 模型详解

BERT 结构 上图是 BERT 的结构图,左侧的图表示了预训练的过程,右边的图是对于具体任务的微调过程 BERT 的输入 BERT 的输入可以包含一个句子对 (句子 A 和句子 B),也可以是单个句子。同时 BERT 增加了一些有特殊作用的标志位: …

如何从零开始训练BERT模型

我的许多文章都专注于 BERT——这个模型出现并主导了自然语言处理 (NLP) 的世界,标志着语言模型的新时代。 对于那些之前可能没有使用过 Transformer 模型(例如 BERT 是什么)的人,这个过程看起来有点像这样: pip 安装…

BERT模型详解

Auto-Regressive & Auto-Encoding 在介绍当下最火热的BERT模型之前,我们先来看两个概念,Auto-Regressive和Auto-Encoding。 Auto-Regressive Auto-Regressive如上图所示,其实很像是一个语言模型,遵循的是链式法则&#xff0…

BERT(预训练Transformer模型)

目录 一、前言 二、随机遮挡,进行预测 三、两句话是否原文相邻 四、两者结合起来 五、总结 六、参考链接 一、前言 Bert在18年提出,19年发表,Bert的目的是为了预训练Transformer模型encoder网络,从而大幅提高准确率 Bert …

详细介绍BERT模型

文章目录 BERT简介BERT, OpenAI GPT, 和ELMo之间的区别相关工作BERT的改进 BERT 的详细实现输入/输出表示预训练BERT微调BERT BERT用在下游任务GLUE(一个自然语言任务集合)SQuAD v1.1(QA数据集)SQuAD v2.0SWAG 消融实验预训练任务的影响模型大小的影响基于特征的BERT方法 结论 …

BERT模型—2.BERT模型预训练与微调

文章目录 引言一、预训练语言模型1.为什么要进行预训练?2. BERT预训练-掩码预测任务3.BERT预训练-下句预测任务 二、BERT的文本处理—subword tokenizer1. 为什么要学习subword tokenizer?2. 词表生成与分词 三、BERT embedding四、BERT微调—句子分类任务五、BERT…

图解BERT模型:从零开始构建BERT

转载:https://cloud.tencent.com/developer/article/1389555 本文首先介绍BERT模型要做什么,即:模型的输入、输出分别是什么,以及模型的预训练任务是什么;然后,分析模型的内部结构,图解如何将模…

BERT模型—1.BERT模型架构

文章目录 引言一、Bert模型总览二、注意力机制1.Seq2seq中的注意力操作2.注意力的一般形式(三步曲)3. transformer中的自注意力机制—Self.Attention4. transformer的多头注意力机制5. scaling6. 模型优化技巧:残差连接 三、BERT其他结构特性…

【科研】BERT模型理论详解

原文:https://cloud.tencent.com/developer/article/1389555 本文首先介绍BERT模型要做什么,即:模型的输入、输出分别是什么,以及模型的预训练任务是什么;然后,分析模型的内部结构,图解如何将模…

BERT模型的详细介绍

1.BERT 的基本原理是什么? BERT 来自 Google 的论文Pre-training of Deep Bidirectional Transformers for Language Understanding,BERT 是“Bidirectional Encoder Representations from Transformers”的首字母缩写,整体是一个自编码语言…

图解BERT模型

1. 模型的输入/输出 BERT模型的全称是:BidirectionalEncoder Representations from Transformer。从名字中可以看出,BERT模型的目标是利用大规模无标注语料训练、获得文本的包含丰富语义信息的Representation,即:文本的语义表示&…

BERT模型

BERT模型 Paper: https://arxiv.org/abs/1810.04805 BERT 全称为Bidirectional Encoder Representation from Transformers(来自Transformers的双向编码表示),谷歌发表的发的论文Pre-traning of Deep Bidirectional Transformers for Langu…

BERT模型的结构,特点和实践

BERT模型介绍,特点,资源 一、背景介绍二、BERT与语言模型1.feature-based2.fine-tuning3.BERT的语言模型 三、BERT整体概览1. BERT框架2. BERT模型结构2.1输入部分2.2 BERT的预训练任务任务1:Masked Language Model(MLM)任务2:Nex…

Bert算法:语言模型-BERT详细介绍

本文的目的是向NLP爱好者们详细解析一个著名的语言模型-BERT。 全文将分4个部分由浅入深的依次讲解。1.Bert简介 BERT是2018年10月由Google AI研究院提出的一种预训练模型。 BERT的全称是Bidirectional Encoder Representation from Transformers。BERT在机器阅读理解顶级水平…

Bert 模型学习

一、Bert 模型 BERT 模型的全称是 BidirectionalEncoder Representations from Transformer,基于 Transformer 的双向编码器表示,是一个预训练的语言表征模型,它强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼…

【理论篇】是时候彻底弄懂BERT模型了(收藏)

引言 本文对BERT模型的理论进行了一个非常详尽的解释,相信看完本篇文章后,你对BERT模型的理解会上升🚀一个层次。 本文是理论篇,下篇是实战篇。 BERT的基本思想 BERT如此成功的一个原因之一是它是基于上下文(context-based)的嵌…

Hive !!!

文章目录 Hive数据处理方法论step1 了解产品/运营的需求step2 数据收集(数据准备)step3 数据处理(数据调研)step4 数据分析 Hive背景Hive简介引入原因安装hive注意事项一些代码Hive SQL VS SQL Hive的数据类型数据类型Hive架构 Hi…

Shark简介

简介 Shark是一个新的数据分析系统,在集群上进行查询处理和复杂分析。Shark使用一种新的分布式内存抽象,为SQL查询和复杂分析函数提供了统一的运行引擎,并能够有效的容错。这种新的分布式内存抽象使得shark执行SQL查询的速度比Hive快100倍&a…

Vue3中shallowReactive 与 shallowRef 的用法

shallowReactive 与 shallowRef shallowReactive:只处理对象最外层属性的响应式(浅响应式)。 shallowRef:只处理基本数据类型的响应式, 不进行对象的响应式处理。 什么时候使用? 如果有一个对象数据,结构比较深, 但…

2018华为软挑--模拟退火+FF解决装箱问题【C++代码】

算法简介: 装箱问题是一个NP完全问题,求解全局最优解有很多种方法:遗传算法、禁忌搜索算法、蚁群算法、模拟退火算法等等,本次使用模拟退火,它的优点是在参数合适的情况下基本上可以100%得到全局最优解,缺点…