当前位置: 首页 > news >正文

大模型算法面试笔记——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 → \to my dog is [MASK]
  • 10%被替换成随机的词:my dog is hairy → \to my dog is apple,引入噪音,防止模型对[MASK]过拟合,加强鲁棒性
  • 10%不替换:my dog is hairy → \to my dog is hairy,桥接预训练与微调任务,提高微调任务的稳定性

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

超参数与可学习参数换算

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

embedding层

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

transformer块

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

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

http://www.dtcms.com/a/267490.html

相关文章:

  • 【QT】事件(鼠标、按键、定时器、窗口)
  • Visual Studio 2022 MFC Dialog 添加Toolbar及Tips提示
  • Linux命令大全:按功能分类详解(附表格速查)
  • 故障诊断 | CNN-GRU-Attention故障诊断
  • 模块二:C++核心能力进阶(5篇)第四篇《C++对象模型:虚函数表与继承体系内存布局》
  • PJSIP 中的 TCP 传输配置指南
  • Linux内核深度解析:IPv4策略路由的核心实现与fib_rules.c源码剖析
  • 介绍Flutter
  • 06.自动化测试概念
  • 极简 Docker Compose + Nginx + Certbot 自动化 HTTPS 部署指南
  • 深度学习4(浅层神经网络)
  • Python之--基本知识
  • 马来西亚华韵海外华侨联合会宣布李子昂先生荣升名誉理事
  • HarmonyOS学习2---工程目录UIAbility
  • mysql 图形化界面工具 DataGrip 安装与配置
  • 基于人体骨架动作识别的神经信息处理技术(8 ANUBIS数据集)
  • UI前端与数字孪生结合实践案例分享:智慧水利的水情监测与预警系统
  • 信号与槽的总结
  • spring加载外部properties文件属性时,读取到userName变量值和properties文件的值不一致
  • 每日学习问题记录
  • 四、jenkins自动构建和设置邮箱
  • Matplotlib 安装部署与版本兼容问题解决方案(pyCharm)
  • nginx部署发布Vite项目
  • H3C WA6322 AP版本升级
  • 2 大模型高效参数微调;prompt tunning
  • (LeetCode 每日一题) 1394. 找出数组中的幸运数 (哈希表)
  • Vue前端项目接收webSocket信息
  • uniapp 国密sm2加密
  • 国产数据库之达梦DM:破甲成蝶
  • php协程