51Testing软件测试论坛

标题: 分享从ChatGPT看复杂性与力大砖飞 [打印本页]

作者: lsekfe    时间: 2023-5-31 14:38
标题: 分享从ChatGPT看复杂性与力大砖飞
错峰聊一聊ChatGPT
  AGI可以说是很多人的梦想,我也不例外。15年从物理系毕业跑到计算机系搞类脑,从一个还原论为主,以简单的公式解释纷繁世界的自然科学,跳进了一个完全相反,从一系列最简单的逻辑门为基础,去创造一个纷繁世界的工程学科,并且作为一个计算机领域的萌新,被一众类脑领域大佬忽悠着去思考工程领域最极致复杂的终极问题:如何创造一个大脑?
  在我一直以来的理解中,是用凝聚态物理里面核心的哲学思想“More is different”,把深度学习相比传统计算机程序强大的能力解释为设计复杂性层面的涌现性。而设想的实现AGI的方式则是进一步把深度学习放到前面传统计算机程序的位置,进一步涌现出更复杂的形态,而人脑可能是超多层级涌现后的超级系统,具体可以看前面这些知乎文章。
  基于这样的理解,我一直以来对于构建复杂系统的复杂性抱有深深的敬畏心,大脑在我的认知里就是一个复杂度爆表的超级系统。其实“复杂性爆表”这种说法完全表达不出我对于大脑复杂程度的认知,就好像说“无穷大”那般听着无感,但你要说“葛立恒数”,虽然还是个有穷的数,但从其定义带来的对于大的震撼确实远比“无穷大”要多得多,大脑复杂程度在我的认知里也是类似葛立恒数G(64)这样的震撼程度,传统计算机程序是我们常规概念的里面的数字,而深度学习则可能是G(1)这种第一个台阶。
  “涌现性”在ChatGPT之后是个非常高频的词,涌现在系统规模上去后会频繁发生,只不过系统规模有非常多的维度。在我当时的理解中,是把描述复杂性(类似kolmogorov complexity)的规模提升作为涌现的维度。描述复杂性的提升是非常困难的,人可以写出来任何计算机程序的kolmogorov complexity都是O(1)的,深度学习是通过O(1)的计算机程序加上kolmogorov complexity为O(n)的信号源(训练数据)才实现了O(n)的设计复杂性,从而涌现出强大的能力。
  基于这样的理解,我在相当长一段时间内对于深度学习高不成低不就的困境解释是我们可能卡在了kolmogorov complexity为O(1)的深度学习模型结构上,需要再来一次涌现实现kolmogorov complexity为O(n)的模型结构,从而实现新的涌现。从这个角度而言,实现AGI无非是重复多次深度学习的十年发展,往上涌现好几个复杂度层级,有生之年还是可以期待的。这也是我对于怎么达到G(64)这种震撼的复杂性从而实现AGI的信心来源。
  当然这些理解非常战略层面了,术的层面基于神经科学对于大脑整体运作方式的解释(当然可能不靠谱)以及深度学习attention结构的对比,在相当长的一段时间内,我对于围绕神经图灵机的整体思路抱有非常大的信心。
  人的学习其实对应的不是深度学习的训练过程,而是inference的一个小步骤,人的一辈子就是一次inference过程,获取输入,提取经验,再接受新的输入,并根据之前提取的经验快速得到结论。“经验”其实就类似于attention机制中的权重,inference过程中动态生成,并用于给其他数据进行加权,而神经图灵机将经验存储起来。
  其实经验的形式可以更复杂,可以是一个multi-stage的加权权重,相当于动态生成的不是attention权重,而是一个新的模型,可以表征的经验会更加丰富。
  此外,更重要的是对经验的深度加工和整理。大脑的宏观工作机制其实就是通过各种感受器收集数据并初步加工(视觉听觉触觉等),并将得到的初步经验放在额叶中,同时和长期记忆中存储的经验进行深度的整合加工,得到一系列更好的经验,最终存放到长期记忆中,并根据经验的使用频次逐渐通过突触生长,固化到大脑结构中。
  所以真正的形态远非神经图灵机那样简单,而是围绕经验向量的各种复杂管理模块,有负责读取的,有负责经验整合的,有负责读写的,也有负责迭代使用经验实现推理的。每一个模块都需要大量idea去填补来获得更好的效果,远不是现在的神经图灵机里一个简单的rnn可以实现的。
  这里面最复杂的模块也许就是经验整合和深度加工的部分,人的抽象能力基本源于这部分,很多动物是没有这方面能力的,而且从一个非通用智能到通用智能的临界点也许就是这个抽象模块。其实人在进化的过程中,进化出可以求解微积分,提出相对论的大脑,对生存率提高并没有太大帮助,但人却在吃不饱穿不暖的原始社会就具有了这样的能力,其实也许只是某些生存相关的技能需要抽象能力,而有了抽象能力,人脑就迅速跨过了临界点,我相信这个技能是语言。
  其实整体上我是非常认同从seq2seq围绕attention逐渐发展出来的形态和人类记忆/经验的高度相关性的。而且对于语言的作用也是非常认可的,虽然从过去AI的发展中,我们知道CNN适合pixel结构的问题,RNN/LSTM/Transformer这一类适合seq结构的问题,GNN可能适合图相关的问题(当然远没有前两个成熟),专用结构做专用AI,这也是过去的一个常态。
  但人类的语言是一个非常强大的漏斗,任何问题通过语言强大的抽象能力都能在语言的体系下解决。这也给了我们做通用AI的可能性,只要能解决语言模型就可以实现从Domain Specific AI到AGI的临界点跨越。只是语言的抽象能力实在是过于强大,过去我始终觉得seq结构上发展出来的那堆模型还是描述复杂度太低了,无法去触及深层次的抽象能力,于是写了在现在看起来非常打脸的话。
  而上面这些都需要几千个公式的idea才能概括全,我们根本搞不出来能用的模型,所以我们现在只能看到gpt这一类参数众多但描述复杂性很低的模型继续给深度学习强行续命。
  嗯,打脸很疼,甚至一定程度颠覆了我对于AGI复杂性的想象。涌现这个词在ChatGPT语境下出现很多,但对应的维度是简单得多,就是模型参数尺寸规模的大。
  原来以为AGI是G(64)这种大数,没想到只是10^999999999这种感官的大数,顿时觉得这已经是力大砖飞就能实现的朴素涌现。怎么说呢,感觉即失望又欣喜,就这?
  仔细想想也是,其实KV Cache就是记忆/经验,经验的整合与加工就是利用KV Cache和新的token算出新KV的过程,只是没想到以为高高在上的抽象能力只在这多层次的两三个矩阵乘之间。
  ChatGPT强大就强大在超强的上下文能力上,能进行逻辑清晰的连续对话,而不在于很多国产模型在demo时候展示的那种提一个问题给出一个看起来很自然的回答,上下文能力就是人类记忆、经验和抽象能力的体现。
  其实我是认为AGI的临界点就在于能不能拥有语言所承载的抽象能力,从这个角度看GPT已经跨过临界点了。
  当然ChatGPT现阶段的缺点可能也在于上下文的长度还是太短了,有时候要进行非常深入的交流需要展开多个子问题进行交流,当第二个子问题达成一致时,ChatGPT已经基本忘了第一个问题的上下文了,因为token长度限制进行了截断。
  相比人脑而言,粗糙吗?很粗糙,人脑把记忆/经验分成了长短期记忆,短期记忆类似KV Cache,把一两周内的输入token进行自回归,得到一系列整合后的记忆/经验,并根据重要程度逐渐硬化到神经突触中变成长期记忆。
  但我们未来需要像人脑那样解决这些更精细的机制才能得到具备终身上下文的AGI吗?可能会需要,OpenAI也正在把Deepmind过去四五年在attention这个维度发的一系列非常超前的文章集成到GPT中来进行这种改进。
  但也可能并不一定需要,在token数的维度上再提高个四五个数量级足够一个对话聊一辈子都不会忘记前面的内容了,这种要求甚至在现有的计算系统上都并非无法想象,这种更长的token序列没准能带来GPT能力进一步的涌现。
  即使这样的模型不够精细不是最优解又如何?GPT已然跨过了AGI的临界点,从人类语言中学到了抽象能力,剩下的无非是力大砖飞和精雕细琢了,这波澜壮阔的工业革命我们已身处其中。






欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2