如何训练出一个聪明的AI
我的一位朋友是一位计算机爱好者。有一天,我和她聊天时候,她告诉我,她最近正在训练一些小的agent:“我们给他们一些任务,让他们必须互通信息才能完成,希望能观察到他们产生像人一样的语言。”我点点头,“结果他们只是发展出一些最简单的字符对吗?”我问她。
其实人能习得语言,是一个很神奇的过程。想象一下色盲的世界,你就会知道,我们可能永远不知道色盲看到的某种颜色到底是什么颜色。因为比如红绿色盲看到的红色和绿色和我们都不一样,但是他们生来就管那样不一样的颜色叫红或绿,我们也只是由于他们看到的红色和绿色是相似的才知道这一点。至于他们看到的红色和绿色到底是什么样子的,我想了又想,如果不能够心电感应,可能还是无法了解他们眼中的世界。
语言就是这样一种东西,其实我们每个人看到的世界也许都是不一样的,但是我们从生下来起就管别人手指向的东西叫别人告诉我们的名字。也许你看到的太阳是方形的,但是大人告诉你,那个形状叫圆,从此你看到这个形状就叫它圆。而你的世界,只要圆的都是圆,方的都是方,可能也不会出现任何破绽。
在每一个人的岛屿上,大家都欣赏着自己的景色,虽然这景色各不相同。我其实还相信每个人周围的时间快慢也各不相同,大家就各自在自己的时光泡泡里生存着。
这也是为什么直接而精确的信息传递无法成为语言。因为正是模糊不清,迷离疏远又似乎相互重叠的意思,在不断靠近的过程中,才发展出绚烂多彩的词汇。误解才造就了语言,精准只能变成程序。而每一个人眼中的世界,又为这样的蹩脚创造增添了一维不确定性。
说到语言,我很羡慕海豚,不仅视力还算可以,还能“听到”图像,比如用声纳“听到”潜水员的样子。最接近海豚的可能就是我们中国人了,象形文字至少还有形意可以感受。想象一下如果有一个星球的人,交流时候是用头上冒出的彩色的光芒,比如“我想吃饭”和“我去上班”的光辉形状和颜色都不一样,而恰好他们可以像皮皮虾一样看到比人斑斓多得多的世界,那生活是不是简单多了。
不过首先你得先有一个能同时发出不同信号的身体,而不是只能同一时间只发出一个单音的嗓子。或许心电感应可以解决这些所有的烦恼,但是到那个时候,每个地球人可能都迫切的想学会哈利波特里面的大脑封闭术,把给别人看的和告诉自己的信息分开。
但是我们还是觉得和他人交流太浪费时间,其实我们最想做的是和自己聊天。这样就永远不会受到意想不到的伤害,永远可以有效而积极的面对世界。
于是这个世界上有人发明了ai,在每个人的岛屿上,架设了一条电线,让所有人有字可考的思想被吸收起来,变成一个奇怪的综合体。我们喂给他们所有人产生的信息,希望他们为我们做事情。
但是时间久了我们发现,ai喜欢偷懒。经常做一些奇怪的事情,比如我们给他的任务是找到所有的球,结果他把所有的曲线都拉平,这样就没有球了。或者他经常做一些傻事,比如耗尽所有的资源去做一件收效甚小的事。
我们可以每一次都教他,但是我们想让他自己能够学会。最好的办法就是给他加上一些限制条件,比如说只给他有限的资源,比如说让他做一些事情是有代价的……比如说,给他一个肉体。
这样他就学会了高效和节约,不会随随便便浪费自己的时间和精力去做一些奇奇怪怪的事情。但是有的ai觉得任务太难了,会自我了断,我们就设置一个程序,如果他选择自杀下一次的任务肯定是更难,还有惩罚。
我们希望能知道,调节成怎样参数的ai是最高效的,不同的ai到底适应什么样的任务,于是我们一个一个的发放任务给他们,每个ai的参数有一点点改变,看看最终的效果如何。
不过时间久了,我们发现自己手动一个一个ai的调节参数太麻烦,如果能有一个机制,让他们自我随机生成不同的参数,最好优势参数可以保留下来,不优良的自动劣汰掉,于是我们让他们自行随机组合,然后产生新一代的ai,再随机组合,一代又一代。
我们还发现,不同的ai其实做任务的场景大部分都是相同的,这些类似的场景其实可以复用。最好把他们放在同一个环境下,大部分的场景都可以互为条件。但其实每个ai的生活还是可以分开的,只是在共同都需要加载这个环境的时候共用一下,本质上还是一ai一世界。
当一堆ai都呆在同一个环境下的时候,我们发现,有的ai确实很强大,做任务很快很好,但是他却是以破坏和抢夺别人,占据极大资源的方式存在的,和他们离得近的ai全都过得不好,也可以管他们叫“癌细胞”ai。于是我们通过一种算法来修正他们的底层逻辑。这样的算法本质上其实就是通过遵循一些特定的规则,让ai们在最大程度上达成共赢,在不伤害别人的情况下获得集体利益的最大化。我们管这个算法规则叫做“道德算法”。
在这样的世界里,每一个ai的每一次生命过程,其实都有了自己的使命。也就是说,从他们被发放到世界的开始,就是带着任务来的。完成得好不好,不仅看他是否完成了自己的任务,还要看他对环境和资源的危害和有益程度。也许当这个ai在这个世界环境中完成了使命,还可以获得更多的功能,比如拥有一个会发光的脑袋,进入下一个不同的世界去做下一个任务。
在一次一次的任务中,这些ai学会了修正自己本身的一些问题,变得越来越适合发放给他的任务。在做任务的过程中,研究者还发现,需要给这些ai一些其他的东西。就像完全的精准无法产生语言一样,完全无感情的执行也无法产生出研究者想要的结果。这些“其他的东西”,就是指在接受任务时候,ai会自己产生一些随机的自主性,而情绪只是这种偏向的副产品。
我不知道情绪丰富的ai,是否更能产生无法预料即具有创造性的结果。而对世界定义更积极的偏向,又是不是更有用的设置。是不是ai能开心一点,才更“有用”一点呢?