永不下车:上车 第一一五章 软件
截至目前,人类能制造的AI,仍然局限于定义上的“弱人工智能”,无法完全取代人的作用。
但所有这些认识,在方然看来,皆有其片面性。
譬如软件工程领域,一般认为,人的作用在软件开发流程中必不可少:软件的需求分析,架构设计,模块编写,集成测试,乃至验收交付,维护升级,都是难以规格化、标准化的千差万别,这一情形并未被1420年代衍生出的“软件工程”概念所终止。
时至今日,计算机越来越先进,IT领域的架构师、程序员和运维人员仍有增无减,就是证据。
但,就在这无数人的智慧之上,随着计算机网络、软件系统的愈加庞大、复杂,在直接与用户打交道的前端应用之外,为终端、节点及应用程序提供底层支持的系统和软件,规模也越来越大,这些软件的设计,无须过多考虑人的因素。
自身是软件,外联的则是其他软件,变革,正发端于这些静默运行于后台的系统。
每天的日常,是根据文档完成系统模块、或者设计算法,方然只是“国际商用机器”公司的普通员工,凭借蛛丝马迹和缜密思考,他才在几个月后发现,自己参与完成的软件,似乎就与AIASG有关。
作为“国际商用机器”的战略项目,AIASG并不像其他的项目规划那样,在网络上有大量的新闻报道,这更让方然好奇。
凭借黑客手段,他陆续拿到了一些内部材料,阅读后,就基本验证了自己的猜测:
AIASG,顾名思义,的确是一种能独立开发软件的存在。
脱离了开发者的智慧,AI,本质上只是软件和运行软件的硬件,这样的东西,如今已能完成从即时翻译到自动驾驶的很多事,但要“编程”,就有些不可思议。
“国际商用机器”公司必定很早就规划了这方面的工作,不仅在AI算法上有了重大进展,想必,还构建了庞大的软件工程通用库。
通过自身参与的边缘性工作,窥探AIASG的原理,并不太难。
在软件工程中,人的智慧,究竟怎样发挥独特的作用呢,一方面是分析需求,提出要解决的问题,另一方面则是对给定的问题,给出解决的方案。
与普通人的认识相反,提出问题,往往比解决问题更困难。
“认识,分析与改造客观世界”,人的一切活动,显然也包括需要用计算机来进行的活动,总可以归结于此,对特定的问题,无数前人的智慧已经找到了解法,那么这些解法,稍加变换,应用到类似问题的解决上,这种事就并非不能用AI来完成。
与此相比,从前述的“认识,分析与改造”过程中,提炼出新的问题,并独创性的给出解决方案,才更加困难。
人工智能的前沿动向,坦率的讲,方然并不甚了了,但是他也知道,目前的研究热点集中在所谓“仿生”,从“人工神经网络”到“学习体系”的诸多分支,都试图模仿人脑的学习和演化过程,也就是用庞大而复杂的电路,通过自组织、混沌演化的方式,模仿人的智力获取与提升过程。
但对于AIASG,原则上,并不需要这些高深的架构才能实现。
计算机网络中的软件,浩如烟海,真正归纳起来的种类却并不多,绝大多数软件要应付的问题,性质都彼此雷同,尤其在核心网与服务器上运行的后端程序,对接的都是其他计算机,几乎没有人的因素。
这样的软件,一言蔽之,面对的问题、和解决的算法,都具有高度的规律性。
“国际商用机器”公司的AIASG系统,具备极高的复杂度,依托于巨型计算机的100PFlops级(每秒一万亿亿次)算力,对给定的系统要求,可以自动生成、部署与维护特定的软件系统。
这且不算,按方然查到的资料,这AIASG分明已演化到了2.0版本,在生成软件的过程中,几乎完全跳过了“编程”这一环节。
想一想也是,编程,程序设计语言,这些东西都是人才会用到。
软件自动生成软件,整个过程,完全在计算机系统和网络中进行,摆脱了繁琐而低效的人机界面,软件中的指令,自然也不必再仰赖“程序设计语言”这种人与计算机的交互工具,即,跳过了“编译”、“解释”环节,而从算法直接生成机器码。
同样是“制造”软件,AI的做法,和人大不一样,这引发了方然的高度关注。
作为新兴事物,AIASG生成的软件,可想而知一开始的效率比较低下,还会包含若干逻辑与流程层面的缺陷,这一点,与人类主导的软件工程并无二致。
但是接下来发生的事,就有点可怕:
与人类的工程组织协调能力不同,AIASG的软件迭代速度,超乎想象。
软件迭代,一个稍显专业的软件工程术语,说白了就是在开发、或运维过程中,对有瑕疵或缺陷的软件进行改进,这种事说起来容易,却往往占据了软件公司的大部分项目预算,即便钱不是问题,也常常会耗费大量时间和人力,最终仍难免超期。
软件开发中的工期拖延,相当普遍,这并非由人的主观错误、而是由客观限制导致。
自从西历1387年,盖亚诞生了名为ENIAC的第一台电子计算机,几十年来,计算机领域的发展始终十分迅猛,硬件性能突飞猛进,软件系统也随之越来越庞大,直到超出了人的头脑、智慧所能掌控的程度。
软件规模超过了一定限度,人的记忆就会溢出,继而错误频发。
即便用软件工程的管理和协调手段,大量开发人员一起工作,其总能力仍显著低于单个开发人员能力的算术和。
这种能力的损耗,受限于人的交流、沟通之低效,短期内并无解决的希望。
但是AIASG,作为一个工作的整体,进行软件迭代、测试与部署工作时,就没有这些人类软件开发团队才会碰到的困扰。