预训练语言模型:还能走多远?

2020年11月10日 10:00 来源:AI科技评论 作者:戚路北

作者 | 戚路北

编辑 | 青暮

以 BERT 和 GPT 为代表的预训练语言模型自从 2017 年提出以来取得了巨大的成功,改变了整个自然语言 处理的面貌,几乎刷新了所有自然语言处理任务的成绩,而且在工业界也开始获得广泛的应用,其影响甚至远远超出了 NLP 的范围。

最近新出现的 GPT-3 模型更是表现出了惊人的能力,似乎再一次印证了“大力出奇迹” 这样一个道理。

在10月23日,由华为诺亚方舟实验室首席科学家刘群主持的CNCC论坛《预训练语言模型:还能走多远?》上,微软亚研自然语言计算组首席研究员韦福如、复旦大学计算机科学技术学院教授邱锡鹏、百度自然语言处理部杰出架构师孙宇、华为诺亚方舟实验室研究员尚利峰,作为学术界和工业界在这一领域的代表,探讨了预训练语言模型所面临的问题和发展趋势。

刘群是自然语言处理和机器翻译领域的国际著名专家,研究方向包括多语言信息处理、机器翻译模型、方法与评价等。2012 年 7 月之前,刘群是中国科学院计算技术研究所的研究员和自然语言处理研究组负责人。2012 年 7 至 2018 年 6 月,刘群任都柏林城市大学教授、爱尔兰 ADAPT 研究中心(前身 CNGL 研究中心)自然语言处理主题负责人。

2018 年 7 月开始,他正式加入华为诺亚方舟实验室,任语音语义首席科学家,主导语音和自然语言处理领域的前沿研究和技术创新,除了语音、对话、翻译、多模态以外,其实验室也在重点布局预训练语言模型。

在论坛中,专家们讨论的话题包括但不限于:预训练语言模型还能给我们带来哪些惊喜?“大力出奇迹” 这条路还能继续下去吗?预训练语言模型还有哪些潜在的突破口?预训练语言模型亟待解决的问题有哪些?在最后的讨论环节,众专家将围绕这些话题进行讨论。

韦福如对现有的语言模型预训练工作进行总结和比较,然后介绍面向自然语言理解和生成任务的统一预训练语言模型 UniLM 以及多语言预训练模型 InfoXLM(演讲内容请观看CNCC回放视频)。

邱锡鹏总结了预训练语言模型目前的一些改进方向,包括迁移方法、知识嵌入、多模态、跨语言、特定领域等。

孙宇分享了百度文心 (ERNIE) 在预训练语言模型方面的技术创新及产业应用方面的进展。

尚利峰主要介绍华为诺亚方舟实验室语音语义团队在预训练语言模型方向上的研究和商业化探索。

以下是论坛全文,AI科技评论进行了不改变原意的整理。

1

邱锡鹏:预训练语言模型的发展畅享

我谈一点预训练语言模型的未来发展畅想,聊聊预训练模型里面还有哪些东西是需要深入思考的。

预训练语言模型的主要架构如上图所示,先把词向量化,然后经过一个上下文的编码器,得到每个词的上下文相关表示,即上下文embedding,最后输入到特定任务的模型当中去预测。

我们现在知道,一个非常好的上下文Encoder能够大幅度简化下游任务特定模型的复杂度。换言之就是表示学的越好,下游任务越简单。

为了得到更好的上下文表示,我们需要思考,要学习一个好的语言表示需要考虑什么因素。

首先从最宏观的认知层面看,语言就是一个符号,在人脑中它代表某种信息。我们需要考虑它隐含的东西是什么?如何把它表示出来?比如如何设计常识或者知识?

第二个就是模型层面,即模型驱动,如何设计出更适合自然语言的编码器。

第三个就是学习层面,有了模型之后,就需要去通过数据去学习模型的参数,即数据驱动。

预训练模型,称之为PTM,即Pre-Trained Models,它有三个主要关键,其一是它的架构设计,其二就是它的数据类型,其三是二者的结合。不同的预训练模型主要区别是这三个部分的不同。

下面简单谈谈对未来方向的思考。

第一是预训练模型的上限是多少?

虽然现在GPT-3已经出来了,但我个人感觉GPT-3不是一个正确的方向,因为它不仅受限于它的任务形态,而且有相当的局限性。我们依然用更大的数据,用更加开放性的架构去推动 PTMs,是不是能够继续往前发展?到底是数据重要还是设计好任务更重要?

Richard Sutton有个观点,AI发展到今天,大部分是靠算力的发展来推动的。尽管我们每个人都会加入自己的一些先验的东西,但最终证明都不如算力的突破来的有效。

第二个是,Transformer最大的问题就是它的复杂度,很难去处理长文档而且容易过拟合。

所以这个模型肯定不是最终形态,一定会有所改进。我们在这方面也进行了一些尝试,比如Star-Transformer,BP-Transformer等。Star-Transformer在两两连接之间加一个中继节点,可以大幅降低它的复杂度。虽然这个模型比较有效,但它在GPU上的性能反而不如Transformer,因为Transformer更利于大块矩阵的计算,这就是目前的现状,但我觉得还是可以往这个方向继续去改进。

第三个就是预训练模型里面到底隐含了哪些知识?

我们要理解一个语言或者一段文本,要分成两方面的知识,一是语言知识,二是世界知识。而目前大家一般认为语言知识是有限的,换言之,我们不需要见过非常多的数据才能掌握语言知识。通过增大训练数据可能大部分带来的知识增长都是world knowledge,但是world knowledge不是一定要隐含在PTMs里面的。

第四个就是任务定向的预训练以及任务定向的模型压缩。

主要目的是为了不让资源成为瓶颈,否则参与研究的人就会越来愈少。所以我觉得小规模、小型化或者任务定向的设计会比较有优势。

第五个就是怎么用PTM。

现在很多的文章都在讨论PTM怎么训练、设计和改进。其实还有一个方向是如何将它用好。其实BERT刚出来的时候,我们就去探讨了怎么用它,然后提了一个 Two-stage和Three-stage的一个knowledge transfer,这个工作发表在CCL上,并获得了最佳论文奖。

另外关于怎么用好,我们可以根据BERT的训练性质,把比如一个普通的文本分类问题变成一个匹配的问题。这种学习范式上的变化在很多任务上都得到了非常有效的验证。

总的说来, Fine-tuning并不是一个参数有效的方法。因为有很多个不同任务,而每一个任务都需要保持一个很大的Fine-tuning后的模型,这样非常低效。因此我们需要探索更有效的预训练模型使用方法。比如用PTMs去做数据增强,用它本身去产生数据,然后用数据去训练新的模型,或者直接把它作为一个外部knowledge,然后做一个结构化的knowledge去查询。

第六个就是可解释性以及可信赖性。

我们有个工作在做BERT-Attack,即将BERT作为一个攻击器去攻击另外一个BERT,因为BERT是masked language model,所以更容易产生和原句类似的欺骗句子。

