查看原文
其他

尼克:第五代计算机的教训

2017-03-31 尼克 中国计算机学会

点击上方中国计算机学会轻松订阅!

来源:《中国计算机学会通讯》2016年第12期《专栏》

作者:尼  克


背景

1978年,日本通产省(Ministry of International Trade and Industry,  MITI)委托日本计算机界大佬、时任东京大学计算机中心主任的元岡達(Tohru Moto-Oka)研究下一代计算机系统。当时的计算机工业按照电路工艺划分计算机的发展:第一代计算机是电子管,第二代是晶体管,第三代是集成电路,第四代是超大规模集成电路(VLSI)。通产省决定三年后开始建造第五代计算机,这是日本雄心勃勃的从制造大国到经济强国转型计划的一部分,用今天的话说:他们认为日本已经进入“无人区”,日本必须搞“双创”。首创第五代计算机,可以在全球信息产业建立领导地位。


三年后的1981年,元岡達为首的委员会认真提交了一份长达89页的报告,他们认为第五代计算机不应再以硬件工艺划分,而应以体系结构和软件来划分。这份报告的题目就是《知识信息处理系统的挑战:第五代计算机系统初步报告》(简称《报告》)。《报告》提出了六种先进体系结构:逻辑程序机、函数机、关系代数机、抽象数据类型机、数据流机、冯•诺伊曼机上的创新。元岡達70年代在美国做过访问学者,对数据流机和数据库机比较熟悉。和后来人们的印象不同,这份报告还兼收并蓄,更像是一份当时各种技术的综述,并不是一上来就一边倒地研究逻辑程序。


其实当时欧美早就有大学在研究这几种体系架构,甚至已经有创业公司,例如专攻函数程序语言LISP硬件的LMI和Symbolics。他们都是从麻省理工学院分出来的创业公司。Symbolics.com还是第一个.com域名拥有者。《报告》提出的函数机的性能目标比在通用机上的软件实现快两到三倍,恐怕Symbolics当时就已经做到了。用硬件实现关系数据库和面向对象(OO)系统也不新鲜。有意思的是第6项:创新型冯•诺伊曼机的需求:VLSI,每片芯片有100万个晶体管。很多人以为第五代机主张“非-冯”架构,其实一开始他们还真是把“冯”架构的硬件改进也算到里面了。


1981年在日本信息处理开发中心(JIPDEC)召开了第一届第五代计算机会议,对外公布元岡達委员会的报告。会议邀请了外籍嘉宾,其中有专家系统鼻祖费根鲍姆和机器定理证明元老、德国人沃尔夫冈•白贝尔(Bibel)。费根鲍姆的特约演讲强调了知识重于推理的理念,他还是念念不忘他的老师司马贺和定理证明中逻辑派结下的梁子。而白贝尔自然还是强调逻辑的重要性。这俩人基本是各说各话,但费根鲍姆的关键词“知识”,和白贝尔的关键词“逻辑”都是日本人最想听到的,他们倒并不太关心欧美之间的两条路线斗争。关于“知识”和“逻辑”的更加公正的说法是语义和语法之争,知识是语义,而逻辑是语法。定理证明是纯粹依靠语法之力,但加入语义确实会提高效率。


相比于新的逻辑程序语言Prolog,LISP是更成熟的函数式编程语言,也是美国人工智能研究者的标准语言。日本电话电报公司(NTT)的武藏野实验室(Musashino Lab,相当于美国的贝尔实验室),也更倾向于LISP。最后的决定权落在野心勃勃的渕一博(Kazuhiro Fuchi)手中,他是即将成立的第五代计算机研究所(Institute of New Generation Computer Technology, ICOT)所长。他在会议上发表的论文明确强调了逻辑程序和Prolog的重要性。英国人沃伦(David Warren)于1982年在《人工智能杂志》(AI Magazine)上发表的论文分析了渕一博为什么选择Prolog:在第五代机的所有应用中,Prolog能覆盖的面最广。第五代机的终极目标是知识信息处理,在当时的语境下特指专家系统和自然语言理解。那时的自然语言理解还是规则为王的时代。Prolog很明显比LISP更适合这些应用。而且在小规模数据的基准测试中,Prolog作为数据库查询语言甚至不输关系代数。当然,Prolog不是美国人发明的,这也是一个重要因素,这让日本人更有机会掌控并占据领先地位。


