[BLOG] AGI 未来展望

2023 AI 元年差不多也接近尾声了。回望一下,从年初ChatGPT 的 hypes/vibes 不断刷屏,到各种多模态模型的惊艳表现,让大家有一种 “科技奇点” 已经到来,AGI即将实现的感觉;AI领域欣欣向荣的希望,伴随着就业市场低迷,通胀/经济衰退的悲观环境,让人有一种魔幻的感觉。


LLM 是正确的技术路线吗?

Deep Learning 的成功,真的是可以总结为 “大力出奇迹”。从 AlexNet 开始,到现在的 GPT-4,都是在不断地增加模型的参数量,增加训练数据量,增加计算资源,来提升模型的性能。AI 模型没有实现任何传统意义上的“算法”。没有人知道这些 Model 内部的一层又一层的 embedding mapping 到底是在干什么,但是这些东西叠在一起就是有效果。

这种 “大力出奇迹” 的方法,是不是就是正确的方法呢?我之前一直觉得不是,但是重新想想,不好说。从直觉上来说,AI 模型应该可以 归因(causal reasoning), 可以根据inputs,用一些逻辑的方法 (symbolic representation + formal logic),推理出想要的结果。

但是,直觉上的 “最优解” 大概率不是最好的,尤其是针对复杂系统,因为latent variables 太多了。引用某游戏里面台词:“proper things are usually uncommon”。生活很多你习以为常的事情,其实都是不合理的,但是你不会去思考,因为你已经习惯了,然后下意识的觉得 “合理” 了。这个问题没有答案。“合理/正确” 是一个非常主观的概念。能爬到山顶的任何方法都是正确的,无论你是坐直升机上去,还是铺轨到山顶,然后坐火车上去。


LLM/GPT 颠覆硬件架构?

前段时间经常听人讨论,想用 GPT 模型取代 OS/底层固件,让人可以直接说话来操作 计算机/硬件。这想法从硬件的角度来说 其实挺荒谬的,但是如果抛开技术不谈,也有一些讨论价值

Natural Language 是对世界的抽象,而机器的编程接口 (API, ISA, etc) 是对硬件功能的抽象。两者抽象的Scope 不一样,但是只要在Scope 做一些限制,就可以让两者对应起来。

Andrej Karpathy 最近同样提到了这个想法,他说 LLM is more of an OS than word predictor. 尽管他图的意思其实是说 “LLM是一个 computer system” – LLM/GPT4 是 20Hz tokens/s CPU, Context window 是 RAM, 然后 Retrieval augmented generation (RAG) 是 File System。这个说法是个完美的 market gimmick,距离真正的 OS/PC 硬件还差得远。

反过来想一想,GPT作为一个上层应用,居然要反噬/颠覆 他的底层硬件架构?当然这在现实中也不少见。像最初的 gcc compiler 是用 assembly 写的,然后 gcc compiler 用 C 重写了自己;或者像人从基因中衍生出来,但是最后却要改造基因

当然 GPT 并不是完全一样,因为它本身只是一个 probabilistic token predictor, 而不是一个 deterministic 的编译器,如果有办法把 GPT 的输出“稳定”转化成的底层硬件 protocol (ISA, API,甚至 wire signals),那么这种 “上层应用颠覆底层架构” 的设想说不定是可以实现的。


LLM 的随机性和幻觉

很多人都说 LLM 是第四次工业革命,但是实际上 LLM 更应该是一种信息革命;还有一点非常重要的是,跟其他革命性技术不同的地方是,LLM 的可控性太差。而调节 LLM 可控性的方法 (Fine-tuning, Pre-Training) 成本太高,而且不一定有效。

其实 LLM 和人非常神似了。人每一天都在源源不断的接受 training,自我矫正,然后在“正确”的反馈激励下,不断改进。如此积累 10000 个小时,才能成为某个领域的专家。人在做事情的时候存在大量的随机性,你的大脑 Default Mode Network (DMN) 不断空转,产生杂念和灵感。

作为一个机器,我们不想要随机性。但是需要要创造一个能应对 复杂环境的 AI Agent,随机性是必须的。但是只有随机性还不够,最好还能有一套(基于embeddings的)逻辑系统

但是 LLM 的 re-training 太贵了,即使有self-supervised training 的方法,极大的减少了数据标注量,但是仍然需要大量的计算资源,然后还需要大量的时间。想要像人一样,每天不断的在环境中学习,甚至和其他个体交互学习,目前来看是不可能的。


可控的 GPT

我不认为 GPT 可以完全消除 hallucination,相反的,有 hallucination 其实是一件好事。我们可以考虑 GPT 外围系统的可能性,在更高的层次上,用更可控的手段去减少 hallucination。比方说

一旦有了更高的可控性,更低的训练成本,人们就更有可能(大规模)制造出(便宜的)硅基生命。 这些办法都是在 GPT 的基础上,会不会有更好的 AI 模型?也不好说。

[11/24] 更新,今天刚发现一篇来自Google/OpenAI 的论文做了一样的事 idea 被 scoop 了 lol:“Controlled Decoding from Language Models” https://arxiv.org/pdf/2310.17022.pdf


AI 时代的 Software Stack

传统的 编程语言/编译器/操作系统/硬件架构 的软件栈,是为了解决 “如何控制机器做事情” 的问题。而 AI 时代的软件栈,需要满足新的需求,即 “如何让机器在人的监督下,自动做事情”。这个需求的变化,会导致软件栈的变化。

我们需要新的软件架构,让 AI 根据 “自然语言输入” 生成定制软件,生成的软件可以记录用户使用的过程,然后再次学习,不断改进,自我演化。

现有流行的编程语言,c/c++/rust (system programming) 或者是 python/lua/ruby (scripting language), 都是 imperative language,并且本身的 semantics 距离 natural language 太远。同时这些语言中,Graphic UI 的支持也不够好,很难用来做 “可视化编程”。所以我觉得 AI 时代的编程语言,应该是一种 “可视化编程语言”,同时也是一种 “接近自然语言的编程语言”。

我这段时间一直在设想一种 新的声明式的 DSL,作为 GPT 和传统 OS 之间的中间件,完成各种操作的流程化,自动化


AI 的终极 ToC应用

ChatGPT 已经足够成功,但是他还远没有达到 Google Search 或者 TicTok的高度,无论是从用户粘性,还是从用户注意力的角度来说。就我个人而言,我用 GPT 帮我代写很多东西。但是在用搜集信息的时候,我还是更喜欢用 Google Search,因为 GPT 的输出无法验证真伪,同时没有配图,没有交互UI,复杂概念理解起来很不直观。

还有一个观点,就是 GPT 是一种 “主动型” 应用,相比于 TicTok 这种直接把 “porn” 和 “猎奇” 内容推送到你面前的应用不同,GPT 要求用户主动输入,然后才能得到输出。这种 “主动型” 应用,对于用户的要求更高,用户需要有一定的知识储备。而现实情况是,绝大多数用户甚至都不能很好的用文字表达自己的需求,很多人都用不好 Google Search,更别说用 GPT 了。

怎么样 “把饭嚼碎了,送到用户嘴里,再帮他咽下去”?最好的做法可能是配合 AR 眼镜去自动捕捉当前的场景,用户的 eye movement,甚至 brain activity (e.g., EGG or MRI),然后根据这些信息,判断用户需要什么,然后自动推送到眼前。这样的话用户就不要再绞尽脑汁去描述自己的需求了。所有都是 AI 安排好的,用户只需要 “跟随” 就可以了。