最后我们引用一句我们古人的话叫“读万卷书,行万里路”。现在预训练模型是做到了前半句,但后半句也非常重要。

2

孙宇:百度语义理解技术与平台——文心(ERNIE)

我这里主要介绍百度在预训练语言模型这方面的工作。我们去年发布了第一版预训练语言模型,名字叫ERNIE,中文名叫“文心”。

我们的工作主要有两大方面:一是预训练算法,在算法方面我们布局了包括基础技术、应用技术、领域技术和拓展技术,对于不同的语言粒度和任务层次构建不同的预训练模型,同时在类似金融和法律等多领域去探索相关行业模型。二是平台,我们基于预训练模型构建成了一个平台,提供给企业NLP开发者使用,助力产业智能化发展。

接下来我介绍一下ERNIE的整体发展历程。在2019年3月,我们发布了ERNIE1.0模型,它在中文上超越了BERT。在7月份,我们发现持续的引入知识对预训练模型有一定的效果,于是又提出了ERNIE2.0。

在11月份,我们将ERNIE进行了开源,为企业开发者提供给基于ERNIE预训练技术的NLP产业化的工具。在12月份,我们在ERNIE2.0的基础上又做了很多的改进,最后在GLUE上获得了第一。

今年1月份,我们在语言生成的领域也取得了一些新的突破。3月,我们基于ERNIE做了SemEval国际语义测评,在情感分析和文本审核等方面都取得了冠军,文心这个工作也获得了中国人工智能学会的优秀成果奖。7月份,我们又在跨模态领域进行了预训练的迁移,提出了ERNIE-ViL,即一个语言与视觉的模型,效果也非常好。在9月份,我们把预训练模型产品化,发布了文心平台,助力整个产业的智能化升级。

第一部分,主要介绍文心(ERNIE)算法与应用。重点介绍几个典型的算法工作和它们在百度的一些应用。

ERNIE1.0是一个知识增强的语义表示模型,它通过把词、短语、实体进行掩码,再去预测,让模型去学习这个知识,这个效果其实很明显,提升也比较大。我们后来也将之扩展到英文上,发现可推广性也是很强的。

七月份的时候我们发现,虽然mask看起来手段比较简单,但确实能学习知识,能预测出丢失的知识,因而我们思考是否能引入更多的类似知识来进行学习。然而我们在进行这项工作的时候发现一个了问题,就是学新忘旧。

所以我们提出了一个比较巧妙的思想,即通过持续不断地学习新任务的方式,多阶段地去学习海量数据,这就是ERNIE2.0核心方法之一。

这里面我们提了三个比较有意思的任务。第一个刚才已经讲过,即预测掩码。第二个是小学语文题,比如说我们让模型去排序被我们打乱了的句子,让模型去学习逻辑关系。这些知识是我们通过人工构建的,比如去掉句子中的逻辑关系词等。

前面的工作都是面向语言理解领域的,其实我们在语言生成的领域也做了一些比较有意思的工作,这也是第三个任务。这个工作跟刚才ERNIE1.0的思路比较像,它核心思想就是逐词生成。例如当我们想到New York的时候,其实是New York两个词是一个整体,因而在生成的时候,是直接片段的生成,即在生成York的时候是看不到New的。而传统的方法是在生成York的时候,再看到New的这种机制。这个技术也在百度内部取得了很多应用。

跨模态学习也是非常热门的一个方向。我们终于能看到NLP技术运用在视觉领域。在这里跨模态任务其实是起一个中间桥梁作用。例如视觉模态和语言模态是两个模态,我们让机器去看一些图像,然后去理解并回答一些问题,以及去做跨模态的检索,这在工业界是非常有应用价值的。

这里我们也延续了知识增强的思路,例如语言维度其实是难以正确预测这个词是什么,所以它必须去借助视觉知识去预测细粒度的语义。

应用方面,预训练语言模型在产业界也非常有应用价值。ERNIE的技术用到了百度搜索、视频推荐、百度地图、小度音箱里等,都取得了很多的不错的效果,这在百度内部已经用得非常广泛了。

以上讲的都是算法方面的工作,接下来再讲讲我们最近发布的文心ERNIE平台。

先从产业的角度去分析预训练语言模型的特点,首先这个技术非常通用,它在绝大部分自然语言处理任务上提升都十分显著;它的使用方式也很标准,通过预训练微调的方式就可以适配应用。所以,我们推出了文心平台,把一整套的预训练语言模型和NLP算法集成到平台里面,然后让企业界的开发者使用我们的平台,能够通过平台Fine-tuning他们自己的模型,定制自己的算法。因为NLP算法的定制需要投入大量人力、物力、财力,但是通过我们的平台去开展工作会降低相当大的成本。我们这个平台自推出来以后,国内大概有2万个的开发者都在使用,包含了金融、通信、教育等行业。

3

尚利峰:华为诺亚预训练语言模型的研究与思考

各位老师同学下午好,非常高兴有这个机会跟大家一起分享我们华为诺亚最近在预训练语言模型上的一些研究和思考。主要是我们最近两年的研究工作,从三个方面来进行分享。

第一点是关于如何做一个更好的大模型。第二点是如何对大模型进行压缩加速,以实现模型的产品化。第三点是我们对未来的一些思考,即如何更好地进行知识的获取。

首先来看一下我们今年ACL的一个模型解释分析的工作。我们想知道预训练语言模型到底学到了什么东西?它是否学到了一些底层的句法结构?

我们提出了一个比较简单的无监督非参的分析方法,首先定义了一个任何两个词之间的影响函数。有了它之后,便可以很容易地得到这样一个热力图,可以算出任何两个词之间的相互关系。之后便可以按照一个简单的算法来抽取出一些句法结构。这种自动抽取的句法结构可以达到和人工设计相当的一个效果,这是非常令人震惊的。当然,我们也可以把它用到下游任务上,发现效果也是非常不错的。除了句法结构,我们还扩展到了文档的篇章结构。

预训练语言模型在抽取句法结构上是不错,那么它是否也学到了浅层语义呢?例如:一些类似语义角色标注的能力。我们在CoQA任务上进行了验证。DistilBERT、BERT、和RoBERTa,是三个非常典型的预训练模型,它们在结构上非常一致,主要的差别在于模型的大小以及训练语料的多少。

最终,我们得出了结论:BERT或者DistilBERT非常依赖于词序的一些表面特征,很多时候并非真的理解了语义。虽然RoBERTa的表现有进一步提升,但它还是不能解决合成语义的问题。

除了更好地理解预训练语言模型,我们在预训练语言模型本身创新上也做了一些研究工作。

我们知道预训练模型非常依赖于预训练任务的设计,刚才大家也提到了概率掩码已经被验证是非常成功的,但是原始的掩码概率是一个固定的值,为什么是0.15这样的一个值呢?

后来我们就假设它服从一个先验分布,如果它是一个均匀分布的话,我们从理论上证明了它其实等效于一个autoregressive permutated language model。

