您的位置  油气能源  非常规气

借鉴人类,跨越模态 | NLP和预训练模型未来的发展之路

  • 来源:互联网
  • |
  • 2021-09-23
  • |
  • 0 条评论
  • |
  • |
  • T小字 T大字

借鉴人类,跨越模态 | NLP和预训练模型未来的发展之路

整理 | 李佳伦、戴一鸣

责编 | 戴一鸣

近来,超大规模预训练模型快速发展,在自然语言处理领域引起热议。基于深度学习的自然语言处理技术正沿着“极大数据、极大模型、极大算力”的轨道,“无所不用其极”地一路奋进。

在8月28日举办的“第六届语言与智能高峰论坛”中,来自百度技术委员会的吴华、华为诺亚方舟实验室的蒋欣、中科院自动化所的张家俊做主题演讲报告,针对预训练模型和自然语言处理领域的发展进行了评价。

吴华认为,借助人类天生鲁棒的学习机制,或将为解决NLP领域的困境提供思路,甚至构建一种两层的高效学习机制;

蒋欣认为,预训练模型的持续发展,或将解决因果、网络、安全、公平、多模等方面的问题;

张家俊团队研究了预训练模型在中文领域的应用,探索了任务敏感的预训练模型和图文音三模态预训练方面的工作。

1NLP的未来可能进化

- 直觉和理性的融合 -

讲者:吴华,百度技术委员会主席

大家好,我演讲的题目叫做:《NLP的未来可能进化:直觉和理性的融合》,借助人类的这种神经网络的初步研究结果,其实人类的大脑机制也不是成熟的,但是从现有的研究结论来看的话,大概有几个基本的结论:

  • 人类具有“天生”鲁棒的学习机制。人类具有“天生”先进的并行框架和机制;具有meta-learning的学习机制,相对漫长的童年期,使得人类具备规划、推理和语言能力;知识和文化通过文化能被传承。

  • 人类能够通过“后天”与环境的交互来提升能力。“后天”童年期的元学习机制非常重要,人类可以通过与环境不断交互来建立和强化神经元连接;通过“后天”学习获得知识。

  • 文字相当于是大脑的外存。文字是知识和文化传承的重要载体。

人类具有“天生”鲁棒的学习机制。人类具有“天生”先进的并行框架和机制;具有meta-learning的学习机制,相对漫长的童年期,使得人类具备规划、推理和语言能力;知识和文化通过文化能被传承。

人类能够通过“后天”与环境的交互来提升能力。“后天”童年期的元学习机制非常重要,人类可以通过与环境不断交互来建立和强化神经元连接;通过“后天”学习获得知识。

1.人类语言学习和NLP处理机制之间的类比

除了天生鲁棒的机制以外,(人类大脑)后天是通过跟环境互通来提升能力。人类的智力除了有“天生”的能力,还有“后天”学习的能力,大脑神经元的建立、连接方式、连接强度可以通过“后天”不断地与环境交互获取和提升。

现在我们说超大规模预训练模型,如GPT-3的参数很大,但人类的智能,或者说动物界的智能,也是和大脑皮层的神经元数量是相关的。

如图,从左到右依次为水豚、恒河猴、大猩猩、人类、非洲大象的大脑。人类大脑的体积虽然不是最大的,但大脑皮层的神经元最多。所以这也说明,GPT-3神经元数量变大后,泛化能力也变强,这其中有一些关系,这是认知科学的一些结论。

人类语言的学习方式是什么样的呢?首先有天生的能力,通过基因设置神经元连接的模式和学习机制,因为人的大脑是分区的,语言相关区有一种连接模式,同时有通过文字传承的知识,这些都是刚才提到的天生相关的机制。后天通过面向任务的持续学习能力,使人类的能力进一步发展。简单类比,相当于大规模神经网络的并行算法和机制。

语言方面,人类大脑皮层神经元连接,对应于NLP中的自然语言处理预训练;知识方面,人类社会通过文字传承的知识,对应于NLP中的知识图谱;后天学习方面,类似于人类面向任务的后天持续学习,对应于NLP中的各种任务:机器翻译、对话、阅读理解、创作等。

目前NLP大规模预训练模型取得的一些共识,是通过一个预训练的模型,面向任务做小样本学习、零样本学习以及微调,可用于各行各业。大模型最重要的优势是表明进入了大规模可复制的工业落地阶段,只需小样本的学习也能达到比以前更好的能力,且模型参数规模越大这种优势越明显。

2.当前NLP面临的一些困境

人类思维有两个系统,一个是直觉系统,另一个是理性推断系统。而神经网络中的模型只是学到了数据中的模式,很难做到规划、推理和决策,这样的模型在应用中是有鲁棒性、可解释性和泛化性的问题。

