李宏毅机器学习(七)Bert and its family

技术前瞻

在预训练模型上训练Bert,并在我们的数据上fine-tune所需要的模型!
就像学习英文一样! 应该是通读英文文章后再去做题,而不是先做题再读懂文章!

Pre-train Model

Embedding

刚开始是 Word2Vertor,但是不能所有的单词都这样的! 太多了
要不,用字母和偏旁?
但是你这样下去,是有词义歧义的!
所以才有了Contextualized Word Embedding! 这里中间的Model可以选择是LSTM、Self-attention layers或者是Tree-based model(语法树)! 下面的链接是关于Tree-based model的!

BERT要不做大,要不做小! 大公司都是越来越大,但是穷人就是使得Bert越来越小!

其中最有名的是ALBERT,它神奇的地方在于基本都和BERT一样,不同的方法在于原来的BERT12层、24层都是不同的参数,但是ALBERT12层、24层都是一样的参数,但是效果比BERT还要好。

究竟怎么让模型变小呢? 这里有很多的方法可以自己去了解一下:

Network Architecture

如果我们处理更多的句子,而不是仅仅的sequence的tokens,而是segment-level的! 而是成段的,整个文章放入网络!

how to fine-tune

具体的NLP任务来进行fine-tune!

NLP的任务:

如果输入多个句子时

输入两个句子,中间有【SEP】作为隔绝! 两个句子可以是查询和文件的差距,也可以是前提和假设的差异!

如果是输出时

one class
我们可以使用CLS,使得其输出一个类!
或者我们取几个向量的平均!

class for each token
每个token输出一个类

copy from input
文件D和答案query一起作为输入放到QA model里,最终输出两个整型变量s和e,分别是在文中的答案!

在BERT中如果操作的呢? 我们只需要两个vector(没有懂怎么获得的,可能是预定义的),其中一个vector用来和document中的输出vector做dot product来,根据相似度来定是不是是不是起点; 而另一个vector是作为结尾的!

General Sequence(v1)
Bert很适合Seq2Seq中的Encoder,然后经过Decoder来得到输出的句子! 但是问题在于,现在的Task Specific需要的labeled data不应该多,而且Decoder最好是预训练的! 但是现实是没有训练,那就会受到影响!

General Sequence(v2)
我们可以以预测下一个token的方法来训练seq2seq!

how to fine-tune

第一种是将Pre-trained model固定住,第二种是一块训练! 但是结果表明,往往一块训练效果会更好!

Adaptor
如果一块训练的话,参数实在是太多了!
那么我们可不可以选择其中一部分层进行训练呢? 将这些层称为Adaptor层!其它地方固定!

Adaptor的方法很多,而且插入到哪里都是需要研究的! 我们以Transformer为例,我们在Feed-forward layer后加入Adaptor; 同时在训练之前我们不训练Adaptor,加入具体任务之后,我们才会训练Adaptor! 右边的是Adaptor层的具体,确保参数不会太多!

左侧0代表的是如果我们fine-tune整个model得到的结果,下图中蓝色的线表示的是训练倒数层,第一个点是倒数第一层,第二个点加入了倒数第二层,第三个点是加入了倒数第三层,以此类推! 而橙色的线就表示的是只训练其中的Adaptor!

Weighted Features
其中W1W_1W1W2W_2W2是可以被学出的! 比如我们用最终的特征放入具体的任务中,那么这个参数就是可以被学习的!其中W1W_1W1W2W_2W2对应于不同层产出的特征! 不同层产出的特征是有不同的侧重点的,谁重要谁不重要是需要自己学的!

WHY Pre-train Models?
为什么使用Pre-train Models? 因为这些Model真的带给了我们不错的效果!

Why FIne-tune?
实现代表该模型Fine-tune过,虚线代表没有Fine-tune过! 可以看出所有的实线loss下降的都很快!

如何生成下面的图像? 可以看右上角的链接!
怎么看出这个模型是不是有泛化能力? end Point是峡谷的话泛化能力差,如果是盆地,那么泛化能力就很好!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用SharePoint Designer开发可循环工作流

介绍 大家都知道SharePoint工作流有两种开发(设计)方式:通过SharePoint Designer和Visual Studio. l 使用Visual Studio,开发人员可以通过编码的方式灵活的开发SharePoint工作流. l 使用SharePoint Designer,网站管理人员可以基于定义和规则设计SharePoint工作流,无需编码. 使用…

跨部门不配合工作_作为管理者,如何解决跨部门成员互不配合的情况?

原标题:作为管理者,如何解决跨部门成员互不配合的情况?有过类似的情况,但已经解决,分享一下我的经验:1.管理者要以身作则,既然答应了就帮对方到底。上司在平时,不应该有“小农”思想…

李宏毅机器学习(八)ELMo、BERT、GPT、XLNet、MASS、BART、UniLM、ELECTRA、others

怎么得到这个pre-train好的模型呢? Pre-training by Translation(翻译) Context Vector(CoVe): Embedding的words必须要考虑上下文! 有一个方法是用基于Translation的Model! 就是用…

LeetCode 712. 两个字符串的最小ASCII删除和(DP,类似编辑距离)

1. 题目 给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。 示例 1: 输入: s1 "sea", s2 "eat" 输出: 231 解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。 在 "eat…

正则研究

到目前为止,许多的编程语言和工具都包含对正则表达式的支持,当然.NET也不例外,.NET基础类库中包含有一个名称空间和一系列可以充分发挥规则表达式威力的类。 正则表达式的知识可能是不少编程人员最烦恼的事儿了。如果你还没有规则表达式方面的…