基于这样的一个简单方式,我们就可以把文本生成和BERT这样的理解任务结合起来放到一个模型里面。可以看到无论是在生成,还是分类任务上都有非常不错的效果,和XLNet相比效果上相当,但更加简洁。

获得一个好的预训练语言模型依赖于五个关键因素:即算力、数据、结构、任务、训练。华为诺亚发布了自己的预训练模型,叫作NEZHA。

算力是非常重要的,因此我们也和华为芯片团队进行合作,来训练更大的模型;我们不是互联网公司,没有那么多的数据;模型结构方面,我们做了相对位置编码的创新;在训练任务方面,我们提出了概率掩码,取得了不错的效果。在CLUE总榜和小模型榜上排名第一,后来我们训练了NEZHA的英文版本,在SuperGLUE榜上仅次于T5模型。

我们在工业界实验室除了攀登珠峰,也非常关注落地工作。如何将预训练模型用到我们的产品中?我们做了三个压缩工作TinyBERT、TernaryBERT和DynaBERT。除了压缩算法上的创新,我们还和诺亚AI使能团队合作进行更加底层的加速。

预训练语言模型压缩加速,本质上可以类比为老师/学生的教学场景。老师如何教出好学生?有四个核心要素:老师、知识、方法和学生,也就是我们如何来抽取一些特征函数或者评价函数,让学生更好地模拟老师的行为。

我们知道模型压缩在视觉领域已经被广泛研究,而NLP存在自己的问题。其中一个重要的差异是,除了压缩本身是一种知识迁移外,预训练模型包含了预训练和下游任务微调阶段,本身也是一种知识迁移。我们如何考虑这么多不同的知识迁移?如何在Transformer这种结构上来做更好的迁移?

我们在蒸馏、量化和剪枝上面做了三个不同的压缩技术,分别是TinyBERT、TernaryBERT 和DynaBERT。

第一个工作是我们在去年年初的时候开始做的,当时的情况是大家觉得这个东西很热门,效果也很好,但是能否帮助到我们的产品是有疑问的。

首先基于华为手机助手场景做了一个非常简单的任务,同时做短文本意图分类和关键内容抽取的任务。发现效果非常好,但是在终端和云端的CPU上运行无法满足产品的要求。

我们提出了TinyBERT,两步Transformer蒸馏的工作。在NLP领域DA也非常有用,是屡试不爽的一个技巧。不过当前我们的DA方法不够高效,最近也在进行这方面的改良。我们测了两种结构,一个是TinyBERT-4层,一个是6层。在6层上,我们看到平均值是79.4,几乎已经达到和老师差不多的一个效果。但是在4层上还是有2.5的差距。大家知道,一个瘦高的模型,其实比一个矮胖的模型效果上要更好,但是现实中很多产品不能用太多层。

第二个工作是我们从去年年底开始的,研究怎么来做BERT的量化。我们把蒸馏和量化进行了融合,用蒸馏来引导整个量化过程。这类想法比较自然,在其他领域也得到了验证,但是在预训练领域还是有很多自己的问题。

第三个工作DynaBERT是一个动态压缩的技术,我们希望能够一次训练,多端部署。实际中有很多不同的硬件,针对不同的平台需要适配不同大小的模型。我们在宽度和深度方面做了不同的伸缩,最终得到一个包含多个子网络的超网络,训练好之后,可以根据不同的应用场景抽取不同的子网络来满足我们生产的需求。

如何做到使模型变小的情况下依旧保持良好的效果?针对这个问题,我们对attention模式做了可视化,发现小网络的中间层Attention模式实现了某种功能融合。

现实生产中有许多不同的要求,端的或者云的,得将模型推理做到很快。我们和诺亚AI使能团队进行合作,基于他们开发的深度学习加速库BOLT,实现了不同硬件平台的进一步加速。

下面是我们对未来的一些思考,首先做一个非常简单的预训练模型发展历史回顾。我从两个维度来说,即更好的大模型和更快的小模型。

关于更好的大模型,大家已经做了很多解释分析,在NLP这一块已经非常成功了。那怎么来扩展到其他领域,比如视觉、信息检索和软件工程,还包括怎么来做多模态视觉文本实现更好的视频内容理解。

在更快的小模型研究这块,首先存在一个现实挑战是,很多工业应用仍然部署在CPU或端侧设备上。有一个非常核心的问题,就是不同业务或者硬件平台上,最逼近大模型的小模型是什么?它的结构到底是怎么样的?其实不同的任务还是非常不一样的。

最后一个问题就是 GPT-3出来之后,我们是否就可以做知识的表示和推理了,是否就可以做所谓的第三代人工智能了?

我们回过头来再看一下这个问题,语言是我们研究的对象,那它到底是什么?刚才邱老师讲到有两类知识,一个是语言知识,一个是世界知识。语言的本质是什么?我很喜欢的一句话“语言其实是生活形式论下的世界万物流变”,语言不仅仅是一个序列,其实还依赖于真实的世界,而真实世界又是不断变化的。所以很多知识是非常离散的,要用一个统计模型来表达世界知识还是很难的。

但是不可否认预训练模型已经在语言结构知识建模方面发展到了一个极致。无论如何预训练语言模型还是一种统计方法,因此必然存在“语义盲区”的问题。我们现实中也发现它非常倾向于给出一些安全的预测。

我们再看另外一个问题,即推理的问题。到现在为止还没有一个通用的推理工具。就算Transformer是这么强大的模型,那它是否可以来实现通用推理呢?

我们推理是为了举一反三,是为了建模一种获取新知识的能力。但我们知道人类获得新知识的能力是丰富多样的,不仅仅依靠理性推理,可能还依靠直觉等其他方式。所以用一个通用的GPT大模型来表达知识和推理,还是存在一些问题的。

既然要完全实现知识表达和推理,还有一定的距离。那我们是否可以思考另外一个问题,是否可以通过预训练模型从现有的大规模的文本知识里快速获取知识?换言之,现有的海量文本、图像、视频等已经包含大量的知识,怎么从现有的海量知识中更加准确快速地来获取想要的信息?

4

讨论环节

问题纲要:

  • 预训练语言模型还能给我们带来哪些惊喜?
  • “大力出奇迹”这条路还能继续下去吗?
  • 预训练语言模型还有哪些潜在的突破口?
  • 预训练语言模型亟待解决的问题有哪些?

刘知远:GPT-3依赖超大算力,别说小公司,可能很多大公司也都承受不起。那么这条路还能不能走下去?大家可以畅想一下。

然后就是预训练语言模型可能还有潜在的突破口?它的面临的问题有哪些,有什么样的解决办法?

我觉得目前预训练语言模型应该是NLP一个非常前沿的方向,从很多今年的论文来看,基本上都在和这个相关。

关于未来的发展方向,我认为光“大力出奇迹”可能不行。很多学者都提到:其实我们的大脑并不是一个白板,可能是有一些更高级或者结构性的东西。