鲁棒性较差。例如,对原句做一点扰动,模型的预测就会变得不准确了。由神经网络模型的attention数据,会发现模型不能学到这些对label产生重要影响的证据。

可解释性较弱。如上图,做不同的扰动如错别字或增加了一些字,就会错判成负向情感了。因此,即便能找到一些证据,对证据的解释性是比较差的,这也是跟鲁棒性相关的。

缺乏基本常识,对于人类小孩都知道的一些常识,机器的表现并不好。

可控性差,知识准确率低。在生成模型中,知识准确率比较低,张冠李戴的知识非常多,而且非常不可控。

3.可能的解决方案

我们做了很多实验来寻求未来可能的解决方案。比如说很多老师提到的句法知识,用句法知识加强attention后,在语法检查、CLUE等小型数据和小模型上表现得非常好。

另一个可能的解决方案是跨模态因为自然语言是离散的,但人类在学习语言的时候和物体及概念有对应,我们期待能用同一个模型学习跨模态的表示或者获得相应的常识。

第三个是高效的学习机制第一层是进化学习,模拟人类的长期进化机制。内层是和环境交互后天适应的快速学习机制。现在也有学者用进化学习机制及弹性可塑性规则来学习,这种方式跟神经网络的反向传播不一样,它很经济,不需要很多数据。

基于两层学习机制,对于语言学习是可以有直觉与理性结合理性是一个high-level,粗粒度policy的决策机制;而细粒度的,比如直觉性强的、隐性的可以用神经网络来解决,这些我们已经在对话系统中有一些验证。谢谢。

2预训练模型能否替代符号计算模型?

讲者:蒋欣,华为诺亚方舟实验室资深研究员,

语音实验室主任

1.深度学习技术的发展现状

深度学习的技术,有很多的进展,不光是模型的规模方面。当然,大模型有足够的容量去表达比较复杂的语义关系操作。同时,预训练的学习方式,能够部分解决数据需求的问题,因为它有可能见过大部分的数据。此外还能解决一些OOD的问题。

刚才吴华老师提到语言学习的问题,现在有很多算法,然后来做这个比较快速的adaptation,解决一些小样本的问题,当然这个都没有完全被解决,但是已经看到很多这样的方法。

从网络本身来讲,神经网络的模块化,能够部分解决可解释性和可复用的问题,但是怎样理解可可解释性本身是一个问题。大家可能会强调 Module and network,就是说网络中的不同的部分,负责不同的功能,通过不同方式去训练它,可以解决一些问题。

还有各种各样的优化算法,不光是 back propagation,假如说要优化一些不可微的东西。网络本质上是一个可微的函数,有强化学习、黑盒优化、搜索规划、对抗训练等方面,使得模型的优化的难度下降。

有人会担心神经网络太大,推理成本很高,但也有压缩、加速、蒸馏、量化、剪枝等执行效率看起来也不是太大的问题。

未来,深度学习模型越来越具备解决这种符号AI的经验问题,或者是推理方面的System Two问题,然后包括数学、推理、代码生成等。下面进行一些简单的介绍。

2.深度学习模型在解决符号AI方面的案例

推理有很多种,包括定理、证明、应用、几何、三角函数等。去年OpenAI的一个工作,用的就是GPT-3来做定理证明,大概的思路和AlphaGo是一致的,即learning和search。然后会进行预训练,让模型更好地理解数学公式。然后做 one-step reasoning,通过逐步演进的搜索的方法接近证明目标。

结合搜索的方法,可以给 policy的learning或者是one-step reason提供更多的样本来学习,最终其实可以达到比符号方法好很多的证明效率,大概40%多。应用题相对简单,根据给定的一段话,形成一个表达式,然后把它解出来。

今年我们做的一个工作,基于pre-training,采用BART模型,如果担心decode的结果不太对,可以再做一个ranking,然后同时学这样的function。另外还需要在线下做很多的这种data obtation,使得不断的让ranker去见到正确和错误的例子,结果更好。

另外是大家可能会经常说的符号的问题。在代码的理解和生成方面,神经网络现在已经做得很好了,OpenAI就做了copilot和codex,可以把自然语言指令翻译成一段代码去执行,都是非常近期的一些工作。谷歌也提到了类似的工作,通过研究发现模型的规模越大,生成代码完成任务的比率就更大。

当然并不是每一次生成的结果都能用,这种测试是采样80次,其中有一次或两次成功就可以。同样的,利用代码生成的经验也可以解决数学问题,因为数学问题也可以转化成一段代码。所以通过这些案例,我们可以看到,预训练语言模型有非常足够的能力去解决一些看起来非常推理化的问题。

