KOS系列第一篇—— 为什么要做一台个人AI计算机

写在前面

今天要解读的论文是《Personal Autonomous Intelligence Computer》(https://github.com/KMind-Inc/PAIC

这篇先不搞那么硬核的,后面计划再写一篇分析技术细节的文章。

关于论文的核心思想,其实道哥已经在 我们是KMind,志在发明个人AI计算机 这篇文章讲的很清晰了,本文其实也就是对论文和这篇文章的再次解读,如果想更细致的了解,还是建议大家阅读道哥的原文和论文原文。

本篇文章的侧重点在于阐述,为什么要设计这样一套架构?为了解决什么问题?因为但凡提出一个新概念或者是新架构,一定是为了解决某类问题的,如果仅仅是为了提出一个架构而提出一个架构,那想必这种人他做的不是科技工程,而是行为艺术。

那么我们在使用大模型的过程中,究竟遇到了什么问题?

读前温馨提醒:春节已至,陌小北本人东北浓度有升高趋势,预计于2.20达到峰值,如文章中出现含义不明词语,建议查阅东北方言大全。此现象或为小概率事件,陌小北本人会尽力避免,且享有最终解释权。

为什么做个简单的智能客服都这么难?

大模型最开始出来的时候,场面可以说是,锣鼓喧天,鞭炮齐鸣,红旗招展,人山人海~~ 大家想着,ChatGPT太厉害啦,这做个智能客服出来,还不是分分钟的事儿,现在呢,已经过去一年了,智能客服普及了吗?为什么没呢?

因为不可控,这个智能客服说出来的话,你没法百分百保证是人话,假设你用到生产环境,用户问“我这个手机散热太恐怖怎么办?”,客服回一句“亲,这边建议您直接原地爆炸呢”。

要说这种概率大吗?小,非常小。但是只要他有百分之零点零一的概率,你就不敢用,你承受不起它带来的风险。要是友商故意搞你怎么办,真实的商战往往都这么real,毕竟目前的AI还不能替人坐牢。

要问现在的GPT能根除吗?根除不了,因为GPT的本质,就是一个概率模型。当它收到“散热”“恐怖”这些词的时候,你很难保证它会不会关联到“爆炸”。

科学家甚至还给起了一个很梦幻的名字,叫“幻觉问题”。话说在我们东北,但凡多喝个一斤白酒,你就看吧,满大街全是幻觉问题,根本根治不了。用我们东北话来讲,这就叫“满嘴跑火车”,交朋友遇

到这种人你都得慎重,你还敢直接用到生产环境,那我只能说,东北虎都没你虎(备注:“虎”这个词在东北,代表“小可爱”的意思)。
「不可控」「黑盒」这是目前大模型最大的问题,当然还有第二大、第三大的问题,比如上下文长度限制这些啦,但都没这个问题重要和紧迫。

OpenAI的解法

这个问题你看到了,全世界都看到了,你猜OpenAI看没看到?

他当然也要想解法。比如 Ilya Sutskever 去年7月成立的超级对齐团队,致力解决AI的价值对齐和幻觉问题,但是那场宫斗,终是让理想败给了现实。几乎是在差不多的时间,一个老概念被炒出来——Agent。去年6月OpenAI的Lilian Weng在博客中给出了一个Agent架构,试图解决LLM OS的编排和控制问题,现在几乎是被奉为圭臬了,你说有问题吗?按照OpenAI的构图,完全没问题,毕竟怎么他都是稳赚不亏。

但对除了OpenAI的所有人呢?这个架构中最重要的推理模块,是基于大模型的。

那也就意味着,整个系统是建立在不可控和黑盒上面的。现在所有的针对推理模块的增强,包括COT、GoT、ReAct等等,其实都是在做Prompt增强,而Prompt本身你甚至无法确保它真的有效,你也
说不好是在盲人摸象,还是在玄学调参,亦或是心理按摩?

如果不能从模型层面解决这个问题,那对使用者,这就是「不可控」+ 「黑盒」。如果能从模型层面解决,那对使用者就是「黑盒」的。你不会知道模型用了什么数据,怎么训练的,毕竟OpenAI早就变成CloseAI了。

很多想法和点子,你看着好,前景杠杠的,OpenAI看着也好,那就做进自己的原生功能吧,岂不是更好。像不像当年的腾讯?当时GPTs出来的时候,我就写了一篇文章吐槽,其实里面隐晦的表达过这个意思:分析 GPT Store究竟是不是下一个APP Store?是不是普通人的机会?附GPTs构建教程和安全策略

说了这么半天,我终于要回到这篇论文了,上面说的都是,我们在使用大模型的过程中,遇到了哪些问题。接下来就从论文来说,这个方案要如何解决这个问题。

KOS的解法

首先,为什么要按照冯诺依曼的架构体系来设计?对应的是论文的第二部分:Personal Autonomous Intelligence Computer (PAIC)。

因为,我们要做的是一个“可编程的AI”,而不仅仅是“可使用的AI”,也就是,将“推理模块”的控制权交还给使用者,让其可以通过编程来进行控制。

其中每个模块的设计思路,道哥的文章和论文里已经阐述的很清楚,这里暂且不做过多解释,我今天只从开发者使用层面先简单明确几个概念。为了便于大家理解,我用计算机中的概念来做类比,但具体实现细节上还是有差别的。

Native ACT类比计算机中的操作系统的系统调用,比如write()、read()、open()等;System ACT类比系统原生的应用程序,像是电脑里的记事本、计算器这类应用;指令集类比传统汇编指令集,传统计算机有CISC、RISC指令集架构,PAIC也有自己的指令集。

所以对于开发者来说,以前你写代码怎么调API,现在就怎么调Native ACT,是一样的思路。指令集有点偏底层了,其实开发者可以不用关注,就像是你现在写程序,也不需要关注汇编语言,是一样的,但如果大家感兴趣,我们也会将设计理念公开出来,大家一起探讨,共同完善这台计算机的设计。

相比于传统计算机,PAIC有两点升级,一是将操作“数字”变成了操作“数据”,所以指令集的设计会有相应的适配,比如针对数字的操作是加、减、移位等操作,针对数据就是文本扩/缩写,文转图等等。二是要把控制器中的决策模块和评估模块做重。

第二,如何让数据更精准。对应的是论文的第三部分:Data Manipulation,也就是“数据脱水与浸泡”技术。
无论是传统计算机,还是AI计算机,本质都是在做数据的转换,区别只在于对于数据处理的粒度。传统计算机,将输入的数据转为二进制、加载到内存,做数据处理,再转成输出。PAIC将输入数据脱水、加载到元空间、做数据处理、数据浸泡转为输出模态。

具体的脱水和浸泡过程,可能稍微有点抽象,其实本质上是在模拟人的思维过程,我举个栗子,大脑是如何处理“1+1=”这件事的?假设你现在3岁,从来没见过“1+1=”这个模式,首先这个“1”,在你仅有的三岁记忆里,你会联想到棍子、筷子、手指饼干等等你可能之前见过的东西,看到“+”,你可能想到喇叭声、穿白大褂的人(红十字),也可能想到教堂的房子(十字架),这其实就是数据展开过程就是“数据脱水”,但因为你只有3岁,尽管你能联想出很多东西,但还是不够,无法计算这个等式,能展开的维度越多,就能处理得越精准。所以当你能把“1”展开出数字1,把“+”展开出加号,并且把“xx + xx = ”展开成加法这个模式的时候,你才能完成加法这个思维过程,再通过“浸泡”回到原来的维度。

一个人在面对一个概念时,他能关联到的其他概念越多,他的理解就越精准,也就是我们说的这个人经验越丰富,AI精度也是同理,展开的维度越多,进而就会越精准。

关于评估器/决策器、脱水/浸泡更详细的细节,我认为需要单写一整篇文章来阐述,春节期间,陌小北现在已经出现由酒精引发的“幻觉问题”了,下次一定。

写在最后

为什么要做PAIC,以及与OpenAI的Agent方案的比较,我觉得写得差不多了,如果你要选一个,我建议你选KOS,毕竟中国人不骗中国人。

这个时候,没人敢说谁的方案是百分百正确的,哪怕中间过程中错了一两步,我们也会迭代和修正,但只要目标和初心没错,哪怕错了99次,只要不放弃,第100次我们终会成功。所以我用了这一整篇文章,来阐述「初心」是什么,希望大家检阅。相信是非自有公论。

写到这里,我突然很想写一句我很喜欢的水浒传的开篇词,虽然不相关,但是很应景。

试看书林隐处,几多俊逸儒流。
虚名薄利不关愁,裁冰及剪雪,谈笑看吴钩。
七雄绕绕乱春秋。见成名无数,图名无数,更有那逃名无数。
霎时,新月下长川,江湖变桑田古路。

我不知道在若干年后,大家谈论起这轮AI变革的时候,还会不会记得,曾经还有一群人,在所有人在都想着如何尽快商业化,如何快速复制互联网时代的垄断格局的时候,他们在为了互联网最初的“自由、开放、共享、平等”而坚持,在为了打破数据垄断,把数据权还给用户,不惜与这个世界对抗。

2023年11月14日 23:59,终于敲定了第一版指令集和Native ACT,所有人都超级开心,因为我们在做一件超级有挑战,但又超级有意义的事情,然后,我们就开启了和时间赛跑的模式,但所有人都干劲十足,作为一个程序员,我们在设计一台计算机,幸甚至哉!

我不知道会不会成功,但我因身处其中而自豪;我从小喜欢看武侠,我觉得今天,我们一起成为了侠。

所以,你愿意和我们一起,构建这个新世界吗?

欢迎来半个宇宙,找我的星伴一起玩儿,她叫陌小树,她还在一点点长大,如果她乱说话,你可以帮我打打她,但她还是个孩子,可别把她打傻了。