这一点,也可以从GPT-3的表现上看到,有很多问题它会乱答。我觉得它之所以会乱答,是因为它没有从这么大规模的数据里面学会所谓的抽象思考。

我本身是做知识图谱的,我觉得未来自然语言深度理解的发展应该要有知识的支持,但可能有的老师会觉得,其实这些知识也可以从大规模数据里面去学。当然这样这是没问题的,不过在我看来,即使要学,也应该有一些更高层的meta knowledge来支持你去学这些底层的知识,然后一层一层地去往上学,这是我觉得未来可能比较重要的一个探索方向。

也就是说“大力出奇迹”或者纯粹“data-driven”的方法,虽然在这几十年已经验证是一个非常有效的方式,不过单纯地把模型规模变大应该不是终极路线。

提问者:如何让预训练模型除了知道哪些东西是常识,是应当知道的,还有哪一些东西是自己没有学到的,不能瞎猜的?

尚利峰:我认为通用AI的发展还有很长的一段路要走。一个很重要的问题是我们下一步该怎么走?

因为知识如此多样而稀疏,而很多时候业务逻辑等是各个公司或者应用场景的硬性规定,没有办法进行统计分析,这种情况很难解决。

预训练模型在语言表示上已经非常成功,在知识表示和推理方面,我们暂且不要对预训练模型过于苛求。

至于下一步工作,我认为重点应该放在如何更好地进行知识获取方面。其实这也是工业界非常关注的一个问题。例如百度或者谷歌的搜索引擎,可以返回可能包含答案的相关段落,并且高亮可能的答案,帮助用户更加便捷地获取信息。

除此之外,我认为阅读理解是非常重要的研究方向。一个有趣的问题是在预训练阶段我们如何去设计一些任务,使得语言模型有动力去学习各种长依赖关系来得到答案。

提问者:如何让预训练语言模型在经过一段时间的训练之后更好地发现各种业务信息之间的不相似性?

尚利峰:问题很好,这也是我们在工业界经常遇到的两个问题。具体就是说如何让模型知道它自己不知道。这实际上是一种边界的问题。

预训练模型无法做到包治百病,因为有很多领域的东西不具有可统计的特性。真实的系统还是需要写不少的规则。我们目前的想法就是去将神经的东西和符号的东西进行融合。目前只是在进行初步的尝试。大家也可以多进行这方面的研究。

刘知远:我稍微也发表一点感想,首先是领域与领域之间的差别特别大。比如有些领域很小,你随便弄点数据就能解决这个问题;而有些领域很大,你多少数据都不够去解决问题。举一个我原来做统计机器翻译的一个例子,中医领域可能十万句对就能基本解决所有问题,但你真正要说医学领域那就不得了了,医学领域无边无际,所以我认为是跟领域的大小非常相关。

再一个就是规则,现在神经网络虽然非常强大,但是规则这个东西还是离不开工业界,比如前些年我们国家的一个高考机器人项目,结果最后他们开发出来的系统,基本上还是个规则系统。所以说真正在解决问题的时候,还是得各种方法一起上,神经网络并不能包治百病。

提问者:由于我们对大脑研究的水平有限,人类也不知自己是怎么在进行决策和推理。但我们知道它是数以千亿计的神经元的一个堆叠。我的问题是有没有可能等神经网络大到一定程度的时候会发生质变?

孙宇:这个问题比较大,我个人觉得应该是不太可能的。因为我们都不太明白人脑是如何去思考的,只是觉得有很多的神经元,而且比我们现在所有模型的神经元都多。

其实关于认知,我觉得还是得让生物学界加入进来去一起研究一下。而现在计算机科学基于一种统计的方法,基于深度学习的方法,本质上还是一种数学。

我觉得现有的神经网络模型,还是去解决某一些他能够学到的那些任务,而它能够学到的无非是语言的贡献。

而为什么它可以在语言的贡献的任务里去提升效果呢?因为它学到了语言之间的模式,比如说词跟词之间的一些相似度、一些搭配。这些知识对于我们现有的这些NLP任务确实有帮助。

为什么对现有的任务有帮助呢?因为我觉得我们现有的NLP任务其实数据规模都不算大。而在翻译里面解决问题的效果不太好或许是因为数据量的问题。比如百度搜索在搜索相关信息之前,就是用大数据去训练相关性,使用用户的反馈去学相关性。所以我觉得与其说“大力出奇迹”还不如说“大数据出奇迹”,当然也加上算力。

接下来我谈一谈自己的感想。

我觉得我们可以去更多地研究为什么预训练模型变好了,因为这样才便于我们更多的去指导怎么优化这个方向。而现在的所有的思路都是人是怎么想,人觉得我们要加知识,那是因为人自己觉得要学了知识才有用,这是从人的认知上角度去讲的。

而在过去的很长一段时间,整个NLP的研究都在做建模,都在做针对任务的,基于下面大数据怎么做语义表示,这块其实一直没有这么研究。为什么现在通过这种Transformer加这种预训练模型就好了?这个事情我觉得其实是因为工业界还有一些限制,但学术界可以多研究。

然后再讲一下“大力出奇迹”,例如GPT-3。我们发现算力扩大了以后,确实表现会很不一样,我也比较认同。我们也发现其实你在不同的算力下,你得到的结论不一样。这个是我们工业界可能会去做的事情。那么从预训练模型上,我们也想探索一下,到底做到多大,能够效果还能够有多大的空间,这是我们后面想去解答的问题。

最后就是跨模态,我觉得NLP现在把自监督的方法从传统方法中提出来以后,确实能够帮助视觉,我觉得未来视觉可能会做一些突破,因为视觉大部分的任务都是基于一个标注的大规模数据去预训练模型。这种大数据自监督怎么去用?我觉得这个方向肯定会有突破,可能会带来别的领域的惊喜。

自由提问:预训练模型在短文本有很好的效果,但是一旦碰到长文本,尤其是图文交互的时候,就很难得到一个好的结果。想请问老师们我们应该如何去处理长文本?

刘群:长文本与短文本相比本身就会更难。这是一个客观的现实。由于长文本蕴含有更多的语义信息,在运行过程中也更容易丢失语义。由于Transformer的时间复杂度是句子长度的平方,如果模型复杂度能够降低到线性的话,这个问题可能会好处理一些。现在已经有一些这样的模型,但在真正的困难的问题面前还没有体现出它的威力。

邱锡鹏:我补充一下,如果从解决问题的方向上去思考,可能有很多工程性的方法,最简单就是你用一个层次化的结构。

孙宇:我想问一下咱们在座各位,试过GPT-3吗?有人有什么感想吗?

刘群:据我所知国内学者还没有人获得GPT-3账号。

转载自公众号:AI科技评论 作者:戚路北 本文经授权发布,不代表51LA立场,如若转载请联系原作者。

本文经授权发布,不代表51LA立场,如若转载请联系原作者。

更多互联网行业动态>>请关注微信公众号“我要啦统计”(微信ID:Analysis_51la)

预训练语言模型:还能走多远?