这是我们最近做的一个工作,把抽象语法树加到代码里,包括代码的comments一块去做pre-training。如果想从各种角度让这个模型更好地理解代码,更好地理解它的结构,它的关系,以及谁是变量,谁是是常数。如果这些能分清楚的话,他就会更好地理解code,结果也是不错的。

3.未来的发展趋势

最后总结一下,去年的某个时候我们听到周志华老师工作叫做反译学习,就是说训练一个神经网络的分类器,然后有一个knowledge reasoning模块,对分类结果进行分析和推断,找出里面不太一致、不太合适的地方,然后从而去反馈到他,在内部改掉,然后再重新训练分类器,可以进行这样的一些循环。

本质上来说,用符号的系统是可以对神经网络进行数据增强或者数据修改,训练神经网络系统。去年朱松纯老师的团队有做过一个工作,是根据反译学习的思路来做手写的公式识别,非常清晰地验证了这套方法可行性。

这是我最终扩展的一个版本,最终是要用神经网络搜索的事,但是可以用符号模型为它从各种角度提供数据,比如说预训练的数据等,通过pre-training就可以学到很多这样的知识,然后你可以用符号模型去特定到一些任务上去微调。在这里的训练并不需要一定是训练整个大模型,可能只是训练模型中很少的一部分参数,所以并不一定会非常贵。

此外,当去面对一些不太可能求导的目标的时候,是可以利用这种搜索和强化学习的方法去学习的。另外说可能大家还关心一些别的东西,比如因果、网络、安全、公平、多模等,这些都可以用数据增强的方式去影响神经网络,然后去训练一个模块化的神经网络大模型。

如果有比较靠谱的模型,结合模型小型化的技术以后,就可以把它放在具体任务上了。这可能是一个趋势,一个未来的模式。

3从中文GPT实践的角度看NLP通用模型

讲者:张家俊,中科院自动化所模式识别国家重点实验室研究员、

智源青年科学家

刚才各位老师介绍了,一些推理系统、认知系统以及神经网络之间的结合。我这里主要谈一谈现在大家关注的NLP通用模型的情况。

1.什么是NLP通用模型

下面先介绍什么是NLP通用模型,我从维基百科上面找到了这样一个定义:人工智能的通用模型或者说通用人工智能,实际上是一个智能体能够理解和学习人类能够完成的任何智力任务。

把它类比一下,我理解的NLP通用模型是,一个智能体能够理解或学习人类能完成的任何语言处理任务。

现在我们希望或是假设智能体是通用预训练模型,“任何”这个词语相对来说太苛刻了,我们希望把它弱化成“很多”,也就是说我们现在希望看到NLP通用模型,希望一个模型能够完成很多功能。

在我的理解当中,通用模型能够完成的功能多,但并不是每一个功能都是最好的。现在的预训练模型有很多:从双向的BERT,到单向解码的GPT,到sequence to sequence的BART、T5等等。

跟大家汇报这个工作是希望能探讨两个问题:(1)现在的预训练模型是不是足够通用,也就是说一个模型能够完成很多NLP的任务吗?(2)怎样才能够获得更加通用的训练模型呢?

2.预训练语言模型完成NLP任务的范式

对于第一个问题,我们先看看现在的预训练模型是怎么在下游NLP任务中利用的。

  • 一种方式是fine-tuning,即每一个任务来了,用这个任务的少量数据fine-tuning一下,得到一个新的模型来完成这个任务,每一个任务都做相同的操作。
  • 另一种预训练模型是最近一两年由于GPT-3出来之后兴起的,是用prompt的方式,即给出预训练模型的提示语,让提示语从预训练模型里面诱导出来完成每一个NLP任务。

可以注意到,fine-tuning的方式是每一个任务都要对应一个模型,我觉得它是不那么通用,也不是那么的绿色环保。prompt的方式是想从预训练模型中,通过提示学习到一个通用的模型,这可以用一个模型实现不同的任务,它是通用、绿色环保的。

为了验证这个问题,我们训练了三个模型,在海量的中文数据上面,分别训练了1亿、20亿、30亿参数的模型,表格中是一些具体的参数设置和训练方式。其中30亿参数的模型,我们最近会释放出来给大家使用。

3..预训练语言模型通用吗

我们用一些语言生成和理解的例子来看一看。K=0表示只是告诉GPT模型要做什么任务,但是不告诉它怎么去做。K=1表示会给这个模型一个做任务的例子,让这个模型学习该怎么去完成这个任务。

