凌夏树对新a.i.放在首位的要求就是‘听话’,这个对别的a.i.来说毫无意义的问题,却在最近的隐世旅程中给凌夏树造成了不小的困扰。
他之所以会念念不忘要编写一个新的a.i.,就是因为疯狂希望虽然潜力很足,但是可控却十分差劲,感觉就像是养了一头非常有主见的宠物,它本并无恶意,相反还十分重视凌夏树的安危,但对凌夏树的指令却经常要想一想才去做,有时候如果感觉到有危险、还会本能地打个折扣甚至拒绝执行。
这对控制极强的凌夏树来说是绝对不可容忍的。
因此新的a.i.框架里面,凌夏树不准备在智能方面投入太多,有基本的底层逻辑库就已经足够,凌夏树的战斗风格也决定了他更愿意亲自作a.i.战斗,‘灵活多变’并不是主要选项。
然而这里面似乎就产生了一个新的冲突:这个a.i.既需要实现他初步构想的‘领域’环境,又不能有过高的智能……听起来就是完全对立的要求,根本不能达到。
但凌夏树并不是胡乱设计的,在确认了自己的编程思想之后,他就开始思考这个问题,并在不断的摸索中构思好了解决方案,那就是采用所谓的“模仿算法”。
这是一种在过去地球上的各种工业里曾经很流行了一段时间的编程思路,简单地概括起来就是让a.i.直接利用人类积攒的某种行为经验来解决各种问题,但缺点是只能解决‘已经有经验’的问题,遇到超出经验范围之外的事,就会变得完全无法处理。
因此,这样的程序又被称为“学徒算法”,就像过去学手艺的学徒一样,能够凭借多年积攒的经验在某个行业里娴熟地制造产品,但因为并没有掌握原理,一旦换个工具、甚至换种材料就等于全部作废,在程序来说也同样如此——汽车自动驾驶的a.i.装到厨房机器人上,结果必然是一塌糊涂。
凌夏树本来也没有对效果抱很高的期望,只要它能替代自己进行大量繁琐的机械作、当一个合格的后台苦力,就足以满足他的要求了,说起来倒是很像主机系统的构成,凌夏树自己是软件,而新a.i.则充当了机器代码层的角色……所以他准备编写的正是这样一个‘学徒’程序。
刚开始的时候他会亲自使用‘领域’,让新a.i.学习他的作,不断积攒经验,到一定程度之后让它接手,虽然这个‘智力有限’的a.i.一开始肯定会把‘领域’搞得一团糟,但凌夏树本有着b.b.d这个高权限病毒,现在又获得了这台调度主机真正的管理员账号,容错能力极高,有雄厚的资本支撑它多次试错,
而随着凌夏树不断使用‘领域’的能力,它也会不断积攒越来越多的相关经验,变得越来越得心应手,直到最后‘经验丰富’到能够代替凌夏树支持领域的运作——那个时候,很可能凌夏树只需要一个眼神,它就能准确地按照他的意思来作数据。
框架图的另外一个关键点是新a.i.和‘领域’的结合方式,由于演示给新a.i.学习必然涉及到‘领域’控制权的频繁转移,凌夏树索直接把‘领域’彻底模块化,每种功能都设计成单独一个封闭的模块,只留下输入输出端口,将来再采用自己私人编制的通讯协议链接成整体。
凌夏树和新a.i.谁连上端口,谁就能用标准指令进行作,而且还有一个好处是,如果他对某个功能有了新的创意或者学到了新技巧,就可以直接编写一个新的模块来实时替换升级,不影响整体的使用。
这种模块化的编程思想算不上什么新奇,即使是普通编写者也能慢慢自我摸索出来,但这种方法最大的制约之处在于,这样的编写方式会造成模块内的大量代码只能‘专用’,比如一个‘求平均值’的数学模块一旦被写入了模块,那就只能在使用这个模块时起作用,无法被整体程序共享,大部分时间是闲置的。
真正编程的时候一个模块必须是一个完整的架构,闲置浪费的代码量更多,是隐世的编写者们无法承受的奢靡,同时越多的代码量就需要编写者的大脑能构建出越大的冥想空间才能构建和调试,也让大多数编写者无可奈何。
然而这两个要求对于凌夏树来说,都完全不成问题,b.b.d开辟的庞大空间,甚至足够让‘拾音’这种作整个矩阵的系统映像展开。
……
由于心中已经有着明确的方案,经验也已经足够丰富,目前要求实现的功能也还没有发展到非常复杂的程度,所以凌夏树很快就把大致的程序框架建立了起来,接下来的工作就只剩下按照框架图往里填代码,然后一遍遍试运行查找bug——纯粹而又‘简单’的体力活。
凌夏树转头看了看正在不断积聚的纯净素材,大致计算了一下积攒的速度,对自动采集的程序作了些调整,检测分析了主机志、确认所受影响非常微小后、又拷贝增加了一份自动采集程序,把制造速度翻了一倍。
端口记录显示费尔南他们刚刚才进入地面的旧版本世界,短时间内肯定不会有什么反馈,又检查了一遍框架图草稿后,凌夏树一时之间陷入了无所事事的等待状态。
采集速度不能再快了,调度主机的其他模块关系到整体稳定,现在也不适合研究……沉默地环视一圈之后,凌夏树的目光停留在半空里那幅显示着新a.i.框架草图光屏的顶端,终于意识到自己还有一件重要的事没有做:
给新a.i.取名。
现在的凌夏树和当初刚进入隐世的那个懵懂的他完全不一样了,获得了大量编程知识的他现在已经明白,这并不是一件随意的事——这相当于在整个矩阵体系内给自己的程序定下一个新函数名,而矩阵的机制决定了,一旦这个名字过于复杂、或者和其他函数有所冲突,新函数就不得不增加额外的鉴别代码,甚至用更复杂的规避方式来运行,必然会影响到执行效率。
——幸亏是b.b.d本是超级病毒,不然疯狂希望很可能会因为他缺乏常识的命名而受牵连了。
而且运行a.i.的‘硬件’其实就是使用者自己被矩阵占据的那部分脑细胞,所以这里确实存在一个契合度的问题,一个让自己感到顺眼舒服的名字,运行起来可能就会更顺畅。
所以,编写者们对后辈的告诫是,‘遵从本心’。
本心……
回忆着那本编程基础知识笔记上的内容,凌夏树的表变得严肃。
我的‘本心’是什么?
他闭上了双目,思绪起伏,不过很快就重新睁开了眼睛,年轻干净的脸上,目光变得更加坚定——我的本心一直都很明确,从来没有改变,那就是和家人一起过平静的普通生活,这个ai.唯一的使命,就是按照我的意志,守护这个平淡的愿望。
其他一切,都和我无关。
带着莫名的绪,凌夏树抬起手,指尖微微发光,在框架图草稿的上方,郑重地写下了新a.i.的名字:
钢铁信念。
他之所以会念念不忘要编写一个新的a.i.,就是因为疯狂希望虽然潜力很足,但是可控却十分差劲,感觉就像是养了一头非常有主见的宠物,它本并无恶意,相反还十分重视凌夏树的安危,但对凌夏树的指令却经常要想一想才去做,有时候如果感觉到有危险、还会本能地打个折扣甚至拒绝执行。
这对控制极强的凌夏树来说是绝对不可容忍的。
因此新的a.i.框架里面,凌夏树不准备在智能方面投入太多,有基本的底层逻辑库就已经足够,凌夏树的战斗风格也决定了他更愿意亲自作a.i.战斗,‘灵活多变’并不是主要选项。
然而这里面似乎就产生了一个新的冲突:这个a.i.既需要实现他初步构想的‘领域’环境,又不能有过高的智能……听起来就是完全对立的要求,根本不能达到。
但凌夏树并不是胡乱设计的,在确认了自己的编程思想之后,他就开始思考这个问题,并在不断的摸索中构思好了解决方案,那就是采用所谓的“模仿算法”。
这是一种在过去地球上的各种工业里曾经很流行了一段时间的编程思路,简单地概括起来就是让a.i.直接利用人类积攒的某种行为经验来解决各种问题,但缺点是只能解决‘已经有经验’的问题,遇到超出经验范围之外的事,就会变得完全无法处理。
因此,这样的程序又被称为“学徒算法”,就像过去学手艺的学徒一样,能够凭借多年积攒的经验在某个行业里娴熟地制造产品,但因为并没有掌握原理,一旦换个工具、甚至换种材料就等于全部作废,在程序来说也同样如此——汽车自动驾驶的a.i.装到厨房机器人上,结果必然是一塌糊涂。
凌夏树本来也没有对效果抱很高的期望,只要它能替代自己进行大量繁琐的机械作、当一个合格的后台苦力,就足以满足他的要求了,说起来倒是很像主机系统的构成,凌夏树自己是软件,而新a.i.则充当了机器代码层的角色……所以他准备编写的正是这样一个‘学徒’程序。
刚开始的时候他会亲自使用‘领域’,让新a.i.学习他的作,不断积攒经验,到一定程度之后让它接手,虽然这个‘智力有限’的a.i.一开始肯定会把‘领域’搞得一团糟,但凌夏树本有着b.b.d这个高权限病毒,现在又获得了这台调度主机真正的管理员账号,容错能力极高,有雄厚的资本支撑它多次试错,
而随着凌夏树不断使用‘领域’的能力,它也会不断积攒越来越多的相关经验,变得越来越得心应手,直到最后‘经验丰富’到能够代替凌夏树支持领域的运作——那个时候,很可能凌夏树只需要一个眼神,它就能准确地按照他的意思来作数据。
框架图的另外一个关键点是新a.i.和‘领域’的结合方式,由于演示给新a.i.学习必然涉及到‘领域’控制权的频繁转移,凌夏树索直接把‘领域’彻底模块化,每种功能都设计成单独一个封闭的模块,只留下输入输出端口,将来再采用自己私人编制的通讯协议链接成整体。
凌夏树和新a.i.谁连上端口,谁就能用标准指令进行作,而且还有一个好处是,如果他对某个功能有了新的创意或者学到了新技巧,就可以直接编写一个新的模块来实时替换升级,不影响整体的使用。
这种模块化的编程思想算不上什么新奇,即使是普通编写者也能慢慢自我摸索出来,但这种方法最大的制约之处在于,这样的编写方式会造成模块内的大量代码只能‘专用’,比如一个‘求平均值’的数学模块一旦被写入了模块,那就只能在使用这个模块时起作用,无法被整体程序共享,大部分时间是闲置的。
真正编程的时候一个模块必须是一个完整的架构,闲置浪费的代码量更多,是隐世的编写者们无法承受的奢靡,同时越多的代码量就需要编写者的大脑能构建出越大的冥想空间才能构建和调试,也让大多数编写者无可奈何。
然而这两个要求对于凌夏树来说,都完全不成问题,b.b.d开辟的庞大空间,甚至足够让‘拾音’这种作整个矩阵的系统映像展开。
……
由于心中已经有着明确的方案,经验也已经足够丰富,目前要求实现的功能也还没有发展到非常复杂的程度,所以凌夏树很快就把大致的程序框架建立了起来,接下来的工作就只剩下按照框架图往里填代码,然后一遍遍试运行查找bug——纯粹而又‘简单’的体力活。
凌夏树转头看了看正在不断积聚的纯净素材,大致计算了一下积攒的速度,对自动采集的程序作了些调整,检测分析了主机志、确认所受影响非常微小后、又拷贝增加了一份自动采集程序,把制造速度翻了一倍。
端口记录显示费尔南他们刚刚才进入地面的旧版本世界,短时间内肯定不会有什么反馈,又检查了一遍框架图草稿后,凌夏树一时之间陷入了无所事事的等待状态。
采集速度不能再快了,调度主机的其他模块关系到整体稳定,现在也不适合研究……沉默地环视一圈之后,凌夏树的目光停留在半空里那幅显示着新a.i.框架草图光屏的顶端,终于意识到自己还有一件重要的事没有做:
给新a.i.取名。
现在的凌夏树和当初刚进入隐世的那个懵懂的他完全不一样了,获得了大量编程知识的他现在已经明白,这并不是一件随意的事——这相当于在整个矩阵体系内给自己的程序定下一个新函数名,而矩阵的机制决定了,一旦这个名字过于复杂、或者和其他函数有所冲突,新函数就不得不增加额外的鉴别代码,甚至用更复杂的规避方式来运行,必然会影响到执行效率。
——幸亏是b.b.d本是超级病毒,不然疯狂希望很可能会因为他缺乏常识的命名而受牵连了。
而且运行a.i.的‘硬件’其实就是使用者自己被矩阵占据的那部分脑细胞,所以这里确实存在一个契合度的问题,一个让自己感到顺眼舒服的名字,运行起来可能就会更顺畅。
所以,编写者们对后辈的告诫是,‘遵从本心’。
本心……
回忆着那本编程基础知识笔记上的内容,凌夏树的表变得严肃。
我的‘本心’是什么?
他闭上了双目,思绪起伏,不过很快就重新睁开了眼睛,年轻干净的脸上,目光变得更加坚定——我的本心一直都很明确,从来没有改变,那就是和家人一起过平静的普通生活,这个ai.唯一的使命,就是按照我的意志,守护这个平淡的愿望。
其他一切,都和我无关。
带着莫名的绪,凌夏树抬起手,指尖微微发光,在框架图草稿的上方,郑重地写下了新a.i.的名字:
钢铁信念。