来源:AI科技评论 作者:戚路北
2020年11月10日 10:00

作者 | 戚路北

编辑 | 青暮

以 BERT 和 GPT 为代表的预训练语言模型自从 2017 年提出以来取得了巨大的成功,改变了整个自然语言 处理的面貌,几乎刷新了所有自然语言处理任务的成绩,而且在工业界也开始获得广泛的应用,其影响甚至远远超出了 NLP 的范围。

最近新出现的 GPT-3 模型更是表现出了惊人的能力,似乎再一次印证了“大力出奇迹” 这样一个道理。

在10月23日,由华为诺亚方舟实验室首席科学家刘群主持的CNCC论坛《预训练语言模型:还能走多远?》上,微软亚研自然语言计算组首席研究员韦福如、复旦大学计算机科学技术学院教授邱锡鹏、百度自然语言处理部杰出架构师孙宇、华为诺亚方舟实验室研究员尚利峰,作为学术界和工业界在这一领域的代表,探讨了预训练语言模型所面临的问题和发展趋势。

刘群是自然语言处理和机器翻译领域的国际著名专家,研究方向包括多语言信息处理、机器翻译模型、方法与评价等。2012 年 7 月之前,刘群是中国科学院计算技术研究所的研究员和自然语言处理研究组负责人。2012 年 7 至 2018 年 6 月,刘群任都柏林城市大学教授、爱尔兰 ADAPT 研究中心(前身 CNGL 研究中心)自然语言处理主题负责人。

2018 年 7 月开始,他正式加入华为诺亚方舟实验室,任语音语义首席科学家,主导语音和自然语言处理领域的前沿研究和技术创新,除了语音、对话、翻译、多模态以外,其实验室也在重点布局预训练语言模型。

在论坛中,专家们讨论的话题包括但不限于:预训练语言模型还能给我们带来哪些惊喜?“大力出奇迹” 这条路还能继续下去吗?预训练语言模型还有哪些潜在的突破口?预训练语言模型亟待解决的问题有哪些?在最后的讨论环节,众专家将围绕这些话题进行讨论。

韦福如对现有的语言模型预训练工作进行总结和比较,然后介绍面向自然语言理解和生成任务的统一预训练语言模型 UniLM 以及多语言预训练模型 InfoXLM(演讲内容请观看CNCC回放视频)。

邱锡鹏总结了预训练语言模型目前的一些改进方向,包括迁移方法、知识嵌入、多模态、跨语言、特定领域等。

孙宇分享了百度文心 (ERNIE) 在预训练语言模型方面的技术创新及产业应用方面的进展。

尚利峰主要介绍华为诺亚方舟实验室语音语义团队在预训练语言模型方向上的研究和商业化探索。

以下是论坛全文,AI科技评论进行了不改变原意的整理。

1

邱锡鹏:预训练语言模型的发展畅享

我谈一点预训练语言模型的未来发展畅想,聊聊预训练模型里面还有哪些东西是需要深入思考的。

预训练语言模型的主要架构如上图所示,先把词向量化,然后经过一个上下文的编码器,得到每个词的上下文相关表示,即上下文embedding,最后输入到特定任务的模型当中去预测。

我们现在知道,一个非常好的上下文Encoder能够大幅度简化下游任务特定模型的复杂度。换言之就是表示学的越好,下游任务越简单。

为了得到更好的上下文表示,我们需要思考,要学习一个好的语言表示需要考虑什么因素。

首先从最宏观的认知层面看,语言就是一个符号,在人脑中它代表某种信息。我们需要考虑它隐含的东西是什么?如何把它表示出来?比如如何设计常识或者知识?

第二个就是模型层面,即模型驱动,如何设计出更适合自然语言的编码器。

第三个就是学习层面,有了模型之后,就需要去通过数据去学习模型的参数,即数据驱动。

预训练模型,称之为PTM,即Pre-Trained Models,它有三个主要关键,其一是它的架构设计,其二就是它的数据类型,其三是二者的结合。不同的预训练模型主要区别是这三个部分的不同。

下面简单谈谈对未来方向的思考。

第一是预训练模型的上限是多少?

虽然现在GPT-3已经出来了,但我个人感觉GPT-3不是一个正确的方向,因为它不仅受限于它的任务形态,而且有相当的局限性。我们依然用更大的数据,用更加开放性的架构去推动 PTMs,是不是能够继续往前发展?到底是数据重要还是设计好任务更重要?

Richard Sutton有个观点,AI发展到今天,大部分是靠算力的发展来推动的。尽管我们每个人都会加入自己的一些先验的东西,但最终证明都不如算力的突破来的有效。

第二个是,Transformer最大的问题就是它的复杂度,很难去处理长文档而且容易过拟合。

所以这个模型肯定不是最终形态,一定会有所改进。我们在这方面也进行了一些尝试,比如Star-Transformer,BP-Transformer等。Star-Transformer在两两连接之间加一个中继节点,可以大幅降低它的复杂度。虽然这个模型比较有效,但它在GPU上的性能反而不如Transformer,因为Transformer更利于大块矩阵的计算,这就是目前的现状,但我觉得还是可以往这个方向继续去改进。

第三个就是预训练模型里面到底隐含了哪些知识?

我们要理解一个语言或者一段文本,要分成两方面的知识,一是语言知识,二是世界知识。而目前大家一般认为语言知识是有限的,换言之,我们不需要见过非常多的数据才能掌握语言知识。通过增大训练数据可能大部分带来的知识增长都是world knowledge,但是world knowledge不是一定要隐含在PTMs里面的。

第四个就是任务定向的预训练以及任务定向的模型压缩。

主要目的是为了不让资源成为瓶颈,否则参与研究的人就会越来愈少。所以我觉得小规模、小型化或者任务定向的设计会比较有优势。

第五个就是怎么用PTM。

现在很多的文章都在讨论PTM怎么训练、设计和改进。其实还有一个方向是如何将它用好。其实BERT刚出来的时候,我们就去探讨了怎么用它,然后提了一个 Two-stage和Three-stage的一个knowledge transfer,这个工作发表在CCL上,并获得了最佳论文奖。

另外关于怎么用好,我们可以根据BERT的训练性质,把比如一个普通的文本分类问题变成一个匹配的问题。这种学习范式上的变化在很多任务上都得到了非常有效的验证。

总的说来, Fine-tuning并不是一个参数有效的方法。因为有很多个不同任务,而每一个任务都需要保持一个很大的Fine-tuning后的模型,这样非常低效。因此我们需要探索更有效的预训练模型使用方法。比如用PTMs去做数据增强,用它本身去产生数据,然后用数据去训练新的模型,或者直接把它作为一个外部knowledge,然后做一个结构化的knowledge去查询。

第六个就是可解释性以及可信赖性。

我们有个工作在做BERT-Attack,即将BERT作为一个攻击器去攻击另外一个BERT,因为BERT是masked language model,所以更容易产生和原句类似的欺骗句子。

