IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【预训练模型】学习笔记 -> 正文阅读

[人工智能]【预训练模型】学习笔记

1、BERT

基本概念

BERT(BI-directional Encoder Representations from Transformers),中文意思是基于Transformer的双向编码表示,是谷歌2018发布的开源NLP预训练模型。
在BERT发布之前,大部分NLP任务是基于word2vec+RNN等网络结构的基本架构,由于缺乏数据,所以基于图像领域思想,将NLP任务应用于预训练加微调架构上.在BERT之前ELMo和GPT是典型代表。
GPT(Generative Pre-Training),其核心在通用上,采用两个阶段.
(1)利用语言模型进行预训练
(2)通过Fine-tuning(微调)解决下游任务
BERT\GPR\EL模型结构
区别:
1)GPT特征抽取器不是用RNN,而是最新特征提取器Transfprmer,在典型的NLP任务中,Transformer特征抽取能力要强于RNN
2)GPT模型沿着序列单方向进行,ELMo会同时考虑上下文
3)BERT基于上述两个模型特点,做了两点改进,首先,将单向Transformer改为双向Transformer单元,其次 在预训练任务上做了调整==(MLM,掩码)(NSP,预测下一个句子)==
MLM
MLM任务类似填空任务,将输入句子的部分词语随机掩码,来最终预测掩码词
NSP
输入连续的句子片段,学习预测其中第二个句子是否是原始文档中的后续句子

模型结构

(1)Embedding层
Embedding层结构
送入Token Embedding层之前先进行tokenization,[CLS]插入文本开头,[SEP]插在两个句子之间和第二个句子尾。[CLS]用来配合下游NLP任务,[SEP]用来划分句子。
Token Embedding层根据BERT模型大小将每个Token转换成768或者1024维大小。
(2)Segment Embedding
前一个向量把0赋予给第一个句子中各个token,后一个向量把1赋予给第二个句子token,如果仅有一个句子其Segment Embedding都是0
(3)Position Embedding
与Tranformer中的Position Encoding 不同,没有采用三角函数,而是训练出来的向量.

BERT微调

由于BERT预训练已经可以对句子和句子之间的表示进行计算。对于文本分类和文本匹配任务,可通过[CLS]的输出加上一层MLP来解决。
单句标注任务,只需加softmax就可以完成
对于QA任务,只需用两个线性分类器分别输出范围的起点和终点。

2、XLNET

BERT模型基AE(Auto-Encoding,自编码)的预训练模型。AE语言模型,类似于填空的一种方法,将要预测的词语进行掩码操作,最终预测这个词。
AE语言模型的不足
1)预训练使用了[MASK],这种认为定义的符号在微调过程不存在,导致了预训练和微调过程的不一致。
2)AE语言模型有着不符合真实情况的假设。它假设所预测的token是相互独立的。
XLNet采用广义AR(Auto-Regressive,自回归),AR语言模型更擅长NLP生成任务,因为生成上下文时,通常都是正向的。
XLNet提出了新方法避免[MASK]的弊端,重排列语言模型(PLM),由于计算复杂度,不可能计算所有排序,实际计算只采用一种排序。具体实现很复杂,参考源码。

3、RoBERTa

由Facebook和华盛顿大学共同完成。
1)训练步数更长,批大小更大,训练数据更多
数据量16GB->160GB,步数100K->500K
2)删除了NSP任务
未采用NSP任务的结果有一些提升,可假设该方法无法学习长期依赖关系
3)训练序列更长
以往神经机器翻译研究表明,当lr适当提高时,非常大批大小既可以提高优化速度,又可以提高最终任务性能。
4)动态调整Masking机制
BERT依赖静态mask。为避免每个epoch中对每个训练样本都使用同样的mask方式,训练数据被复制10倍,在40个epoch中每个都要10种不同的mask。动态mask在一定程度上提升了实验效果。

4、ALBERT

ALBERT最大特点,减少了参数量,维持了BERT性能
注意通过矩阵分解(Factorized embedding parameterization,和跨层参数共享(Cross-layer parameter sharing)来降低参数量。
1)矩阵分解
在BERT、XLNet、RoBERTa中,词表的embedding size(E),和Transformer的hidden size(H)都是相等的,这个选择有缺点。
从理论上看储存了信息的H应该要远大于不太依赖内容信息的。实际情况,如果E = H,由于字典太大,模型参数量就会非常大。ALBERT使用了较小的E,训练一个独立上下文的embedding(维度V X E),之后再投影到隐层(乘以 E X H),相当于做了个因式分解。
2)跨层共享机制
单独用一个Self-Attention层循环12次,每一层参数都一样。这样就可以用一层的参数量来表示12层的参数,因此模型参数大大减少。
对BERT每一层参数做了分析,发现每一层参数基本相似,因此直接共享了。
ALBERT有稳定网络参数的作用。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-13 12:01:20  更:2021-08-13 12:05:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/12 1:37:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码