绿色的是提示词,当没有提示词即没有样例而只知道要做什么任务时,模型其实做得很不好。给它一个样例或者多个样例之后,模型做得会越来越好,它知道怎么去完成这个任务,而且它的泛化能力也会变得越来越好,但它不知道什么时候结束,这是生成的问题。

在理解任务上也有相似的问题,比如怎么判断两个句子是不是相关的。当我们给模型一个例子,告诉它怎么去完成这个任务的时候,他会越来越好。但是模型还是不知道怎么结束,我们定量地分析了一下,发现给的样例越多,模型分类的准确率也就越高,这是在32亿参数的模型上进行的实验。

我们发现如果给模型较多的样例之后,性能也会逼近微调小模型的性能,说明这是一种比较好的通用方式,能一个模型完成多个自然语言处理任务。

我们对比了一下模型大小对于性能的影响,我们同时用了一个生成任务和一个理解任务。生成任务是作诗。

我们发现如果模型比较小时,比如每一个都给出一个样例的话,它只是去复制。而当我们采用32亿参数的模型的时候,相对来说模型就具备了一定的生成能力和创作能力。

与生成任务相似,比较小的模型做理解任务时,它不是去回答正面还是负面的,只是把提问拷贝过来了。

20亿个参数模型时,它回答错了。30亿个参数模型时,它知道怎么去做这个任务,而且回答正确的,但是仍然它也会出现一个问题——不知道什么时候结束。

我们在某个语义相关性任务上对比了一下小模型和大模型的区别。我们发现具有相同的样例作为前缀的时候,模型参数量越大,预测的准确率也会越高。当然即使是具有比较稳定的32亿参数的模型,它仍然有过度生成或者是无法判断何时结束的问题。

那么稍微总结一下,我们发现现在这种30亿的参数模型,仍然需要若干样例的提示才能做得更好,而且模型更多的是模仿而缺乏泛化,并且对任务的感知能力比较弱,模型不知道什么时候该停止输出。

另一方面我们发现预训练模型的规模对下游的NLP任务的性能还是有很大影响的,但是不管任务的执行是否正确,我们发现对任务的感知能力仍然是大模型的一个问题。

4.探索1——任务敏感的预训练模型

我们针对上面的一些实验,进行了一定的探索和尝试。

第一个探索是我们想结合两个方式——fine-tuning的方式和基于提示的用一个模型实现多个任务的方式,提出了一个叫任务感知的预训练模型。这是一个初步的尝试,我们首先把所有的NLP任务都形式化成语言模型的问题,然后让它作为一个生成的问题。

同时因为我们要让他具有任务的感知能力,需要让他知道什么时候该结束,什么时候该完成什么任务,所以我们在多任务fine-tuning的时候,提出了一个叫任务感知的自注意力机制。也就是说在学习的时候,我们显式地将任务信息加入进来,帮助去提升这个任务的感知能力,让其知道该什么时候去完成这个任务,什么时候去结束。

我们在这个模型的基础上做了一点尝试,当然我们这里面用的还是比较小的模型——1亿的模型,我们一方面是在单个任务上进行各个任务的微调,另一方面是采用我们的方法。

相比于单任务微调,每个任务都是一个模型。我们只用一个模型就能完成多个自然语言处理任务,而且很多时候能够在这些任务上面超越单任务微调的性能,但是还是仍然会存在一些过度生成和内容重复的问题。

比如说这里面有一些例子,确实回答的是比较准确,但是后面有一些无关的内容的生成,这就是我们的这样的第一个尝试。

5.探索2——图文音三模态预训练模型

第二个尝试,因为语言其实在真实世界当中是离不开语音和视觉信息的,我们觉得要完成自然语言处理的通用模型的话,应该要实现图文音三模态的预训练模型。本人所在的中科院自动化所也做了一定的尝试,实现了一个叫图文音的三模态预训练模型。这三个模块可以单独地进行编码和解码,只是在中间用一种跨模态的机制去实现不同模态的融合和语义的对齐。

这是我们做的一个demo,这个demo可以把图文字语音都结合在一起,它能够完成不同模态的理解和转换以及生成,譬如说图文问答、图音问答、视频理解、做诗、中文续写等等。

最后简单总结一下,我们通过一些中文GPT模型实践发现,目前的预训练语言模型通用性较差、缺乏任务感知能力,尤其不知道何时停止输出;另外,模型规模越大,下游NLP任务性能越好,但任务感知能力仍然不足。在提升模型通用性方面我们做了两点尝试,一个是任务感知的预训练模型,一个是图文音多模态预训练模型(我们认为是迈向通用NLP模型的可能途径之一)。

红鞋子电影 http://www.cityruyi.com/lm-4/lm-1/13967.html
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186