最后我们引用一句我们古人的话叫“读万卷书,行万里路”。现在预训练模型是做到了前半句,但后半句也非常重要。

2

孙宇:百度语义理解技术与平台——文心(ERNIE)

我这里主要介绍百度在预训练语言模型这方面的工作。我们去年发布了第一版预训练语言模型,名字叫ERNIE,中文名叫“文心”。

我们的工作主要有两大方面:一是预训练算法,在算法方面我们布局了包括基础技术、应用技术、领域技术和拓展技术,对于不同的语言粒度和任务层次构建不同的预训练模型,同时在类似金融和法律等多领域去探索相关行业模型。二是平台,我们基于预训练模型构建成了一个平台,提供给企业NLP开发者使用,助力产业智能化发展。

接下来我介绍一下ERNIE的整体发展历程。在2019年3月,我们发布了ERNIE1.0模型,它在中文上超越了BERT。在7月份,我们发现持续的引入知识对预训练模型有一定的效果,于是又提出了ERNIE2.0。

在11月份,我们将ERNIE进行了开源,为企业开发者提供给基于ERNIE预训练技术的NLP产业化的工具。在12月份,我们在ERNIE2.0的基础上又做了很多的改进,最后在GLUE上获得了第一。

今年1月份,我们在语言生成的领域也取得了一些新的突破。3月,我们基于ERNIE做了SemEval国际语义测评,在情感分析和文本审核等方面都取得了冠军,文心这个工作也获得了中国人工智能学会的优秀成果奖。7月份,我们又在跨模态领域进行了预训练的迁移,提出了ERNIE-ViL,即一个语言与视觉的模型,效果也非常好。在9月份,我们把预训练模型产品化,发布了文心平台,助力整个产业的智能化升级。

第一部分,主要介绍文心(ERNIE)算法与应用。重点介绍几个典型的算法工作和它们在百度的一些应用。

ERNIE1.0是一个知识增强的语义表示模型,它通过把词、短语、实体进行掩码,再去预测,让模型去学习这个知识,这个效果其实很明显,提升也比较大。我们后来也将之扩展到英文上,发现可推广性也是很强的。

七月份的时候我们发现,虽然mask看起来手段比较简单,但确实能学习知识,能预测出丢失的知识,因而我们思考是否能引入更多的类似知识来进行学习。然而我们在进行这项工作的时候发现一个了问题,就是学新忘旧。

所以我们提出了一个比较巧妙的思想,即通过持续不断地学习新任务的方式,多阶段地去学习海量数据,这就是ERNIE2.0核心方法之一。

这里面我们提了三个比较有意思的任务。第一个刚才已经讲过,即预测掩码。第二个是小学语文题,比如说我们让模型去排序被我们打乱了的句子,让模型去学习逻辑关系。这些知识是我们通过人工构建的,比如去掉句子中的逻辑关系词等。

前面的工作都是面向语言理解领域的,其实我们在语言生成的领域也做了一些比较有意思的工作,这也是第三个任务。这个工作跟刚才ERNIE1.0的思路比较像,它核心思想就是逐词生成。例如当我们想到New York的时候,其实是New York两个词是一个整体,因而在生成的时候,是直接片段的生成,即在生成York的时候是看不到New的。而传统的方法是在生成York的时候,再看到New的这种机制。这个技术也在百度内部取得了很多应用。

跨模态学习也是非常热门的一个方向。我们终于能看到NLP技术运用在视觉领域。在这里跨模态任务其实是起一个中间桥梁作用。例如视觉模态和语言模态是两个模态,我们让机器去看一些图像,然后去理解并回答一些问题,以及去做跨模态的检索,这在工业界是非常有应用价值的。

这里我们也延续了知识增强的思路,例如语言维度其实是难以正确预测这个词是什么,所以它必须去借助视觉知识去预测细粒度的语义。

应用方面,预训练语言模型在产业界也非常有应用价值。ERNIE的技术用到了百度搜索、视频推荐、百度地图、小度音箱里等,都取得了很多的不错的效果,这在百度内部已经用得非常广泛了。

以上讲的都是算法方面的工作,接下来再讲讲我们最近发布的文心ERNIE平台。

先从产业的角度去分析预训练语言模型的特点,首先这个技术非常通用,它在绝大部分自然语言处理任务上提升都十分显著;它的使用方式也很标准,通过预训练微调的方式就可以适配应用。所以,我们推出了文心平台,把一整套的预训练语言模型和NLP算法集成到平台里面,然后让企业界的开发者使用我们的平台,能够通过平台Fine-tuning他们自己的模型,定制自己的算法。因为NLP算法的定制需要投入大量人力、物力、财力,但是通过我们的平台去开展工作会降低相当大的成本。我们这个平台自推出来以后,国内大概有2万个的开发者都在使用,包含了金融、通信、教育等行业。

3

尚利峰:华为诺亚预训练语言模型的研究与思考

各位老师同学下午好,非常高兴有这个机会跟大家一起分享我们华为诺亚最近在预训练语言模型上的一些研究和思考。主要是我们最近两年的研究工作,从三个方面来进行分享。

第一点是关于如何做一个更好的大模型。第二点是如何对大模型进行压缩加速,以实现模型的产品化。第三点是我们对未来的一些思考,即如何更好地进行知识的获取。

首先来看一下我们今年ACL的一个模型解释分析的工作。我们想知道预训练语言模型到底学到了什么东西?它是否学到了一些底层的句法结构?

我们提出了一个比较简单的无监督非参的分析方法,首先定义了一个任何两个词之间的影响函数。有了它之后,便可以很容易地得到这样一个热力图,可以算出任何两个词之间的相互关系。之后便可以按照一个简单的算法来抽取出一些句法结构。这种自动抽取的句法结构可以达到和人工设计相当的一个效果,这是非常令人震惊的。当然,我们也可以把它用到下游任务上,发现效果也是非常不错的。除了句法结构,我们还扩展到了文档的篇章结构。

预训练语言模型在抽取句法结构上是不错,那么它是否也学到了浅层语义呢?例如:一些类似语义角色标注的能力。我们在CoQA任务上进行了验证。DistilBERT、BERT、和RoBERTa,是三个非常典型的预训练模型,它们在结构上非常一致,主要的差别在于模型的大小以及训练语料的多少。

最终,我们得出了结论:BERT或者DistilBERT非常依赖于词序的一些表面特征,很多时候并非真的理解了语义。虽然RoBERTa的表现有进一步提升,但它还是不能解决合成语义的问题。

除了更好地理解预训练语言模型,我们在预训练语言模型本身创新上也做了一些研究工作。

我们知道预训练模型非常依赖于预训练任务的设计,刚才大家也提到了概率掩码已经被验证是非常成功的,但是原始的掩码概率是一个固定的值,为什么是0.15这样的一个值呢?

后来我们就假设它服从一个先验分布,如果它是一个均匀分布的话,我们从理论上证明了它其实等效于一个autoregressive permutated language model。

