Bert相关

Bert的网络结构以及训练过程

Bert是文本编码器,它使用了Transformer的Encoder端,有两个预训练任务,分别是掩码语言模型和下一句子预测;掩码语言模型是随机选择15%的词,在这15%的词中,选择80%的词进行mask,选择10%的词随机替换成别的词,剩下10%的词什么也不做,然后根据上下文来预测这些词。下一句子预测是判断前后两个句子是否互为上下句;然后它使用了大规模的预料进行预训练。
这么做的主要原因是:① 在后续finetune任务中语句中并不会出现 [MASK] 标记;②预测一个词汇时,模型并不知道输入对应位置的词汇是否为正确的词汇( 10% 概率),这就迫使模型更多地依赖于上下文信息去预测词汇,并且赋予了模型一定的纠错能力。

Bert和Transformer的区别

Bert的输入,增加了segment embedding,和Transformer相比,将基于三角函数的位置编码替换成可学习的参数。
query和key为什么不用一个值
将单词的embeding通过不同的线性映射投影到独立的空间,增强了表达能力,增强了泛化性。

Bert的warmup策略

常规的学习率策略是一开始设置一个较大的学习率,在模型迭代的过程中,学习率逐渐减小,直到收敛到局部最优。
Bert使用warmup的原因是一开始模型对数据的分布非常陌生,如果使用较大的学习率,很容易发生过拟合的现象,后面需要通过多轮训练才能拉回来。使用warmup策略,模型在前几轮的迭代过程先慢慢熟悉数据分布,然后使用较大的学习率不容易让模型学偏,当模型训练到一定的阶段后,模型学习到了大概的数据分布,loss也已经接近了局部最优。

Bert预训练任务的loss

在这里插入图片描述

MLM是个语言模型,语言模型的损失函数是基于上下文的条件概率,-logp(y|x)

如何优化Bert的效果

1.使用质量更高的数据(通用法则)
2.取模型的后四层输出,最大池化或平均池化
3.模型集成,将现有的大模型以bagging方式进行集成
4.在Bert的输出上加网络层或再加一层注意力
5.在特定领域上的数据集上进行预训练
在这里插入图片描述在这里插入图片描述

还了解过哪些预训练模型

百度ERNIE:对预训练任务进行了改进,第一阶段是基于切词的mask,第二阶段是基于实体的mask,让模型在预训练过程中学习到一些词级别,短语级别,实体级别的信息。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石头猿rock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值