日本人是何时最早接触Prolog的也是很有意思的故事。古川康一(Koichi Furukara)被派到美国斯坦福研究所(SRI)做访问学者,他的指导教师是巴罗(Harry Barrow)。当时巴罗正在自学Prolog,他刚从沃伦(Warren)手中买了Prolog解释器,但没有时间研究,于是把这个任务交给了新来的古川康一。古川很快就把Prolog在斯坦福研究所的一台DEC-10上跑通。他回国后就成了日本最早有Prolog实战经验的专家,马上进入刚成立的第五代机研究所,并升为副所长,一度曾代表第五代机研究所和欧洲的大学与研究机构周旋,企图把更多的欧洲人拉到日本的阵营里。


理论基础:逻辑程序和Prolog

逻辑程序从某种意义上是自动定理证明的“歪打没正着”的副产品。定理证明在归结原理之后经历了各种改进,但仍然无法避免中间子句指数爆炸式的增长。进入70年代,人们开始研究证明模式,首先想到了线性归结,即整个定理证明过程沿着一条主线(中央子句),优点是证明过程是目标制导,有点像人的证明过程。在英国爱丁堡工作的美国人罗伯特•科瓦尔斯基(Robert Kowalski)1971年发明了SL归结并证明了SL归结的完备性,SL归结就是线性归结的一种。这一方面奠定了科瓦尔斯基在定理证明界的地位,同时又让他有机会开创了逻辑程序。

科瓦尔斯基的早期学术生涯就一个字:乱。他本科先是在名校芝加哥大学,但两年后回到老家,在三流学校桥港大学(University of Bridgeport)拿了学位。后来再到名校斯坦福大学读数学博士。两年后他再次离开。两方面原因导致他出走,一是政治,二是学术。他曾经驾机企图到玫瑰碗(Rose Bowl,美国大学橄榄球决赛)的上空撒反战传单,只因飞机故障,等飞到玫瑰碗上空时,球赛已结束,最后把传单都撒到了附近的迪斯尼乐园。尽管定理证明的关键工作都是在美国做的,但貌似欧洲对定理证明的兴趣却远高于美国。


科瓦尔斯基曾说:“作为学生,我爱逻辑,恨递归论(As a student, I loved logic and hated recursion theory)。” 这也算是欧美之分吧。数理逻辑可分为一阶逻辑以及四大论——模型论、集合论(包括高阶逻辑)、递归论(也就是可计算性理论)和证明论。递归论当然也属于逻辑,只不过科瓦尔斯基更喜欢一阶逻辑。科瓦尔斯基1967年来到英国人工智能重镇爱丁堡大学,那里有数学家伯纳德•梅尔泽(Meltzer)研究数学机械化,还有战时跟随图灵在布莱彻里庄园破译德军密码的唐纳德•米奇(Donald Michie)。米奇战前本科读的是经典学,战后读了哺乳动物遗传学的博士。当时在爱丁堡的学生还有阿兰•邦迪(Alan Bundy)、波尔(Boyer)和摩尔(Moore),波尔最后还是回到德克萨斯大学奥斯汀分校读了博士学位,他的第一个学生就是后来把吴文俊方法发扬光大的周咸青。科瓦尔斯基跟随梅尔泽学习定理证明,刚一到就碰见了正在那儿访问的罗宾逊。随后他的学术生涯一帆风顺。