基于这样的一个简单方式,我们就可以把文本生成和BERT这样的理解任务结合起来放到一个模型里面。可以看到无论是在生成,还是分类任务上都有非常不错的效果,和XLNet相比效果上相当,但更加简洁。

获得一个好的预训练语言模型依赖于五个关键因素:即算力、数据、结构、任务、训练。华为诺亚发布了自己的预训练模型,叫作NEZHA。

算力是非常重要的,因此我们也和华为芯片团队进行合作,来训练更大的模型;我们不是互联网公司,没有那么多的数据;模型结构方面,我们做了相对位置编码的创新;在训练任务方面,我们提出了概率掩码,取得了不错的效果。在CLUE总榜和小模型榜上排名第一,后来我们训练了NEZHA的英文版本,在SuperGLUE榜上仅次于T5模型。

我们在工业界实验室除了攀登珠峰,也非常关注落地工作。如何将预训练模型用到我们的产品中?我们做了三个压缩工作TinyBERT、TernaryBERT和DynaBERT。除了压缩算法上的创新,我们还和诺亚AI使能团队合作进行更加底层的加速。

预训练语言模型压缩加速,本质上可以类比为老师/学生的教学场景。老师如何教出好学生?有四个核心要素:老师、知识、方法和学生,也就是我们如何来抽取一些特征函数或者评价函数,让学生更好地模拟老师的行为。

我们知道模型压缩在视觉领域已经被广泛研究,而NLP存在自己的问题。其中一个重要的差异是,除了压缩本身是一种知识迁移外,预训练模型包含了预训练和下游任务微调阶段,本身也是一种知识迁移。我们如何考虑这么多不同的知识迁移?如何在Transformer这种结构上来做更好的迁移?

我们在蒸馏、量化和剪枝上面做了三个不同的压缩技术,分别是TinyBERT、TernaryBERT 和DynaBERT。

第一个工作是我们在去年年初的时候开始做的,当时的情况是大家觉得这个东西很热门,效果也很好,但是能否帮助到我们的产品是有疑问的。

首先基于华为手机助手场景做了一个非常简单的任务,同时做短文本意图分类和关键内容抽取的任务。发现效果非常好,但是在终端和云端的CPU上运行无法满足产品的要求。

我们提出了TinyBERT,两步Transformer蒸馏的工作。在NLP领域DA也非常有用,是屡试不爽的一个技巧。不过当前我们的DA方法不够高效,最近也在进行这方面的改良。我们测了两种结构,一个是TinyBERT-4层,一个是6层。在6层上,我们看到平均值是79.4,几乎已经达到和老师差不多的一个效果。但是在4层上还是有2.5的差距。大家知道,一个瘦高的模型,其实比一个矮胖的模型效果上要更好,但是现实中很多产品不能用太多层。

第二个工作是我们从去年年底开始的,研究怎么来做BERT的量化。我们把蒸馏和量化进行了融合,用蒸馏来引导整个量化过程。这类想法比较自然,在其他领域也得到了验证,但是在预训练领域还是有很多自己的问题。

第三个工作DynaBERT是一个动态压缩的技术,我们希望能够一次训练,多端部署。实际中有很多不同的硬件,针对不同的平台需要适配不同大小的模型。我们在宽度和深度方面做了不同的伸缩,最终得到一个包含多个子网络的超网络,训练好之后,可以根据不同的应用场景抽取不同的子网络来满足我们生产的需求。

如何做到使模型变小的情况下依旧保持良好的效果?针对这个问题,我们对attention模式做了可视化,发现小网络的中间层Attention模式实现了某种功能融合。

现实生产中有许多不同的要求,端的或者云的,得将模型推理做到很快。我们和诺亚AI使能团队进行合作,基于他们开发的深度学习加速库BOLT,实现了不同硬件平台的进一步加速。

下面是我们对未来的一些思考,首先做一个非常简单的预训练模型发展历史回顾。我从两个维度来说,即更好的大模型和更快的小模型。

关于更好的大模型,大家已经做了很多解释分析,在NLP这一块已经非常成功了。那怎么来扩展到其他领域,比如视觉、信息检索和软件工程,还包括怎么来做多模态视觉文本实现更好的视频内容理解。

在更快的小模型研究这块,首先存在一个现实挑战是,很多工业应用仍然部署在CPU或端侧设备上。有一个非常核心的问题,就是不同业务或者硬件平台上,最逼近大模型的小模型是什么?它的结构到底是怎么样的?其实不同的任务还是非常不一样的。

最后一个问题就是 GPT-3出来之后,我们是否就可以做知识的表示和推理了,是否就可以做所谓的第三代人工智能了?

我们回过头来再看一下这个问题,语言是我们研究的对象,那它到底是什么?刚才邱老师讲到有两类知识,一个是语言知识,一个是世界知识。语言的本质是什么?我很喜欢的一句话“语言其实是生活形式论下的世界万物流变”,语言不仅仅是一个序列,其实还依赖于真实的世界,而真实世界又是不断变化的。所以很多知识是非常离散的,要用一个统计模型来表达世界知识还是很难的。

但是不可否认预训练模型已经在语言结构知识建模方面发展到了一个极致。无论如何预训练语言模型还是一种统计方法,因此必然存在“语义盲区”的问题。我们现实中也发现它非常倾向于给出一些安全的预测。

我们再看另外一个问题,即推理的问题。到现在为止还没有一个通用的推理工具。就算Transformer是这么强大的模型,那它是否可以来实现通用推理呢?

我们推理是为了举一反三,是为了建模一种获取新知识的能力。但我们知道人类获得新知识的能力是丰富多样的,不仅仅依靠理性推理,可能还依靠直觉等其他方式。所以用一个通用的GPT大模型来表达知识和推理,还是存在一些问题的。

既然要完全实现知识表达和推理,还有一定的距离。那我们是否可以思考另外一个问题,是否可以通过预训练模型从现有的大规模的文本知识里快速获取知识?换言之,现有的海量文本、图像、视频等已经包含大量的知识,怎么从现有的海量知识中更加准确快速地来获取想要的信息?

4

讨论环节

问题纲要:

  • 预训练语言模型还能给我们带来哪些惊喜?
  • “大力出奇迹”这条路还能继续下去吗?
  • 预训练语言模型还有哪些潜在的突破口?
  • 预训练语言模型亟待解决的问题有哪些?

刘知远:GPT-3依赖超大算力,别说小公司,可能很多大公司也都承受不起。那么这条路还能不能走下去?大家可以畅想一下。

然后就是预训练语言模型可能还有潜在的突破口?它的面临的问题有哪些,有什么样的解决办法?

我觉得目前预训练语言模型应该是NLP一个非常前沿的方向,从很多今年的论文来看,基本上都在和这个相关。

关于未来的发展方向,我认为光“大力出奇迹”可能不行。很多学者都提到:其实我们的大脑并不是一个白板,可能是有一些更高级或者结构性的东西。

