生成式人工智能与思维成长的游乐场
作者: 陈凯
摘要:对于算法和程序的初学者来说,无论是字符的还是图形化积木式的编程环境,都是在预设规则下进行定制式的创造,为了能够实现对预设规则框架的超越或逃逸,需要在教学目标的设定中,阐发对功能之所以能够实现的思维的意义的追求,而不只是对功能达到的追求。作者倾向于相信,人对于现象能够有一种超越机械处理语言符号数据的面向事件本质的理解能力,而生成式人工智能的处理结果不能涵盖人的智力成果。抽象符号是生成式人工智能得以处理数据的前提条件,如果用虚拟游乐场来类比绘画过程,借用德勒兹分析绘画提出的图形表概念就可以发现,人的抽象过程蕴含了推动抽象对象得以生成的交互式的动态力量场。生成式人工智能可以高效地处理抽象对象,提高了交互式生成抽象对象的效率,因此能够成为学习者思维成长的良好平台。
关键词:生成式人工智能;图形表;德勒兹
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)23-0000-05
Playground可以翻译成操场或游乐场,但似乎“游乐场”一词更契合为孩子提供生长创造的环境的寓意。有很多为初学者设计的在线学习环境被称为Playground,如Python Playground、Java Playground、C Playground,其实质是在线的程序解释器或编译器。对初学者来说,程序语言代码似乎是等待装配的过于基础的材料和元件,上面的这些Playground像是附带着复杂使用说明的空白图纸或场地,与其说是游乐场,不如说是沙盒(Sandbox)。当然,可以设想初学者采用这些基础材料和元件进入到“玩”的状态,他们尝试不同的符号组合,观察运行结果,尝试找出规律,理解程序代码的含义——“玩”比单纯的“学习”的技术难度还要高。某些在线的Playground提供的更简易的“装配”环境,看上去更像是能够“玩”的游乐场,如Circuit Playground、Turtle Playground(用Logo语言绘图)、Make Code Blocks Playground。可以发现它们的共同点:提供了便于使用的组件,隐藏了组件内部功能的实现方式——虽然这样做牺牲了一定的灵活性,但玩家和组件交互的方式是有限而简单的,组件之间可以较为轻松地拼接起来,拼装后的效果是即时可见的。对比现实中器械设备预先配备好的游乐场,计算机软件具有提供各种各样的虚拟游乐场——时髦一些的称呼可以是元宇宙的潜力,其中的器械设备既可以是预设的,也可以由玩家自行定制。不妨设想两种不同的定制:一种是组合现有器械设备,使之实现某个新的功能;一种是直接对器械设备进行改造。对玩家来说,后者情况在现实世界中是相当少见的,但数字化的虚拟环境提供了这样的可能性。
预设规则下的定制
在图形化的积木式编程环境中,各种功能的代码积木块已经提前准备好,学生按不同方式组合积木,就可以控制屏幕中的角色——可能是一只猫或熊猫——实现跑动、跳跃、躲避敌人或其他行为。针对某特定目的,组合不同的积木使之成为一个自制积木,在此类编程环境中是可以实现的,如将控制角色的加速起跑——跳跃——落地的一系列行为,定制成为一种自制积木,自制积木对应着程序语言中的自定义函数或过程。学生的任何自制积木的行为,都是利用已有的代码积木块相互嵌合成为一个更复杂的具有某些特定交互接口的积木组,自制积木的行为可以相当简单,但复杂度却上不封顶,单纯从理论上说,基于自制积木实现一个模拟真实物理环境的虚拟现实是存在可能的。
但上述的定制行为总是处于预设规则下,尽管图形化的积木式编程环境并不明说所谓的预设规则,但编程环境的实际操作状况指向了规则本身。根据已有的代码积木块,角色能“更换造型”“改变方向”“行走”,将这些已有的要素组合起来成为“跳跃”,这当然可以看作是一种创新,而且体现出抽象和封装的思想,但这是在预设规则下的创新。编程环境的设计者,而不是运用环境的代码设计者,拥有定义规则的权力,他们通过语法、语义或积木形状、积木连接方式等要素,构建了整个创新环境的“框架”,这个框架提供了一种幻象,即通过移动和造型变换来实现“跳跃”,这自然违背物理现实,但却是模拟跳跃的便捷形式,对应鲍德里亚所说的拟像对真实现实的遮蔽。需要补充的是,既然基于自制积木实现一个模拟真实物理环境的虚拟现实是可能的,那么,使角色的跳跃基于如同物理现实的底层规则来加以实现,也完全是可能的,但在绝大多数情况下却是不必要的,这让人想到鲍德里亚所说的一种危险:符号成为独立的创造物,不再源于自然或任何现实,而是思想与精神的物化……不再能让人想象现实。[1]设想一下,要求学生利用生成式人工智能完成某个编写代码的任务,在此过程中,符号的意义不再需要学生来理解,所有的创造工作都在基于符号的一套问答模型中完成,这看似是人们在自由地表达自己的意见,但人本身无法对答案进行沉思,其实质上是在“问/答”模型本身提供的信息区间内,表达非我的看法……一切都处于模型范导的控制之下。[2]
追求意义的定制
为了能够实现对预设规则框架的超越或逃逸,需要阐发对于功能达成过程中的思维本身意义的追求,而不只是功能达成的追求。考虑三种不同的任务:任务一是利用生成式人工智能,按K近邻算法对测试样本进行二选一的分类;任务二是利用生成式人工智能,构造一个训练集,使得其对于某测试样本在K取值不同时,分类结果也不一致;任务三是要求生成式人工智能设计一个方案,能够在积木式编程环境中,通过角色的变化将K近邻算法的分类过程演示出来。任务一的目标是分类任务的达成,主要考虑的是功能的实现;任务二的目标是对分类任务达成过程本身进行探究,面向某种特定的思维方式;任务三则需要在对思维方式理解的基础上,探索基于这种方式解决问题方案的多样性,这就是对意义的阐发。对于上述三个任务,生成式人工智能在不同的方面,对人的学习产生了帮助。
目前,生成式人工智能还较难直接产生积木式代码,但它无疑能提供多种方案,而正是在对生成式人工智能提供的方案的考察和思考中,可以看出从模型提供的信息区间逃逸的可能性:几乎所有的方案,生成式人工智能都提到了K近邻算法中关键的一步——对样本之间距离的测量,尽管它还特意提到在积木式编程环境中测量距离是比较麻烦的,但它仍然没有绕过测量距离这一步。可以发现,生成式人工智能被“困”于正确的算法描述之中。
一般来说,人对现象能够有一种超越机械处理语言符号数据的面向事件本质的理解能力。举例来说,在积木式编程环境中用K近邻算法实现分类,可以采用一种简单而独特的方法来替代测距:将样本都设计成圆形的角色,然后逐渐放大测试样本的大小,使其“吞噬”测试样本周边的特征点(如下页图1)。被“吞噬”的p样本和r样本的数量,以及被吞噬样本的总数也就是k值,很直观地由图形和数字共同显示出来,可以将其称为饕餮法。这当然不是一种通用性的方法,它只有在积木式编程环境的二维屏幕中是有效的,正是因为人能够在实际运用中产生出对积木式编程环境独特的理解,而不像生成式人工智能那样,仅对数据本身进行分析和推理,那么就可以说,人的创造思维从某个预设框架中逃逸了出来。
然而,仍然存在这样的问题,只要所谓的创新方案变成机器能够获取的文本,生成式人工智能也就可能很快地“吞噬”每一种逃逸式的创新方案,并在随后的提问、回答过程中将已有的各种方案显现出来,那么,生成式人工智能是否阻断了人的创新意愿?不妨设想这样的情景,某人的每一个自认为新颖的想法,都已在人工智能给出的参考方案中,这该多么令人沮丧。但正如戴维·多伊奇所说的,对于一个虚拟现实的生成器来说,虽然它能营造一个基于它全部本领的环境,但仍然存在无穷多它所不能营造的环境。[3]无论人工智能给出多少种创新设计,这些所谓的创新设计都不超出某个固定集合,虽然这个集合是无限大的,但在这个集合之外还存在着无限多元素和集合。最简单的原因是,人们可以基于已有集合元素构造出不属于该集合的新的元素,而之所以机器的创新设计无法超出固定集合,是因为机器处理的数据本身来自现实繁杂事物的某一方面的抽象,而人在抽象过程中,可能会将独创的意义投注到抽象过程和抽象对象中,换而言之,人的抽象过程本身可能是不可计算的。
考虑有这样的任务,让角色从左至右跑过屏幕,当角色撞到右侧墙壁或其他东西时,角色穿越到原来的起点继续跑动,此时可以引入一些角色或墙壁的小变化。如果同时有几个角色开始这样的跑动,那么角色的行为就可能结合人的意愿成为不同的抽象对象。例如,为角色定制不同的输入,就可以让这个游戏成为加法机、乘法机或除法机。或者,如图2所示,通过跑动速度不一致(上面角色的速度是下面角色速度的两倍)且撞墙就变换造型(大步和小步之间切换)的方法,来模拟实现一个二进制计数器。
在角色的变化过程中,角色撞墙的时刻其实对应二进制数码的进位的时刻,造型对应着二进制数码,如大步是0,小步是1。在抽象过程中,原本角色的动作和外观都被解辖域化。这里也可以考虑另外一个例子,某二进制数字是2的n次方,如1、10、100、1000……那么,在1的位置摆放某个角色,0的位置作为空白,那么只要简单地对数字做乘以2或除以2的操作,就可以控制角色向左或向右移动。这里,数学运算被抽象为某种动作,同样也是一种解辖域化。人的这种意愿的投入,总是有可能超出生成式人工智能处理的预设框架。
面向自身实现的定制
现在来考虑另一种定制,虽然目前它在图形化的积木式编程环境中是无法实现的,但却可以看成是激动人心的预言。想象一个不懂编程但刚开始玩积木式编程的学生,他只是将代码积木块当成纯粹的积木,既然不同的形状可以拼接起来,那么就可以构造出一个庞大的“建筑”(由于代码积木块左边是对齐的,“建筑”的可能形状是受到限制的,如它的左侧总是齐平的);或者,这个学生只是拿不同长短的积木块来玩汉诺塔游戏。这当然不是图形化编程环境创造者预料中的玩法,其行为正如伯纳德·舒兹所说的“玩笑者”[4],或者说,实现了一种解辖域,但学生的行为并不是毫无益处的,等他真正开始学习编程后,可能会想到,为何程序积木块下方接续的积木块只能是一个,而不支持拼接两个或更多个?继而引出的问题是,假设同时接续多个程序积木块是可能的,那么,被控制的角色就可能要同时做两件事,而这两件事有可能在逻辑上成立,如其中的一件事是变色,另一件事是转向。但也很有可能在逻辑上是冲突的,如让角色同时执行向左转90度和前进90步的命令,在这样的假想环境中,计算机究竟会如何执行指令?到底是让角色先执行左转,还是先执行前进?或者,直接告知用户不可行?或者,若考虑左转和前进都是一种持续性的动作,将某一个时刻的“同时”分割成90个细碎的“同时”,根据这样的分析结果,便画出了一段弧线。于是,从积木拼接的问题,引出了并行计算的问题,问题指向计算机工作本身。
目前,几个主流的生成式人工智能工具,都能为解决上述问题提供几种不同的方案,于是就出现了一种新的定制,这种定制是基于可能性的,它根据人的主观意愿,选取出将某种可能的实现过程转换为代码的方案。无论生成式人工智能提供多少种方案,人总是能基于已有方案给出新的方案。一个有趣的受量子力学启发的方案是:只要有人观察,则角色要么左转,要么前进,只可能处于两种状态中的一种,如无人观察,则实现细碎的转弯动作。受多伊奇的启发,在这里给出一个思想实验,设想将产生逻辑矛盾的方案置放于平行世界中,宏观上逻辑矛盾的消失,则导致多个平行世界收束为一个世界,想象某个高度发达但与现实相隔离的虚拟世界,它只通过极少量的信号和外界交流,则这个世界中无论多么复杂的状态,对外界来说都被约简了。这个思想实验暗示我们,人们能够看到创新过程留存下来的语言符号,但创新过程本身却是无法用语言符号来还原的。
想象一下,如果学生拥有一支笔,那么一张白纸就成为他的一个游乐场,他可能用各种方法在纸上留下痕迹。德勒兹常通过艺术作品阐述哲学概念,他提到绘画中的图形表(主要是以弗兰西斯·培根的作品为例),“图形表”在德勒兹的理论中是一种动态的力量场,它不断地进行运动,形成无限多的形式。这种力量场中的力量相互交织、抗衡,推动图像的不断变化和生成,生成一些由线条、区域、无意义、非再现的线条和可操作性的整体。[5]图形表的力量场在手和纸笔的互动过程中表现出来,行为结果的难以预料性是其重要的特征,通过图表,我们从绘画之“事实的可能性”过渡到“绘画事实”。[6]值得考虑的是,在传统的算法设计和编程的过程中,预设语法规则作为一种权力和规训很有可能为初学者思维构建起无形的牢笼,缺乏如在现实中进行绘画时那种手法与物理材质互动所产生的多样性和不确定性。相较于画笔和画布,基于编程环境的所谓Playground更缺乏玩的意味。