科莫饶尔(Colmerauer)是马赛大学人工智能小组的领导,当时正在研究自然语言问题回答系统,他邀请科瓦尔斯基访问马赛大学,讨论如何用SL归结做问题回答。科莫饶尔和他的学生卢梭(Roussel)开始考虑设计一个全新的程序设计语言,卢梭的妻子想到了“Prolog”这个名字,意为“逻辑编程 ”(programming in logic)。卢梭建议用Horn子句。Horn子句是A1 and A2 and … An ->B的格式。这里所有的A都不是负文字,转换成只有“或”连接词的子句就是~A1 or ~A2 or … ~An or B,一个子句里最多只能有一个正文字。科瓦尔斯基一开始并不满意Horn子句,因为这明显降低了表达能力。最后还是勉强接受了,一方面是为了效率,另 一方面是学生沃伦的抗议,他本来派沃伦研究Horn子句的短版,却不想沃伦变成Horn子句的支持者。卢梭用Algol-W实现了第一个Prolog。沃伦后来发明了沃伦抽象机(WAM),为后来的Prolog实现提供了基础。科瓦尔斯基此时开始写一本小册子《问题求解的逻辑》,这本册子越写越厚,1979年成书出版后成为逻辑程序设计的圣经。 后来他进一步提出了“算法=逻辑+控制”的口号,这明显在模仿Pascal发明人沃思(Wirth)提出的“程序=算法+数据结构”的说法。一门学科如果没有一个叫得响的口号恐怕火不了。这样的口号还很多,例如逻辑学家比森(Beeson)在评论机器定理证明时就有“数学=逻辑+计算”之说,逻辑是表达,计算是过程;逻辑是几何,计算是分析。更广义地说:定理证明是逻辑,计算机代数(包括几何定理证明)是计算。


至于Horn子句的表达能力问题,早在1961年就有几位逻辑学家证明过Horn子句可以计算所有递归函数,即使像Prolog这样不完全的Horn实现仍可计算所有递归函数。其实还有比Horn子句更约束的形式,例如Datalog。在Datalog中,每个项可以是常量或变量,但不能是函数。有一个很简单的证明:Datalog等价于关系数据库+递归。如果SQL允许递归,那么就已经实现了Datalog。其实SQL每张表都可表示为Datalog的一个谓词,表中的一个列对应于谓词中的一个变量。


1975年,科瓦尔斯基带着几个学生跳槽到了伦敦的帝国理工学院,把那儿搞成了逻辑程序设计的大本营。日本第五代机计划决定以Prolog为基础之后,科瓦尔斯基成为被关注的中心,各种时尚类杂志请科瓦尔斯基做封面。他也顺水推舟为后来的日本第五代机“添油加醋”。


五代机计划和第五代机研究所

日本政府对私营企业历来有重大影响力,通产省决定了日本的科技和工业政策。日本通产省对第五代机的自信来自DRAM存储芯片的成功,70年代日本半导体工业在通产省的协同下,组织了业界协会。在很短时间内,DRAM研发全面赶超美国,由此,日本在计算机硬件制造方面对美国构成威胁。通产省不满足于跟随美国,产生了更大的野心,要在整个IT领域设立自己的标准。第五代计算机研究所选定Prolog而不是LISP,一个主要原因就是LISP是美国制造,而Prolog相对来讲是全新的。

通产省为第五代机制定的十年计划是4.5亿美元,第一期头三年通产省独资4500万到5000万美元,后两期参与的公司会有一比一的匹配资金。所以总投入预期达8.5亿美元。而日本工业界对政府项目的匹配历来都会超过政府出资,所以通产省的小算盘是整个项目可能达到10亿美元投入。虽然按照美国标准,这不是巨资,IBM 1982年一年的研发经费就是15亿美元,但在当时的日本已经是史无前例了。


通产省电子技术综合研究所(Electrotechnical Laboratory, ETL)是通产省内最大的电子和计算机研究机构,大概类似于中科院的电子学所加计算所加自动化所。ETL的渕一博年轻有为,是第五代计算机研究所所长的不二人选。他的任务就是从ETL和参与的所有公司中挑选最优秀的40名年轻研究者加入第五代计算机研究所。渕一博1961年26岁时就访问过伊利诺伊大学,参与过超级计算机Illiac II的研发,熟悉美国研发文化。此时年仅46岁的渕一博要求他的所有部下不能超过35岁,他这是在刻意纠正日本文化尊老的习俗。日本文化中没有了主子的武士就是浪人。渕一博把他的40位部下戏称为“40浪人”。这40个人加入第五代计算机研究所后,虽然不会担心终身雇用问题,但他们在原单位的升迁机会没有了,从这个意义上说他们是“浪人”一点也不为过。