这一点,也可以从GPT-3的表现上看到,有很多问题它会乱答。我觉得它之所以会乱答,是因为它没有从这么大规模的数据里面学会所谓的抽象思考。

我本身是做知识图谱的,我觉得未来自然语言深度理解的发展应该要有知识的支持,但可能有的老师会觉得,其实这些知识也可以从大规模数据里面去学。当然这样这是没问题的,不过在我看来,即使要学,也应该有一些更高层的meta knowledge来支持你去学这些底层的知识,然后一层一层地去往上学,这是我觉得未来可能比较重要的一个探索方向。

也就是说“大力出奇迹”或者纯粹“data-driven”的方法,虽然在这几十年已经验证是一个非常有效的方式,不过单纯地把模型规模变大应该不是终极路线。

提问者:如何让预训练模型除了知道哪些东西是常识,是应当知道的,还有哪一些东西是自己没有学到的,不能瞎猜的?

尚利峰:我认为通用AI的发展还有很长的一段路要走。一个很重要的问题是我们下一步该怎么走?

因为知识如此多样而稀疏,而很多时候业务逻辑等是各个公司或者应用场景的硬性规定,没有办法进行统计分析,这种情况很难解决。

预训练模型在语言表示上已经非常成功,在知识表示和推理方面,我们暂且不要对预训练模型过于苛求。

至于下一步工作,我认为重点应该放在如何更好地进行知识获取方面。其实这也是工业界非常关注的一个问题。例如百度或者谷歌的搜索引擎,可以返回可能包含答案的相关段落,并且高亮可能的答案,帮助用户更加便捷地获取信息。

除此之外,我认为阅读理解是非常重要的研究方向。一个有趣的问题是在预训练阶段我们如何去设计一些任务,使得语言模型有动力去学习各种长依赖关系来得到答案。

提问者:如何让预训练语言模型在经过一段时间的训练之后更好地发现各种业务信息之间的不相似性?

尚利峰:问题很好,这也是我们在工业界经常遇到的两个问题。具体就是说如何让模型知道它自己不知道。这实际上是一种边界的问题。

预训练模型无法做到包治百病,因为有很多领域的东西不具有可统计的特性。真实的系统还是需要写不少的规则。我们目前的想法就是去将神经的东西和符号的东西进行融合。目前只是在进行初步的尝试。大家也可以多进行这方面的研究。

刘知远:我稍微也发表一点感想,首先是领域与领域之间的差别特别大。比如有些领域很小,你随便弄点数据就能解决这个问题;而有些领域很大,你多少数据都不够去解决问题。举一个我原来做统计机器翻译的一个例子,中医领域可能十万句对就能基本解决所有问题,但你真正要说医学领域那就不得了了,医学领域无边无际,所以我认为是跟领域的大小非常相关。

再一个就是规则,现在神经网络虽然非常强大,但是规则这个东西还是离不开工业界,比如前些年我们国家的一个高考机器人项目,结果最后他们开发出来的系统,基本上还是个规则系统。所以说真正在解决问题的时候,还是得各种方法一起上,神经网络并不能包治百病。

提问者:由于我们对大脑研究的水平有限,人类也不知自己是怎么在进行决策和推理。但我们知道它是数以千亿计的神经元的一个堆叠。我的问题是有没有可能等神经网络大到一定程度的时候会发生质变?

孙宇:这个问题比较大,我个人觉得应该是不太可能的。因为我们都不太明白人脑是如何去思考的,只是觉得有很多的神经元,而且比我们现在所有模型的神经元都多。

其实关于认知,我觉得还是得让生物学界加入进来去一起研究一下。而现在计算机科学基于一种统计的方法,基于深度学习的方法,本质上还是一种数学。

我觉得现有的神经网络模型,还是去解决某一些他能够学到的那些任务,而它能够学到的无非是语言的贡献。

而为什么它可以在语言的贡献的任务里去提升效果呢?因为它学到了语言之间的模式,比如说词跟词之间的一些相似度、一些搭配。这些知识对于我们现有的这些NLP任务确实有帮助。

为什么对现有的任务有帮助呢?因为我觉得我们现有的NLP任务其实数据规模都不算大。而在翻译里面解决问题的效果不太好或许是因为数据量的问题。比如百度搜索在搜索相关信息之前,就是用大数据去训练相关性,使用用户的反馈去学相关性。所以我觉得与其说“大力出奇迹”还不如说“大数据出奇迹”,当然也加上算力。

接下来我谈一谈自己的感想。

我觉得我们可以去更多地研究为什么预训练模型变好了,因为这样才便于我们更多的去指导怎么优化这个方向。而现在的所有的思路都是人是怎么想,人觉得我们要加知识,那是因为人自己觉得要学了知识才有用,这是从人的认知上角度去讲的。

而在过去的很长一段时间,整个NLP的研究都在做建模,都在做针对任务的,基于下面大数据怎么做语义表示,这块其实一直没有这么研究。为什么现在通过这种Transformer加这种预训练模型就好了?这个事情我觉得其实是因为工业界还有一些限制,但学术界可以多研究。

然后再讲一下“大力出奇迹”,例如GPT-3。我们发现算力扩大了以后,确实表现会很不一样,我也比较认同。我们也发现其实你在不同的算力下,你得到的结论不一样。这个是我们工业界可能会去做的事情。那么从预训练模型上,我们也想探索一下,到底做到多大,能够效果还能够有多大的空间,这是我们后面想去解答的问题。

最后就是跨模态,我觉得NLP现在把自监督的方法从传统方法中提出来以后,确实能够帮助视觉,我觉得未来视觉可能会做一些突破,因为视觉大部分的任务都是基于一个标注的大规模数据去预训练模型。这种大数据自监督怎么去用?我觉得这个方向肯定会有突破,可能会带来别的领域的惊喜。

自由提问:预训练模型在短文本有很好的效果,但是一旦碰到长文本,尤其是图文交互的时候,就很难得到一个好的结果。想请问老师们我们应该如何去处理长文本?

刘群:长文本与短文本相比本身就会更难。这是一个客观的现实。由于长文本蕴含有更多的语义信息,在运行过程中也更容易丢失语义。由于Transformer的时间复杂度是句子长度的平方,如果模型复杂度能够降低到线性的话,这个问题可能会好处理一些。现在已经有一些这样的模型,但在真正的困难的问题面前还没有体现出它的威力。

邱锡鹏:我补充一下,如果从解决问题的方向上去思考,可能有很多工程性的方法,最简单就是你用一个层次化的结构。

孙宇:我想问一下咱们在座各位,试过GPT-3吗?有人有什么感想吗?

刘群:据我所知国内学者还没有人获得GPT-3账号。

转载自公众号:AI科技评论 作者:戚路北 本文经授权发布,不代表51LA立场,如若转载请联系原作者。

本文经授权发布,不代表51LA立场,如若转载请联系原作者。

更多互联网行业动态>>请关注微信公众号“我要啦统计”(微信ID:Analysis_51la)

51LA网站统计V6

51LA与500位站长联合打造全新一代网站统计工具