python3字节转化字符_捋一捋字符串与字节序列的关系

Python3的一个新特性算是把文本和二进制数据清晰地区分开来了。我们看到的文本其实就是一连串的Unicode字符组成的str(下文文无特殊说明均指Unicode字符),最后计算机以二进制数据的形式存储起来。Python内置了两种二进制数据类型,分别是bytes和bytearray…

李宏毅机器学习(九)Multi-lingual BERT

Multi-lingual BERT 输入多种语言来训练BERT Zero-shot Reading Comprehension 首先模型是在104种语言上进行训练的! 并且以English的QA来training我们的模型,最后在回答问题的时候使用中文! 可以看到如果在104种语言pre-train,…

[转]详细介绍如何做关联

如何在脚本中做关联 (Correlation)当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。在VuGen的Recording Log中,您可以找到浏…

zillow房价预测比赛_Kaggle竞赛 —— 房价预测 (House Prices)

这个比赛总的情况就是给你79个特征然后根据这些预测房价 (SalePrice),这其中既有离散型也有连续性特征,而且存在大量的缺失值。不过好在比赛方提供了data_description.txt这个文件,里面对各个特征的含义进行了描述,理解了其中内容…

【转】RNN、LSTM、Transformer、BERT简介与区别

几者的主要参考文章: https://blog.csdn.net/weixin_41089007/article/details/96474760 RNN与LSTM的区别参考文章: https://blog.csdn.net/hfutdog/article/details/96479716 RNN和LSTM的区别如下: RNN没有细胞状态;LSTM通过细…

LeetCode 812. 最大三角形面积(坐标面积公式)

1. 题目 给定包含多个点的集合&#xff0c;从其中取三个点组成三角形&#xff0c;返回能组成的最大三角形的面积。 示例: 输入: points [[0,0],[0,1],[1,0],[0,2],[2,0]] 输出: 2 解释: 这五个点如下图所示。组成的橙色三角形是最大的&#xff0c;面积为2。注意: 3 < po…

孩子感冒发烧怎么办

老大感冒发烧三天刚好&#xff0c;老二开始咳嗽鼻塞&#xff0c;孩子们生病忙的就是父母&#xff0c;几天下来&#xff0c;连自己也病了。终于一切恢复常态&#xff0c;想想也该总结一下孩子们生病的经历。 1月1号夜里&#xff0c;老大开始咳嗽&#xff0c;以为是气候干燥&…

李宏毅机器学习(十)GPT-3

前情提要 论文名称&#xff1a; Language Models are Few-shot learners 但是GPT-3的缺点在于&#xff0c;太过巨大&#xff01; 它有多大呢&#xff1f; 原来最大的时候是Turing NLG&#xff0c;有17B&#xff0c;而GPT-3是它的10倍&#xff01; 对GPT-3的评价&#xff1a; …

ipython是免费的吗_IPython技巧

IPython是一个python的交互式shell&#xff0c;比python自带的shell好用得多&#xff0c;支持变量自动补全、自动缩进、直接运行shell命令、内置了许多很有用的功能和函数&#xff0c;让我们可以用更高的效率来使用python&#xff0c;同时也是利用Python进行科学计算和交互可视…

LeetCode 985. 查询后的偶数和

1. 题目 给出一个整数数组 A 和一个查询数组 queries。 对于第 i 次查询&#xff0c;有 val queries[i][0], index queries[i][1]&#xff0c;我们会把 val 加到 A[index] 上。 然后&#xff0c;第 i 次查询的答案是 A 中偶数值的和。 &#xff08;此处给定的 index quer…

C#正则表达式判断输入日期格式是否正确

/// <summary> /// 是否为日期型字符串 /// </summary> /// <param name"StrSource">日期字符串(2008-05-08)</param> /// <returns></returns> public static bool IsDate(string StrSourc…

知识图谱论文阅读(八)【转】推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

学习的博客&#xff1a; 推荐系统遇上深度学习(二十六)–知识图谱与推荐系统结合之DKN模型原理及实现 知识图谱特征学习的模型分类汇总 知识图谱嵌入(KGE)&#xff1a;方法和应用的综述 论文&#xff1a; Knowledge Graph Embedding: A Survey of Approaches and Application…

thinkphp用来做什么项目_thinkphp第1课:使用thinkphp创建一个项目

一、thinkphp第一课&#xff1a;1、在网站根目录下&#xff0c;建立一个项目名称orange&#xff1b;2、在orange目录下&#xff0c;创建一个入口文件index.php&#xff1a;define(APP_DEBUG,true); //开启调试模式require(../TP/ThinkPHP.php);?>3、下载thinkphp核心包并解…

LeetCode 1005. K 次取反后最大化的数组和

1. 题目 给定一个整数数组 A&#xff0c;我们只能用以下方法修改该数组&#xff1a; 我们选择某个个索引 i 并将 A[i] 替换为 -A[i]&#xff0c;然后总共重复这个过程 K 次。&#xff08;我们可以多次选择同一个索引 i。&#xff09; 以这种方式修改数组后&#xff0c;返回数…

Server操作Mxd文件详细讲解

Server操作Mxd文件详细讲解Server发布地图都是基于Mxd去发布的&#xff0c;这点与IMS使用axl文件差不多。一般来说&#xff0c;发布后mxd尽可能不要修改&#xff0c;或者在通过使用arcMap进行编辑后在重新发布。修改mxd会导致地图服务发生变化&#xff0c;因此&#xff0c;相对…