费根鲍姆被邀参加第一次五代机会议,他到达东京的当天,恰逢日立和三菱的几位高管因为窃取IBM的商业机密被判刑。美国那时开始注意来自日本的潜在威胁,并采取行动。费根鲍姆感受到日本人的复杂心理:一方面他们认为这是美国对日本的贸易战;另一方面,他们为此事感到羞耻——即使自己做不出来也不应该窃取。五代机给日本人提供了一个弯道超车的机会,日本同行认为有了五代机,就可以在信息产业里甩掉“山寨”的帽子。日本在软件方面大约落后十年。但如果五代机能够成功,那将是日本后发制人的又一案例。


并发Prolog

计算机科学的进步主要是由两件事驱动的:机器太慢和写程序太慢。在任何时间点,在半导体技术的约束下,提高机器速度的唯一办法是并行。Prolog是高级语言,表达效率比过程语言高。因此在五代机项目的开始,如何并发地执行Prolog就是重要的研究课题。科瓦尔斯基说逻辑程序设计是知识处理和高度并行体系结构之间缺失的一环(missing link)。


串行Prolog的语义是由科瓦尔斯基定义的,例如,如果要证明A,在规则库中有

A<-B1 & B2 & … Bn

那么就一个一个地去证明Bi。如果所有的Bi可以并行地归约,那么就是AND并行性。当有多个子句可以和A合一,那么又可以让并行性在多个子句中发生,这就是OR并行性。


帝国理工学院的克拉克(Clark)和格雷戈里(Gregory)提出的关系语言Relational Language是最早的逻辑编程语言的并行方案。1982年刚刚从耶鲁大学博士毕业的夏皮若(Ehud Shapiro)到以色列魏茨曼理学院做博士后,他参加了1981年的第一次五代机研讨会。他到五代机研究所访问时,受关系语言的启发,提出了Concurrent Prolog语言。在日本电气股份有限公司(NEC)工作的上田和紀(Kazunori Ueda)在Concurrent Prolog的基础上提出了Guarded Horn子句GHC。这个被夏皮若戏称为“日本制造(made in Japan)”的发明迅速成为五代机的核心语言KL1。而夏皮若自己后来则走了另一条路:Concurrent Prolog的AND并行性的子集Flat Concurrent Prolog。夏皮若后来用Concurrent Prolog开发了一个以色列的微信Ubique,后来卖给了美国在线(AOL)。


并行Prolog也带动了LISP并行机的研发。1983年从麻省理工学院分出来的创业公司 Thinking Machines成立,它的域名think.com是第三个.com域名,创始人希里斯(Danny Hillis)的三个导师都大名鼎鼎:香农、明斯基和萨斯曼(Sussman)。Thinking Machines当时是美国最火的创业公司之一,经费来源主要是美国政府。随着日本五代机的失败,Thinking Machines也失去了战略作用,在1994年倒闭。希里斯随后去迪斯尼研究哲学,开了家公司metaweb,不久就被谷歌收购变成谷歌的开源知识图谱freebase,而metaweb的首席技术官约翰•詹南德雷亚(John Giannandrea)则成了谷歌 Xlab的领导,现在是谷歌搜索的主管。无独有偶,MCC 最后有价值的资产CYC 恰是最早的知识图谱。但这些只能算是非物质文化遗产,和五代机的关系不大。


当时美国在硬件方面最接近日本五代机的研究工作是戴维•肖(D.E. Shaw)在哥伦比亚大学做的Non-Von(非冯)并行机。非冯并行机旨在用硬件实现知识表示语言KRL。但在1986年五代机如日中天的时候,肖离开学术界加入摩根斯坦利,1988年创办了投资公司DE  Shaw,成为华尔街大鳄。功成名就后,肖从DE Shaw半退休,又办了DE Shaw研究所,从事生物化学和制药的研究,核心工具仍然是并行处理。


美国和欧洲对日本五代机计划的反应


美国的回应

20世纪50年代,美国在苏联卫星上天的压力下,大力投资本国的科技和教育。但当冷战进入缓和期后,美国人失去了以举国之力打造超级项目的动力。美国众议院贸易委员会在分析了美日贸易数字之后说美国对日贸易,除了飞机外,几乎就像一个发展中国家对发达国家的贸易,美国向日本提供农产品和原材料,日本向美国提供工业品、家用电器和高科技产品。


20世纪80年代,当日本在制造业和集成电路方面大举超越美国时,大家再次反思美国的教育,认为应该向日本学习。


太多的律师和会计师是对整个社会资源的浪费。美国的律师协会曾经抱怨日本对外籍律师的签证额度限制导致美国律师所无法在日本开展工作。但日本人不鼓励美国律师带来的诉讼习气,认为这会拖累整个国家对技术创新的追求。按人均算,日本的律师数量是美国的1/20,会计师是美国的1/7,但工程师却是美国的5倍。费根鲍姆颇为认真地说应该简化美国的法律流程,设立成人教育计划,把多余的律师和会计师训练成工程师。


但到90年代五代机失败后,大家又各说各话了。后来,在政治的压力下,美国和欧洲已经丧失了斗志。美国在越南战争结束后愈演愈烈的反智主义阻碍了科技教育。


当时,所有的美国商学院都用日本索尼随身听的成功作为案例,说明日本会占据技术市场。然而把美国过去几十年商学院的案列教材拿出来翻看,就会发现当时那些貌似惊人的案例,没过多久都失败了。商学院对日本研究的另一个流行观点是,日本的终身雇用制让公司和雇员都对公司的发展采取长期的视角,但现在日本已开始改变终身雇用制。


费根鲍姆则把五代机当作日本人的“新政”。我觉得费根鲍姆是在给本国政府施加压力,要求增加在科技领域,尤其是自己所在领域的投资。他在日本的每一次出镜都为他在本国捞足了资本。


日本的五代机项目为美国敲响了警钟。1982年美国政府决定成立MCC,作为对日本五代机项目的回应,每年投资7500万美元,共600个职位编制。美国海军上将英曼被任命为MCC的董事长兼首席执行官。英曼曾任美国国家安全局长和中央情报局副局长。MCC是一个工业界的松散耦合联盟(consortium),除了IBM和AT&T之外的美国所有重要高科技公司都参与其中。这么多公司联合办公,在美国历史上还是头一次,美国国会特批免除“反垄断法”的限制。很多批评者认为免除“反垄断法”涉及原则问题。但50年代末美国在苏联压迫下开始“阿波罗计划”的时候,也是搞政府协调,那时似乎并没有人用“反垄断法”说事。这真是一个反讽:一个原本是为了提高工业界竞争力的“反垄断法”竟然限制了美国作为国家的竞争力。


27个州的57个城市参与竞标MCC的选址,最后花落德克萨斯州的奥斯汀。硅谷的高管对此表示不满:Where the hell is Austin?(奥斯汀算哪根葱?)但是英曼是德克萨斯人,并且毕业于德克萨斯大学奥斯汀分校。尽管奥斯汀并不以高科技闻名,但是德州大学奥斯汀分校却是美国机器定理证明研究的重要基地之一,带头人是布莱索(Bledsoe),计算机系的建系主任,正是他招募了波尔-摩尔(Boyer-Moore)证明器的开发者波尔和摩尔加盟。布莱索是英曼的智囊之一,英曼一到任,就提名他为负责人工智能的副总裁。也恰是布莱索把莱纳特(Lenat)网罗到MCC,并大力支持他的CYC项目。


除了MCC,美国国防部高级研究计划署(DARPA)还建立了另外三个国防项目——无人驾驶车、飞行员辅助系统和战场管理系统(Battle Management System),里面有和机器-指挥官的自然语言理解界面。DARPA无人驾驶车项目是现在各种类似项目的源头。


英国的阿尔维计划(Alvey Program)

沃伦在1982年评论刚出台的日本五代机计划时说,日本和美国类似计划的源头都是欧洲,更确切地说是英国。他大概忘了他的导师科瓦尔斯基实际上是从美国逃到英国去的。英国政府于1982年婉拒了日本邀请联合开发五代机的倡议,宣布将在未来五年内投入2.5亿英镑(等值3.6亿美元)开发英国人自己的阿尔维计划。作为对比,同年的马尔维纳斯群岛之战,英国花了7亿英镑。英国撒切尔政府面临压力要求阿尔维计划必须产生可市场化的产品。1987年在日本五代机计划进入胶着状态时,英国宣布放弃阿尔维计划。英国人似乎对失败超级敏感,退出总是很快。阿尔维计划的领导布瑞恩•奥克利(Brian Oakley)1991年在《科学》上撰文:“把繁荣寄望于研究,英国也真是够蠢的。”


