| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【学习笔记】李宏毅2021春机器学习课程第7.3节:自监督学习(三) -> 正文阅读 |
|
[人工智能]【学习笔记】李宏毅2021春机器学习课程第7.3节:自监督学习(三) |
文章目录1 会写假新闻的GPT模型除了BERT以外,还有一个很有名的模型,那就是GPT系列的模型。 BERT做的是填空题,GPT要做的任务是预测接下来会出现的token是什么。 举例来说,假设你的训练资料里面,有一个句子是台湾大学,那GPT拿到这一笔训练资料的时候,它做的事情是这样的:你给它BOS这个token表示开始,然后GPT输出一个embedding,接下来你用这个embedding去预测下一个应该出现的token是什么。 那在“台湾大学”这个句子里面,根据这笔训练资料,下一个应该出现的token是"台",所以你要训练你的模型,根据第一个token,根据BOS给你的embedding,那它要输出"台"这个token。 这个部分详细来看是上图的右半部分,你有一个embedding,这里用h来表示,然后通过一个Linear Transform,再通过一个SoftMax,得到一个distribution,跟一般你做分类的问题是一样的。接下来,你希望你输出的分布跟正确答案之间的Cross entropy越小越好,也就是你要去预测下一个出现的token是什么。 接下来要做的事情就是以此类推了,你给GPT输入BOS跟"台",它产生一个embedding,预测下一个出现的token是什么,那你告诉它说,下一个应该出现的token是"湾"。 这个过程再继续下去,你给它BOS,“台”,“湾”,然后预测下一个应该出现的token,下一个应该出现的token是"大"。你给它BOS,“台”,“湾”,“大”,那么下一个应该出现的token是"学"。 刚刚是拿一个句子来给GPT训练举例,实际上你不会只用一笔句子,你会用成千上万个句子来训练这个模型。GPT厉害的地方就是用了很多资料,训练了一个异常巨大的模型。 GPT的模型像是一个transformer的decoder,不过属于之前讲过的mask的attention。也就是你现在输入BOS,预测”台“的时候,你不会看到后面的“台”,“湾”,“大”。 因为GPT可以预测下一个token,所以它有生成的能力,你可以让它不断地预测下一个token,从而产生完整的文章,所以每次提到GPT的时候,它的形象都是一只独角兽。GPT系列最知名的一个例子,就是用GPT写了一篇跟独角兽有关的新闻,因为给这个GPT模型一个独角兽的关键词,它创作出了一个假新闻,假新闻里面说,在安地斯山脉发现独角兽。 上面提到的这个自动生成文章的模型在线上有一个demo的网页,叫做talk to transformer,就是有人把一个比较小的GPT模型放在线上,让你可以输入一个句子,然后它会把接下来的内容补充完整。还是很有意思的,这里把链接放上来:Demo – InferKit 2 怎么使用GPT模型?那我们怎么把GPT模型用在下游任务上呢,举例来说,怎么把它用在question answering,或者是其他的跟自然语言处理有关的任务上来呢? GPT的想法跟BERT不太一样,虽然实际上GPT也可以沿用BERT的做法。我们回忆一下,在使用BERT时,把训练好的BERT模型拿出来,后面接一个简单的linear的classifier,再针对具体下游任务进行微调,那你就可以做很多事情。我们也可以把GPT模型拿出来,接一个简单的classifier,这样也是会有效的。 但是在GPT的论文中,它没有这样做,它有一个更狂的想法,首先就是因为BERT那一招已经用过了,然后就是因为GPT这个模型真的太大了,大到连fine tune可能都有困难。 我们在用BERT的时候,你要把BERT模型后面接一个linear classifier,然后BERT也是你要train的model的一部分,所以它的参数也是要调的。但BERT的模型在之前做填空题的时候已经训练得差不多了,所以你只需要微调它就好了,但是微调还是要花时间的。也许GPT实在是太过巨大,巨大到要微调它可能都有困难,所以GPT系列有一个更狂的使用方式,这个更狂的使用方式和人类更接近,你想想看假设你去考托福的听力测验,你是怎么去考的?
GPT系列想做的就是同样的事情。 2.1 “Few-shot” Learning举例来说假设要GPT这个模型做翻译
这一个想法还是很疯狂的,毕竟我们在训练的时候,并没有教GPT做翻译这件事,它唯一学到的就是给一段文字的前半段,把后半段补完。现在我们直接给它前半段的文字,告诉它说你要做翻译了,给你几个例子,告诉你说翻译是怎么回事,接下来给它cheese这个英文单词,期望GPT模型后面就直接补出法文的翻译结果。 这个在GPT的文献里面,叫做Few-shot Learning,所谓Few Shot的意思是说,只给了它少量的例子,但是它不是一般的learning,这里面完全没有gradient descent,完全没有要去调GPT模型参数的意思,所以在GPT的文献里面,给了这种训练一个特殊的名字,叫做In-context Learning,代表说它不是一般的learning,它连gradient descent都没有做。 2.2 “One-shot” Learning当然你也可以给GPT更大的挑战,我们在考托福听力测验的时候,都只给一个例子而已,那GPT可不可以只看一个例子,就知道它要做翻译这件事?这个叫One-shot Learning。 2.3 “Zero-shot” Learning还有更狂的,是Zero-shot Learning,直接给GPT模型一个问题描述,说我们现在要做翻译了,GPT能不能够自己就看得懂,就自动知道说要来做翻译这件事情呢。那下面是用GPT模型分别做以上三种learning之后,在42个任务上表现的一个实验结果: 可以看到对于之前的这些很狂的想法,GPT不是完全不可能答对,但是正确率有点低,相较于可以微调模型的BERT来说,正确率是有点低的。 第三代的GPT测试了42个任务,纵轴是正确率,这三条实线是42个任务的平均正确率,三条线分别代表Few Shot,One Shot跟Zero Shot,横轴代表模型的大小。它们测试了一系列不同大小的模型,从只有0.1个billion的参数,到175个billion的参数,那从只有0.1个billion的参数,到175个billion的参数,我们看Few Shot的部分,正确率从20%左右的平均正确率,一直做到50%多的平均正确率。 目前的状况是,有些任务它还真的学会了,举例来说你给它一个数字加另外一个数字,它真的可以得到正确的两个数字加起来的结果。但是有些任务,譬如说一些跟逻辑推理有关的任务,它的结果就非常差,要想进一步了解有关GPT3的细节问题,可以看下面这个链接中的视频: 3 GPT模型在语音和影像上的应用到目前为止我们举的例子都是只跟文字有关,但是这种self-supervised learning的概念还可以用在很多其他方面。在语音跟影像上也都可以使用self-supervised learning的技术,那其实self-supervised learning的技术非常非常地多,我们讲的BERT跟GPT系列只是其中的几种。 3.1 Image —— SimCLR有关影像的部分不会细讲,这里只说有一个非常有名的技术叫做SimCLR,它的概念也不难,想要详细了解的可以看下面的链接:[2002.05709] A Simple Framework for Contrastive Learning of Visual Representations (arxiv.org) 3.2 Image - BYOL还有一个很奇怪的办法叫做BYOL。 这个是很新的论文,是一篇去年夏天的论文。想要详细了解的可以看下面的链接:[2006.07733] Bootstrap your own latent: A new approach to self-supervised Learning (arxiv.org) 3.3 Speech Application在语音的部分,你也完全可以使用self-supervised learning的概念来做: 你完全可以试着训练语音版的BERT,譬如说做填空题,语音也可以做填空题,就把一段声音讯号盖起来,让机器去猜盖起来的部分是什么,语音也可以预测接下来会出现的内容,不管是语音版的BERT还是语言版的GPT,其实都已经有很多相关的研究成果了。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/22 15:03:54- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |