研究小组复活1966年全球首个聊天机器人ELIZA 竟然来自MIT教授之手!

2021 年,麻省理工学院的一位名叫迈尔斯·克劳利 (Myles Crowley) 的档案管理员在已故麻省理工学院教授韦森鲍姆(Joseph Weizenbaum)的物品中发现了由他本人编写的计算机代码打印件。经过后续审查,确认这些代码大部分是ELIZA聊天机器人的原始代码,该聊天机器人由这位教授亲自编写。当时,“聊天机器人”这一术语尚未出现,人们认为魏森鲍姆将该程序视为电子治疗师。

MIT韦森鲍姆教授(Joseph Weizenbaum)1923-2008
2024年一支由美国和英国研究人员组成的小型团队开始着手对全球最早诞生的ELIZA聊天机器人进行恢复工作,由于当年该程序的运行环境已经消失,因此开发人员为其清理了当时的淤冗代码,单独编写了运行环境,并最终在电脑平台上成功运行。
59年前全球最早聊天机器人ELIZA在MIT诞生
ELIZA, 由约瑟夫·魏泽鲍姆(Joseph Weizenbaum)于1966年在麻省理工学院(MIT)创建,目前已被认定为全球首个聊天机器人。

依托于IBM 7094计算机上的CTSS兼容分时系统
它最初运行在MIT的CTSS(Compatible Time-Sharing System)上,这是世界上第一个分时系统,依托于IBM 7094计算机。随着近年来对AI历史的深入探索,原版的ELIZA代码被重新发现并在一个模拟的CTSS环境中得以复原。

艾伦·麦席森·图灵(Alan Mathison Turing)1912-1954

阿达·洛芙莱斯(Ada Lovelace)1815-1852
在讨论ELIZA之前,有必要提及AI领域的两位先驱:艾伦·麦席森·图灵(Alan Mathison Turing)和阿达·洛芙莱斯(Ada Lovelace)。图灵被誉为AI之父,他提出了著名的“图灵测试”,用以判断一台机器是否能表现出与人类相当的智能。

Ada Lovelace开发的用于计算伯努利数的分析机算法(被称为全球首位计算机程序员)
而洛芙莱斯,作为Charles Babbage分析机的首位程序员,早在19世纪就预见了机器不仅能处理数字,还能处理其他形式的信息,如音乐,这为后来的符号计算奠定了基础,而符号计算正是AI领域的重要分支。

1966年1月魏泽鲍姆教授在《Communications of the ACM》期刊发表文章
在ELIZA之前,约瑟夫·魏泽鲍姆因发明SLIP(Symmetric Lisp Processor)而闻名,这是一种列表处理语言,通过解决IPL(Information Processing Language)的复杂性和低效性。
IPL作为早期AI语言,引入了列表处理、符号计算和递归等核心计算机科学方法,但其机器语言本质和解释性执行方式限制了其广泛应用。魏泽鲍姆创建的SLIP最初作为Fortran的库,后来被重建以支持CTSS的核心用户级语言MAD。
ELIZA是在MAD-SLIP环境下,基于CTSS开发的。它不仅是交互式分时系统能力的杰出展示,也是对自然语言处理(NLP)的一次探索,以及围绕话语的人类-机器交互实验的平台。尽管ELIZA的初衷是作为AI还是反AI存在争议,但它无疑对AI领域产生了深远影响,成为第一个直接体现图灵测试的程序,并将与计算机进行实际对话的科幻幻想变为现实。
ELIZA的技术细节
ELIZA的核心是一个基于规则的脚本系统,其中最著名的是“DOCTOR”脚本,它使ELIZA以罗杰斯式治疗师的形象与用户交互。ELIZA通过匹配用户输入中的关键词,从预定义的规则库中检索响应,从而实现对话。这种简单但有效的机制在当时是革命性的,展示了计算机处理自然语言的可能性。
ELIZA最初是用MAD和SLIP编写的,这两种语言在当时都是相当新颖且复杂的。MAD是一种高级编程语言,支持列表处理和递归,而SLIP则是一种专门用于处理列表的库。然而,随着时间的推移,MAD逐渐被其他ALGOL类语言取代,而Lisp的广泛应用也使SLIP黯然失色。

目前网络上流传着数个ELIZA版本源代码(图:1967年彩色版本)
在分析魏泽鲍姆1966年的论文与复原的代码时,研究团队发现复原的ELIZA版本缺少了一些论文中描述的功能,如PRE重组模式、关键字栈和NEWKEY重组规则等。这些缺失的功能可能是由于代码的不完整性或版本差异造成的。
2021年,Jeff Shrager(BASIC ELIZA的作者)和MIT档案员Myles Crowley在魏泽鲍姆教授的档案中发现了一份看似完整的ELIZA源代码副本。这一发现为复原ELIZA提供了关键材料。经过与魏泽鲍姆遗产管理机构的沟通,研究团队获得了公开源代码的许可。
复原ELIZA的第一步是在一个模拟的IBM 7094上恢复CTSS。这一任务由David Pitts编写的7094模拟器完成,该模拟器基于Paul Pierce的工作,并在21世纪初由David Pitts进一步完善。CTSS的恢复为ELIZA提供了一个与其原始运行环境尽可能接近的平台。

Fortran Assembler Language是最古老的编程语言
ELIZA的代码主要由未注释的MAD和FAP(Fortran Assembler Language)代码组成,总计约2600行。由于代码年代久远,且使用了当时特有的编码和缩写,因此将其转换为机器可读格式并非易事。研究团队通过手动转录和编译器调试,逐步解决了代码中的错误和遗漏,包括函数缺失、字符编码问题、列布局要求等。
ELIZA在CTSS上成功运行的对话内容
在恢复代码的过程中,研究团队还编写了一些新函数来弥补档案中缺失的部分,并对代码进行了运行前的测试。最终,团队在2024年12月21日,复原的ELIZA在CTSS上成功运行,实现了自1960年代以来首次完整的对话。
ELIZA的复原彻底改写AI历史进程
研究团队表示,ELIZA的复原不仅是对一个历史项目的简单复制,更是对AI发展历程的一次深刻回顾。很难想象,在今天,我们能够有机会亲身体验到60年代AI研究的成果,感受到当时科学家们的创新思维和面临的技术挑战。

修复后ELIZA聊天机器人的对话机制
作为全球首个聊天机器人,ELIZA基于规则的对话机制对后来的AI研究产生了深远影响。从ELIZA到现代的聊天机器人和对话系统,我们可以看到技术传承的脉络。同时,通过对ELIZA的复原,也为研究早期AI语言和处理机制提供了宝贵的资源。
结语与未来:
ELIZA的复原改写了整个AI的历史进程,具有里程碑意义,虽然59年前它只是一个简单的对话程序,但今天的人工智能乃至具身智能,都是源于早期人机交互理念,因此它更像是一盏启明灯,指引者在这条路上不断奔跑的探索者。
来源:具身智能大讲堂
        

(文:机器人大讲堂)

欢迎分享

发表评论