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

BERT: 面向语言理解的深度双向Transformer预训练

参考视频:

 BERT 论文逐段精读【论文精读】_哔哩哔哩_bilibili

背景

BERT算是NLP里程碑式工作!让语言模型预训练出圈!

使用预训练模型做特征表示的时候一般有两类策略:

1. 基于特征 feature based (Elmo)把学到的特征和输入一起放进去做一个很好的特征表达

2. 基于微调 fine-tuning (GPT) 

但是都用的是单向语言模型↑ 预测模型,所以限制了语言架构,比如说只能从左往右读

 Masked Language Model

为了接触限制,BERT用的是一个带掩码的语言模型(MLM)(Masked Language Model),随机选字元,盖住,预测盖住的字

看多模态模型的时候有提到过!↑

 next sentence prediction

在原文中随机取两个句子,让模型判断句子是否相邻

贡献

1. 说明双向信息的重要性

 2.假设有比较好的预训练模型就不用对特定任务做特定的模型改动了

主要就是把前人的结果拓展到深的双向的模型架构上

相关工作

1. Unsupervised Feature-based Approches

2. Unsupervised Fine-tuning Approaches(GPT)

3. 在有标号的数据上进行迁移学习 (Transfer Learning from Supervised Data)

方法

模型

本篇工作调整了L:Transformer模块的个数,H:隐藏层的个数以及A:自注意力头的个数

BERT Base(L=12, H=768, A=12)

BERT Large(L=24, H=1024, A=16)

如何把超参数换算成可学习参数的大小?

可学习参数主要来自嵌入层以及Transformer Block

嵌入层

输入:字典的大小

Transformer Block(自注意力,MLP)

自注意力头个数A x 64 

Transformer Block 的可学习参数是H^2 *4 (自注意力)

MLP H^2 *8

此处合起来Transformer的参数是(H^2 *12)*L

输出:隐藏单元的个数H

总参数(36K * H + L*H*12)=110M

输入和输出

输入:

序列(sequence):既可以是句子,也可是句子对

切词方法: WordPiece,节省参数

序列的第一个词永远是序列[CLS],因为bert希望它最后输出代表整个序列的一个信息

把两个句子合在一起的时候需要区分两个句子:

1)把每个句子后面放上特殊的词[SEP]

2) 学一个嵌入层

对每个词元进入BERT的向量表示,是词元本身的embedding,加句子embedding加position embedding

缺点:

与GPT(Improving Language Understanding by Generative Pre-Training)比,BERT用的是编码器,GPT用的是解码器。BERT做机器翻译、文本的摘要(生成类的任务)不好做。

写的不算全,后面看到后面补。

http://www.lryc.cn/news/176426.html

相关文章:

  • 5-1.(OOP)初步分析MCV架构模式
  • 如何利用React和Flutter构建跨平台移动应用
  • npm install / webdriver-manager update报错 unable to get local issuer certificate
  • 电商项目高级篇-02 elasticsearch-下
  • 计算机竞赛 深度学习人体跌倒检测 -yolo 机器视觉 opencv python
  • CloseableHttpClient详解
  • 从mysql 5.7 升级到 8.0 的一些注意事项
  • 喜迎中秋国庆双节,华为云Astro Canvas之我的中秋节设计大屏
  • C++ stoi()函数的用法
  • Learn Prompt- Midjourney案例:动漫设计
  • 亚马逊无线鼠标FCC认证办理 FCC ID
  • MySQL常见数据类型、特点以及使用场景
  • vue markdown显示为html
  • Spring整合RabbitMQ——生产者(利用配置类)
  • Linux基础工具|代码调试工具gdb的使用
  • Ribbon负载均衡器
  • 初级软件测试入门教程
  • 4项简化IT服务台任务的ChatGPT功能
  • idea创建同级项目-纠结是SB
  • 任正非:天空足够大,世界会越来越兴盛
  • SMOKE-CMAQ实践技术应用
  • 电脑提示vcruntime140.dll缺失重新安装的修复方法
  • Vue实现Hello World
  • Android---Bitmap 与 String 互转
  • python播放声音库playsound以及获取路径以及修改库源码
  • 山西电力市场日前价格预测【2023-09-27】
  • laravel框架 - 事件与监听器
  • Android存储权限完美适配(Android11及以上适配)
  • 国产手机芯片4G方案_紫光展锐安卓核心板虎贲4G智能模块方案定制
  • 异步通讯技术之RabbitMQ