大模型算法面试笔记——Bert

动机

提出一个基于微调的NLP模型,预训练的模型抽取了足够多的信息,新的任务只需要增加一个简单的输出层。
Bert本质是只有编码器的Transformer,分为两类

  • BERT-Base: 12层,hidden size = 768,heads = 12,parameters = 110M
  • BERT-Large: 24层,hidden size = 1024,heads = 16,parameters = 340M
  • 在大规模数据上训练>3B词

两类预训练任务

  • 掩码语言模型(Masked Language Model, MLM):挖完形填空,用[MASK]代替原词,根据左右上下文(双向)来预测原词
  • 下一句预测:训练模型理解句子间的逻辑关系,用句子开始标记[CLS]向量对应的输出进行二分类任务(是否为下一句)

三部分Embedding
请添加图片描述
不同于Transformer的encoder-decoder架构,输入输出的句子对分别进encoder和decoder,Bert的输入是将句子对拼接起来,句子开头打[CLS]标记,句子之间(每个句子结尾)打<sep>标记。同时加入额外的片段嵌入和位置编码,片段嵌入用来区分不同的句子,位置编码非手动设计,而是可学习编码。
Bert在预训练时,用了掩码(mask),每次随机(15%概率)将一些词元换成,为了让预训练的模型可以很好的适用于通用任务,用概率来控制使用mask的部分(如80%将选中的词元变成,10%的选中词元被替换成随机词元,剩下10%保持原有词元,这里的概率是针对被选中的15%数据来算的)。

例:

  • 80%的词被正常替换成[Mask]:my dog is hairy →\tomy dog is [MASK]
  • 10%被替换成随机的词:my dog is hairy →\tomy dog is apple,引入噪音,防止模型对[MASK]过拟合,加强鲁棒性
  • 10%不替换:my dog is hairy →\tomy dog is hairy,桥接预训练与微调任务,提高微调任务的稳定性

15%的掩码比例如果改变,过低则学习信号不足,过高则破坏句子的语义结构。

超参数与可学习参数换算

可学习参数主要来自于两部分,embedding和transformer块。

embedding层

  • 输入:词典大小30k
  • 输出:隐藏层维度HHH

transformer块

  • QKV可学习矩阵:H2×3H^2\times 3H2×3
  • 输出投影矩阵:H2H^2H2
  • 两个输入为HHH输出为4H4H4H的全连接层:8H28H^28H2
  • LLL个transformer块:L×12H2L\times 12H^2L×12H2

总参数:30k×H+L×H2×1230k\times H+L\times H^2\times 1230k×H+L×H2×12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值