文 | 鹰钩鼻涕虫
2202年过去了,不知道小伙伴们是否和我一样,绝大多数时间处于迷茫之中,除去其他因素不谈,在最后一个月到来之前,NLP 学界的表现似乎不如前几年那样“精彩”,甚至可说是“寡淡”,翻开会议,满眼望去,可能也是些不痛不痒的报告。
工业界积蓄的力量,却迎来了大爆发,大模型、大数据的加持,让今年迎来了“创作”的大年。既有年中的各家发力,文生图模型大爆发,前有 DALL-E 和 Disco 积蓄力量,又有 imagen、Parti 你方唱罢我登场,而后又有 stable diffusion 彻底点爆了这一领域,席卷了业界,预期也可彻底改变画师的创作习惯。
在年底,NLP 领域也终于迎来了重磅炸弹——ChatGPT,其在可控生成上秀出来的肌肉,也必将给文本生成领域带来重大变革,其核心原因在于,看上去,它有能力生成逻辑结构完整的长文。
我前些天看了符尧大佬对 OpenAI 从 GPT-3 开始,到 ChatGPT 为止,发表的各个模型,及其能力的演进路线,突然好像悟了 ChatGPT 是怎样炼成的,这之中,惭愧的事情有二:首先是我之前一直被误导,认为 RLHF 才是 ChatGPT 看上去这么强大的核心因素。可看过符尧大大的梳理之后,我意识到,我错了。第二是,当我猜想了 ChatGPT 的能力是怎么来的之后,发觉其几个能力来源,大部分是我看不上的,可能就是比较小的点,但是它们的副产品组合在一起,就如此重磅。此时,模型发布已有一个月之久,我才明白这些,只能说,是我格局小了。
那么,再去回首这一年,我发现,其实这一年并不寡淡,只不过先锋们,看上去步子没有前两年那么大,也是因为,这两年我们对大模型也更加清楚了。却不想,他们也是在攀登更陡峭的山峰。所以,这篇文章,带着这种心情,以我极有限的视野,再看一下这一年,工业界这些比较重磅的进展。
Jeff Dean 大佬在去年下半年,发表了 Pathways 架构,其基于 MoE 的思想,从工程学的角度,提出了宏大的设想。去年萌屋的文章 《谷歌称之为“下一代 AI 框架”, Pathways 真有那么强吗?》也从不同的维度,分析了 Pathways 可能 work 的原因。
彼时,我听到过一种声音,就是介绍 Pathways 那篇 blog,里面没有写任何的新东西,甚至有“假大空”之论调,大有这些年工业界不分场合地去追求“impact”,却失掉了最基础的品质之感。的确,Pathways 的每一个部分,都不是新的,但同时,Pathways 又非常“工程”——充分利用、有机结合已有的方法,做出来好用的东西。
这样的工作,我们喜欢叫它“缝合怪”。通常,我们说缝合怪,都是带有贬义意味的,但我认为,工业界,无论是想法上还是实现接口上,能够缝合出好用的东西,绝对是不可多得的好能力(甚至可以说,我们其实一直站在前人的肩膀上。每一个行业技术上的开创者,首先得是行业内已有技术绝对的专家,一味追求创新,可能万分之一是天降猛人,其他的都是民科),从这个角度上来讲,Google 绝对是个好“裁缝”。
而可笑的是,当 Jeff Dean 发表的另一篇论文,方法上有不错的创新性的时候,却又有一群杠精揪着一大堆指标中的一行,说“花了这么多钱就为了个这?”,完全不考虑文章中的方法部分,以及其他的指标。
但可悲的又是,树大招风,强如 Jeff Dean,还是得卷榜单啊。
看上去,Pathways 的确在 Google 有着不错的地位,到了今年,Google 持续发力,PaLM 模型作为第一个展示肌肉的工作,发表了出来,看上去也早早地给今年的榜单画上了一个句号。
当然,PaLM 也不是终点,今年10月,在一篇名为 Scaling Instruction-Finetuned Language Models 的论文中,Google 又上了新的魔法—— prompt。
正式介绍之前,请允许我引一个题外话,介绍第一波被我忽视掉的工作。
其实,我一直是 prompt 爱好者,也是我工作岗位上第一批应用 prompt 的人,也曾经针对 prompt 做了很多的探索、解释和分享。但也限于工作,我使用 prompt,也仅止于关键字 prompt,或称作完形填空 prompt。Prompt 后续的各种进展,都不在我关注范围之内。
指令微调
而其实 prompt 也一直在演化,去年,就有了 instruction tuning,即把针对于上下文补全的 prompt 输入,改变成带有目的性的指令输入,这样就能将原本受限于 language model 的任务形式,扩展成为无限的任务形式。我们不必要去纠结于如何将任务转换为语言模型任务,而直接莽上去就完了。同时也因为语言模型的基础能力,相似的自然语言输入激活的参数组合也是相似的(这也成为了 prompt 本身的一大特性),而不同的任务,其指令也会有较大差异,这就给同一个模型,通过指令微调做多任务,提供了理论上的合理性,也非常符合我们对多任务的设想,即目的相似的任务互相增益,其他的任务互不影响。
同时,现在模型参数规模、预训练数据规模,都发展得足够大,绝大多数任务的指令和回答,我们都可以认为预训练数据集里面也已包含,而巨大的参数规模,也给上面的理论足够的操作空间。
思维链
除此之外,今年1月,另一篇名为 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 的文章,又提出了一种新的 prompt,思维链 prompt,其目的是让语言模型解决复杂推理问题(如数学题)。首先,早先的诸多尝试中,我们都看的出来,简单的语言模型训练目标,实际上根本不可能让模型像模像样地模仿逻辑推理能力,GPT-3 在这方面确实就比较拉胯。
思维链则是,训练目标不仅仅是问题答案,同时还有问题求解的过程(即思维链)。然后,神奇的事情来了,模型在推理(比如数值计算、符号推理)任务上,的确有了不错的提升,甚至在分布外数据上,都表现得不错。也就是说,大模型的确通过思维链,部分 get 到了一些符号逻辑的规律。Google 的 Minerva 也证实了这一点。
理性分析一波,每一个问题的思维链中,去除了共性的那些词之后,真正差异化的那些 bias,的确是从归纳角度上,体现了符号规律的,被大规模数据预训练后的语言模型,自然很容易找到思维链之中的 bias 部分,也就是真正需要训练的知识,而把其他的东西卸载掉。又有大量的训练数据做支撑,知识的空间又相对有限(简单数值计算,和简单的三段论推理问题),靠着归纳,我认为的确能让统计模型 get 到简单符号逻辑。
但是,哪怕我承认了上面那些,我也绝不认为现阶段的大统计模型就已经具备了完整的复杂推理能力,原因还在于,想要枚举所有的符号规律,规定所有的边界,在数据构建上是有极大困难的(单是数值计算,就已经难以枚举了)。哪怕大模型似乎已经在挑战问题空间更大的中学数学,甚至奥数了。
这篇文章我是属实忽略了,不过老实讲,哪怕我当时看到了,但当我看到复杂推理这个东西的时候,也可能嗤之以鼻,最终与这个工作错过,人有的时候就是要靠打脸来成长。
不过思维链也是需要模型参数足够大,才能够发挥功力,根据现有已发表的工作统计,至少 62B 参数才能让思维链更优。
哦对,上述两篇工作,也是 Google 发表的。
而同时借助着语言模型和 prompt 的特性,如果我们准备了超大规模的指令集,可以覆盖绝大多数任务,甚至绝大多数对话场景,那么是不是说,我们对模型提出的任何一个指令,哪怕模型没有见过,但是大概率也能从已训练过的指令中找到相似的,从而保证模型对任何任务、任何问题,都有训练调优后的回答了呢(这个想法的起始是一个名为SPoT的工作:SPoT: Better Frozen Model Adaptation through Soft Prompt Transfer,我也相当推崇)?
Google 给 PaLM 加持的魔法,就是这个,将大规模的指令集和思维链,统统加到了 PaLM 的训练中,训练出了一个强劲的小样本模型,FlanPaLM。
说到这儿,不知大家有没有发现一种既视感,大规模指令集训练,好像 ChatGPT 干的也是这个事儿呢?不妨就顺势再浅聊一下 ChatGPT 这另一个优秀的裁缝吧。
聊之前,我还是先表明一下态度:我认为 ChatGPT 绝对是生成领域的重大变革,甚至可能改变以后做生成的范式。但我绝不认为它在NLU领域能引起那么大的波澜,毕竟我们看得到,目前它还是有各种各样的疯言疯语,实际也是,一带就歪(《ChatGPT进入百度“弱智吧”后,疯了》《ChatGPT惊人语录大赏》)。
▲实际上,这几篇论文都不存在,感谢@天于刀刀提供素材首先我们要搞懂,它带来最核心的变革是什么?它的回答中,看似有较长思维链,看似做了很严谨的推理。可以说,目前的 ChatGPT,可能就已经是一个八股文大师了。但是,它生成的东西,也不能细究。甚至我可以说,ChatGPT 目前完全是没有推理能力的,它只是在模仿推理,我也不认为大模型具备了思维链,它顶多有了形式思维链。其具迷惑性的是,它的确成功模仿了一步步解决问题的过程(虽然其实通过上下文训练,生成模型也很容易模仿文风),并且做到了不“一眼假”,因为它具备了长距离依赖,可以记住提到过的东西是干啥的,然后准确的在下一个语言环境里面复用它,同时也能够做到在一个 session 里面,完成多轮对话。
哇,这可是对话系统,或者生成梦寐以求的能力啊!
可是,这个能力是从哪儿来的呢?我曾一直以为 RLHF 是这种可控生成的核心来源,而看过了符尧大佬的分析后,我才明白,其很有可能来自于代码生成。这个结论是由符尧大佬提出,他提到,code-davinci-002
(即Codex)之后的模型,似乎开始具备了思维链,再之后的大规模指令集微调,才形成了 ChatGPT(篇幅原因仅部分总结,强烈推荐阅读原文,非常详实精彩)。
我认为,这个结论绝对是 make sense 的。因为编程代码,存在大量的、统计意义相当显著的长距离依赖数据,即——变量/对象名。同时,又有作用域,又同时,高级编程语言是更接近于文本的,这给后面迁移到自然文本上提供了一些便利。这给了模型超大量的提示——某一个东西这里定义,下面要用。且上下文环境里,也大体约束了其语义。相比于自然文本来讲,程序的空间是相对集中的,自然让模型更加容易地 get 到这个能力。自然文本不仅仅空间很大,没有很明确的强调信号,且经常会使用别名、简称,命名之间的关系是多义的,自然相对难上不少。
当然,代码形式化地写出了思维链,面向对象的工程则有更加复杂的拆解、组合过程,供模型可以模仿。
不过我在和领导讨论这个问题的时候,领导问了我一个问题:拿代码训练到的能力,是怎么迁移到自然文本上的呢?
刚刚提到的高级编程语言更接近于自然文本,提供了一部分便利。而更大的杀器则是,我们前面提到的,大规模指令集训练。Codex 的升级版本其实是已经加入了指令集训练了,这个时候加入的指令集已经是人类指令了,且代码数据相当庞大,其中所能拿到的指令其实也异常丰富,同时,还记得前面提到的吗?这些指令定向激活的那些参数,已经提前被强化了长距离依赖,和形式思维链了,那么,同样用指令集训练的方式,训练它去生成自然文本,是不是它就更加容易 get 到自然文本中的长距离依赖了呢?又得益于语言模型训练得到的语义理解能力,那么,它生成出了看似有复杂推理的结果,是不是就合理了?
那么 RLHF 又起到了什么作用呢?其实更多起到了约束模型的行为边界的作用。
实际上,正如我认为现阶段统计模型不可能真正掌握符号推理能力一样,我对 Codex 也一直是嗤之以鼻的,现在我仍旧认为统计模型不具备真正写代码的能力,毕竟 copy 和拼凑不能叫编程,何况很多代码不能 run,或很多代码有漏洞,稍复杂的功能也未必能搞定。所以,ChatGPT 能力形成的每一个工作,我都会忽略,但它们的副产品,组合起来却有了这么大的威力,是我格局小了。
本文关于 ChatGPT 的部分观点及绝大部分资料来自于符尧大佬所写的文章 《ChatGPT的前世今生》,我是站在巨人的肩膀上,妄谈自己的见解。
提到2202年,怎么能不提到文生图呢?
当然最大最火的那个进展,是 stable diffusion,它针对现有的扩散模型做了大幅度的效率优化,使得生成高清图片的资源消耗大幅降低,文生图宣告走入民用,算是彻底点爆了这个领域,形成了统治地位。
不过我想提名的是两个目前没有公开的文生图模型:imagen 和 Parti。
Imagen 提到,其主要改进是在扩散模型的基础上,文本处理的那个部分,使用了大规模预训练语言模型。曾经我对文生图(或者多模)主要的担忧其实是,多模态的数据实际上是对不齐的,同样的一个意思,在文本和图像两端,实际上都是无限对无限。更何况,艺术创作上,每每有相对意识流的主题,对应上了具体的画面,这其中又有我们称之为“意境”的东西。意境这个东西,就更是各人有各人的理解,最终产物上更是千差万别。
但是,模型接受的是这些东西,人类接受的也是这些东西啊。人类能够容易地理解、建构,将意识流转换成画面,将画面吟诵成诗词。正是因为学过的东西,在我们大脑里的认知层,被编码成了原型,通过原型去发散,则可以想象出无限的画面或描述。也就是说,无限的感知信号,在认知层则做了归组编码,且有注意力去做更加细致的事情(比如去认画面中的每一个主体)。
而我一直认为,图文对齐数据是远远达不到,让一个不具备一定文学素养及美术素养的人学到这种能力的,何况模型。所以当时虽然 Disco 已然是风生水起,我仍觉得其实最多也还是只能做到玩具。随后,imagen 出现了。
引入大规模语言模型做语义理解,就可以看作,在自然语言这一层,引入了抽象编码,至少,解决了一端的编码问题。虽然我后面看到,语言模型带来的泛化性似乎也导致了一些问题(《我们追求的泛化,竟是一条死路?》),但总体来讲,是利大于弊的。
Parti 和 imagen 双方团队其实后来也说,两边是互相借鉴的。所以也可以认为,Parti 可能也直接缝了语言模型进去。
不过,Parti 不用说了,Pathways yyds!且是看到了用 Pathways 搞多模了。
可惜这两个东西不开放,我在这里吹得天花乱坠也有可能直接打脸。
以上,是这个不太平的一年,给我留下很深刻印象的工作。
也看得出,每一个工作其实都能找到或久远,或近来一直延续的前人工作,或向前迈了一步,或组合了若干工作,最后做出了卓越的成果。如我一直所推崇:充分利用已有成果,有机结合,科学、高效地缝合出一个漂亮的工作,是一件非常酷的事情。我列举的几个工作,各个单体都没提出什么变革的修改(除了 latent diffusion),更多的都还是有机的组合,其背后的团队,都是优秀的裁缝。
其实,务实地讲,工业界可能更加需要的,就是裁缝,而非硬凹出来的创新。举一个不恰当的例子,公式相声之后,郭德纲在一次采访中说,每一个行业,都会有改革,有突破,但问题是,这些改革的人,他得是干这个的,且是最顶尖的那一种人,你给人修鞋修了十年,这天看不惯了说你要来改革相声,你看他们打不打你吧。
也就是说,变革、突破、天降猛人一样的创新,其应当是对已有东西充分了解且利用的基础上产生的,而非凭空而来,所以我觉得应当打开自己,去接受,尤其得了前面所说的教训之后,更有此感触。啥也没了解,自身也没有过成功经验,奇思妙想也没work过,就胡扯出来的创新,要么就是民科,要么,可能几十年前,就已经被大佬们验证过了,到头来,是吧。
上述吐槽,也是因我看不惯些什么,有感而发,夹带私货,若误伤了您,深感抱歉。
2202年是非常 down 的一年,3202年看上去也注定不太平,希望我们都能够平安吧!
最后,诸位,新年快乐!开工大吉!
后台回复关键词【入群】
加入卖萌屋NLP、CV、搜推广与求职讨论群