来源:立委NLP频道
图灵测试的实质就是要让人机交互在限定时间内做到真假莫辨。玩过GPT3的同学们都清楚,其实这一点已经做到了。从这个角度看,图灵测试已经过时了。区别人和机器,需要寻找其他的标准。
今天就唠一唠正在风口上的预训练语言大模型。大模型标志着NLP的新方向。这是只有大投资或大厂才能玩得起的游戏,目前推出了30多款大模型。咱们先从 GPT3 谈起。
GPT3 是 OpenAI 推出的自然语言生成模型,是语言超大模型潮流中的比较成熟的一款。生成模型擅长的应用领域主要在人机对话的场合。最为人乐道的是它的“善解人意”,貌似可以听懂人给它的指令。这就是所谓 prompt(提示)接口:人不需要编程代码,而是可以直接通过自然语言的提示和样例,告诉它想生成什么,无论是回答问题、机器翻译、生成对联还是聊天,它都蛮擅长。可以说,GPT3 的 prompt 已经部分实现了白硕老师所说的 NL2X (至少在任务X是语言生成类的场景)的闭环。
自从 GPT3 发布以来,有很多令人惊艳的表现被用户录屏在网上流传。已经形成了用户粉丝群体了。当然很快就有人找到某个角度让模型露怯,表明模型并不真“理解”背后的逻辑。但这并不影响还有很多看似 open-ended 的语言任务,它真是听了就能做。
例如,有人要它就某个话题帮助写一篇英文文章。
这可算是流畅自然的对话了,听懂了似的,虽然还没有去具体执行任务 lol 接着用户重复这个要求,它果然就立即执行了,文章写得好坏再论,人家反正是听从了指令,跟个切身小蜜似的。
因为是生成模型,所以人机交互的时候,它的应对具有随机性。有时候让人惊艳,有时候也会露怯。但交互本身总是很流畅,给人感觉,通过图灵测试已经不在话下。
老友说这不过是噱头。我不大同意。噱头是人为的,模型并不懂什么叫噱头,也不会刻意为之。当然也可以说是测试者挑拣出来的噱头。不过,好在模型是开放的、随机的,可以源源不断制造这种真假莫辨的人机交互噱头。在知识问答、翻译、讲故事、聊天等方面,就是图灵再生也不大容易找到这一类人机交互的破绽。又因为其随机性,每次结果都可能不同,就更不像是只懂死记硬背的机器了。机器貌似有了某种“灵性”。
再看看 GPT3 模型中的中文表现。
词做得不咋样,尤其是对于大词人辛老,他老人家应该是字字珠玑。但这里的自然语言对话,模型对于自然语言提示的“理解”,以及按照要求去做词,这一切让人印象深刻。这种人机交互能力不仅仅是炫技、噱头就能无视的。
当然,现在网上展示出来的大多是“神迹”级别的,很多是让人拍案叫绝的案例。生成模型随机生成的不好的结果,通常被随手扔进垃圾桶,不见天日。这符合一切粉丝的共性特点。但慢慢玩下来,有几点值得注意:
1. 有些任务,靠谱的生成居多。例如,知识问答几乎很少出错。IBM沃伦当年知识问答突破,背后的各种工程费了多大的劲儿。现在的超大模型“降维”解决了。同时解决的还有聊天。
2. 随机性带来了表现的不一致。但如果应用到人来做挑选做判官的后编辑场景,则可能会有很大的实用性。以前说过,人脑做组合不大灵光,毕竟记忆空间有限,但人脑做选择则不费力气。结果是好是坏,通常一眼就可以看出来。结果中哪些部分精彩,哪些部分需要做一些后编辑,这都是人的长项。人机耦合,大模型不会太远就会有实用的东西出来。例如辅助写作。
3. 超大模型现在的一锅烩和通用性主要还是展示可行性。真要领域规模化落地开花,自然的方向是在数据端做领域纯化工作,牺牲一点“通用性”,增强领域的敏感性。这方面的进展值得期待。
老友说,我还觉得应该在硬件(模型架构上有一些设计),不仅仅是为了lm意义上的,还要有知识的消化和存储方面的。
不错,目前的大模型都是现场作业,基本没有知识的存贮,知识也缺乏层次、厚度和逻辑一致性。这不是它的长项。这方面也许要指望今后与知识图谱的融合。(图谱的向量化研究据说目前很火。)
听懂人话,首先要有解析能力吧。大模型中的另一类就是主打这个的,以 BERT 为代表。BERT 实际上就是个 parser,只不过结果不是以符号结构图表示而已。认清这一点,咱们先看看 parser 本身的情况。
很久以来一直想不明白做语言解析(parsing)怎么可能靠训练做出好的系统出来。按照以前对于解析的理解,这是要把自然语言消化成结构和语义。而结构和语义是逻辑层面的东西,没有外化的自然表现,它发生在人脑里。训练一个 parser,机器学习最多是用 PennTree 加上 WSD 的某些标注来做,那注定是非常局限的,因为标注代价太高:标注语言结构和语义需要语言学硕士博士才能做,普通人做不来。这就限定死了 parser 永远没法通用化,可以在指定语料,例如新闻语料中做个样子出来,永远训练不出来一个可以与我们这些老司机手工做出来的 parser 的高质量和鲁棒性。因此,让机器去做符号parsing,输出符号结构树是没有实用价值的。迄今为止,从来没有人能成功运用这类训练而来的 parsers (例如谷歌的 SyntaxNet,斯坦福parser,等) 做出什么像样的应用来,就是明证。
现在看来,这个问题是解决了。因为根本就不要用人工标注,用语言本身就好。parsing 也不必要表示成显性结构和语义符号,内部的向量表示就好。把语言大数据喂进去,语言模型就越来越强大,大模型开始显示赋能下游NLP任务的威力。黄金标准就是随机选取的语言片段的 masks(遮蔽起来让训练机器做填空题),所学到的语言知识比我们传统的符号 parser 不知道丰富多少,虽然牺牲了一些可解释性和逻辑一致性。
看得见摸不透的中间向量表示,终于靠语言模型与实际原生语料的预测,落地了。这个意义怎么高估也不过分。所以,昨天我把我的博客大标题“deep parser 是NLP的核武器”悄悄改了,加了个限定词,成了:
因为 BERT/GPT3 里面的语言模型(特别是所谓编码器 encoders)才是更普适意义上的 NLP 核武器。我们语言学家多年奋斗精雕细刻的parsers是小核见大核,不服还真不行。
从语言学习语言,以前感觉这怎么能学好,只有正例没有反例啊。(顺便一提,乔姆斯基当年论人类语言的普遍文法本能,依据是:没有天生的普遍文法,单靠暴露在语言环境中,儿童怎么可能学会如此复杂的自然语言,毕竟所接触的语言虽然全部是正例,但却充满了口误等偏离标准的东西。)
其实,一般而言,语言模型只要有正例即可。从语言学习语言的模型训练,通常用对于next word 的预测,或者对于被遮蔽的随机片段(masks) 的预测来实现。正例就是原文,而“反例”就是一切偏离正例(ground truth)的随机结果。通过梯度下降,把这些随机结果一步步拉回到正例,就完成了语言模型的合理训练。语言模型,乃至一切预测模型,从本性上说是没有标准(唯一)答案的,每一个数据点的所谓 ground truth 都只是诸多可能性之一。语言模型的本质是回归(regression)任务,而不是分类(classification)任务,只有正例就好 ,因为整个背景噪音实际上就是反例。
有意思的是,BERT 除了语言的句子模型外,还要学习篇章(discourse)知识,这歌任务被定义为简单的二分类问题,回答的是:两个句子是否具有篇章连续性。这里,没有反例,就自动创造反例出来。语料中任意两个相邻的句子就成为正例,而随机拼凑的两个句子就成了反例。一半正例,一半反例,这么简单的 classifier 就把这个难题破解了,使得语言模型超越了句子的限制。
看看 BERT 大模型是如何训练并被成功移植去支持下游NLP任务的,这就是所谓迁移学习(transfer learning)。
(本图采自谷歌的DL视屏讲座,版权归原作者所有)
左边的 encoder 的训练。落地到 LM 的原生数据,因此完全符合监督学习的 input –》output 模式。到了NLP应用的时候(右图),不过就是把 encoder 拷贝过来,把落地的目标改成特定NLP任务而已。加一层 output layer 也好,加 n 层的 classifier 也好,总之前面的语言问题有人给你消化了。
Transfer learning 也嚷嚷了好多年了,一直感觉进展不大,但现在看来是到笑到最后的那刻了。
未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。
如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”