二战时跟随图灵在布莱彻里庄园破译德军密码的唐纳德•米奇当时是爱丁堡大学人工智能单位(Artificial Intelligence Unit)的领导。这个人工智能单位当时是一个学院的编制。米奇1983年在人工智能鼎盛时期离开了爱丁堡大学,在格拉斯哥建立了图灵研究所(Turing Institute)。1994年因没钱关门,整个历程和日本五代机的时间点重合。2015年英国政府联合了剑桥、牛津、爱丁堡、伦敦和华威五所大学再次成立阿兰•图灵研究所,坐落于大英图书馆内,定位大数据。


欧洲的ESPRIT

1978年整个欧洲经济共同体在信息技术领域有50亿美元的贸易顺差,但在4年后的1982年却有120亿美元的逆差。日本五代机项目更是加重了紧迫感。1983年欧洲启动了“欧洲信息技术战略计划”ESPRIT,十年预算是15亿欧洲货币单位ECU(1999年改为欧元)。劳工的短缺也是启动ESPIRIT的原因。随着ESPRIT逐步退火,大家又说机器靠不住,还得靠人。从某种意义上,现在欧洲在靠从穆斯林国家移民的方式挽回当年ESPIRIT的失败。不知道新的人工智能技术会不会进一步影响欧洲的政治局势。


法国总统密特朗想当信息时代的狄德罗:做电子百科全书,而这在日本的五代机项目中也有规划。于是法国建立了世界信息技术与人力资源中心(World Center for Information Technology and Human Resources)。他们当时请的首席科学家是明斯基的战友、2016年过世的佩珀特(Seymour Papert)。但最终还是民主的维基百科成了气候。


1988年在别国已经开始对五代机采取谨慎态度时,德国成立了德国人工智能研究中心(DFKI)。DFKI今天还在,在经历了人工智能的一个循环之后,仍然是欧洲人工智能的中心。


结局和教训

五代机的衰落1988年就露出端倪。1981年的第一次五代机会议的会议录只有280多页,其中还包括89页的元岡達报告。而1988年的五代机会议录有1300页三大卷。但从会议录中可以看出,五代机已经成了大杂烩,失去了聚焦点,给人的感觉是,五代机不会在任何相关领域取得突破性进展,而同时一些不相关的领域却拼命在向五代机靠近。


五代机没有证明它能干传统机不能干的活,在典型的应用中,五代机也没比传统机快多少。麻省理工学院教授卡尔•休伊特(Carl Hewitt)是明斯基和佩珀特的学生,他对自动定理证明有很大影响。他认为大部分五代机的工作都是试着用逻辑程序去解决其他手段早就解决的问题,而不是去解决其他手段不能解决或解决得不好的问题。他还认为逻辑编程和并行性天生就是一对不可调和的矛盾。

MCC国际合作总监伊顿(Eaton)并不认为五代机失败了:日本通产省对五代机的投入并不大,五代机促成了80年代中后期人工智能的繁荣,也提升了日本在全世界的形象。日本人工智能学者甚至说,如果有现在的语义网和知识图谱的大数据,五代机结局会很不同。但历史无法重写。


五代机后期赶上互联网的突起,相比互联网,五代机光辉不再。五代机的影响局限在技术圈内部,而信息高速公路的影响却是全社会的。也许五代机并非是失败,只是各种技术此起彼伏的一个阶段。1994年五代机项目结束后,渕一博转往东京大学任教,两年后退休。元岡達(1929~1985)和渕一博(1936~2006)都不算长寿。


作者:

尼 克  国家千人计划专家。乌镇智库理事长。早年曾任职于哈佛大学和惠普,后连环创业。中文著作包括《UNIX内核剖析》和《哲学评书》等。


参考文献请登录:http://www.ccf.org.cn/


点击“阅读原文”查看CCCF全部文章


【推荐阅读】


更多CCF精彩报道请关注微信公众号


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存