第一章:会说话的机器——语言模型的诞生
1950年的一个雨天,剑桥大学的走廊里弥漫着淡淡的茶香。一位33岁的年轻数学家坐在办公室里,手中握着一支笔,面前是一叠写满公式的纸张。他的名字叫艾伦·图灵(Alan Turing),此刻他正在思考一个困扰人类已久的问题:机器能思考吗?
这个问题看似简单,却触及了人类认知的核心。图灵没有陷入哲学的思辨漩涡,而是用他一贯的数学家思维,将这个问题转化成了一个可操作、可验证的实验。他说,与其争论什么是“思考”,不如关注一个更实际的问题:机器能否在对话中让人误以为它是人类?
这就是著名的图灵测试(Turing Test),也叫“模仿游戏”(Imitation Game)。图灵的设想是这样的:让一个人类评判者通过文字与两个对象交谈,一个是真人,另一个是机器。如果评判者无法区分哪个是人、哪个是机器,那么这台机器就可以被认为具有“智能”。
想象一下这个场景。你坐在电脑前,开始打字聊天。对面的“某人”用流利的语言回复你,偶尔打错字会像真人一样撤回重发,遇到不懂的问题会幽默地说“我也不太确定呢”,甚至会问你今天过得怎么样。整整五分钟的对话后,你真的能确定屏幕那边是一个有血有肉的人,而不是一串冰冷的代码吗?
图灵的设想在当时引起了巨大的轰动。在那个年代,计算机刚刚诞生不久,体积庞大得像一栋房子,却只能进行简单的数学运算。绝大多数人认为,机器只能按照人类给定的指令执行任务,根本不可能有任何“智能”可言。图灵却大胆地预言,到2000年左右,普通的计算机应该能够在五分钟的对话中让30%的普通人相信它是人类。
虽然图灵的预言没有完全成真——至少在2000年时,机器还没有那么厉害——但他的思想为后来的人工智能研究指明了方向。图灵测试告诉我们,评判一台机器是否“智能”,不应该看它内部是如何工作的,而应该看它的外在表现:它能否像人一样思考和交流。这种从“内部机制”转向“外部行为”的思维方式,成为后来AI研究的重要哲学基础。
我们把时间快进到1966年,美国麻省理工学院(MIT)的计算机实验室里,弥漫着咖啡的香味和程序员们敲击键盘的声音。一位名叫约瑟夫·韦岑鲍姆(Joseph Weizenbaum)的德国程序员,正在开发一个前所未有的程序。他给这个程序起了一个名字——ELIZA,以纪念萧伯纳戏剧《皮格马利翁》中的 Eliza Doolittle 角色。在那个戏剧里,一个粗俗的卖花女通过学习贵族的语言和礼仪,最终蜕变成了一位优雅的淑女。韦岑鲍姆希望他的程序也能做类似的事情:让一台冰冷的机器学会“说话的艺术”。
ELIZA 的诞生立刻引起了轰动。在当时的计算机还主要用于科学计算和军事 purposes(那些高大上的用途)的年代,一个能和你“聊天”的程序简直是科幻小说里的东西。韦岑鲍姆在麻省理工学院工作的时候,他的同事们经常围在计算机终端前,尝试和 ELIZA 对话。很多人竟然忘记了屏幕对面是一台机器,沉浸在与“它”交谈的乐趣中。
更令人惊讶的是,一些完全不了解计算机的人在与 ELIZA 交谈后,也会被它“欺骗”。有一次,一位秘书在使用 ELIZA 时,竟然花了很长时间向它倾诉自己的情感问题。当她被告知自己一直在和一台计算机说话时,她感到非常震惊和困惑——她怎么也无法相信,那个认真倾听、适时提问、充满同理心的“朋友”,竟然只是一堆代码。
ELIZA 究竟是怎样工作的呢?为什么它能够骗过那么多人?答案藏在它的核心机制中:模式匹配(Pattern Matching)。
让我们来做一个思想实验。假设你是一个接待员,有人走进来说:“我今天心情很糟糕。”你会怎么回应?你可能会说:“为什么心情糟糕呢?发生了什么事吗?”这就是人类对话的基本模式:识别对方话语中的关键内容,然后做出符合情境的回应。
ELIZA 正是利用了这个原理。它内部存储了大量的“模式规则”,每条规则由两部分组成:输入模式和输出模板。当用户输入一段文字时,ELIZA 会扫描这段文字,寻找是否有某个模式能够匹配。如果找到了,它就会根据对应的输出模板生成回复。
举个例子。如果用户说:“我很不开心,因为我考试没考好。”ELIZA 可能会识别到“因为我”这个关键词(key word),然后应用类似这样的规则:
输入模式:如果包含“因为我”,那么把“因为”后面的内容提取出来 输出模板:“你因为【提取的内容】而感到【情绪词】吗?”
于是,ELIZA 会回复:“你因为考试没考好而感到不开心吗?”
看,是不是很像真人在对话?这种技巧后来被称为关键词反射(Key Word Reflection),是 ELIZA 最著名的技术之一。
但 ELIZA 的聪明之处远不止于此。它还有一个专门为心理咨询场景设计的角色——DOCTOR。在这个模式下,ELIZA 会模拟一位罗杰斯学派(Rogerian)的心理咨询师。为什么要模拟这种特定的角色呢?因为罗杰斯学派的咨询风格有一个特点:咨询师很少直接给出建议或结论,而是通过不断提问和反馈,引导来访者自己思考和表达。比如,当来访者说“我觉得生活没有意义”时,罗杰斯学派的咨询师不会说“你应该去看开一点”,而会说“听起来你对生活感到失望,能多说一些吗?”
这种风格恰好非常适合 ELIZA 的模式匹配机制。因为它不需要给出真正有深度的回答,只需要不停地提问、反射、澄清就可以了。比如:
用户:“我觉得很孤独。” ELIZA:“你说你觉得孤独,这对你来说意味着什么?”
用户:“我想找人聊聊。” ELIZA:“我们继续聊聊你想找人聊聊这件事吧。”
注意到了吗?ELIZA 的回答看起来很有道理,但实际上并没有提供任何真正有价值的信息。它只是在“重复”和“提问”之间切换,引导用户继续说下去。这就是它的魔力所在:对话的本质不是给出答案,而是保持对话的流动。只要能维持对话继续下去,很多人就会不知不觉地“入戏”,忘记对面只是一台机器。
那么,ELIZA 是怎样识别关键词的呢?让我们用一个更具体的例子来看看它的工作流程:
假设用户输入:“我今天和男朋友吵架了。”
第一步:扫描关键词。ELIZA 会扫描整个句子,寻找它的“词典”中定义的关键词。它的词典里可能有这些词:“我”、“男朋友”、“吵架”、“今天”等。
第二步:确定优先级。如果多个关键词同时出现,ELIZA 需要决定优先处理哪个。通常,它会按照预定义的优先级列表来选择。比如,在 DOCTOR 模式下,“男朋友”可能比“我”优先级更高。
第三步:模式匹配。一旦确定了要处理的关键词,ELIZA 就会查找与该关键词相关的模式规则。比如,对于“吵架”,可能有这样的规则:“X吵架Y” → “告诉我更多关于你们吵架的事”。
第四步:生成回复。最后,ELIZA 会使用匹配到的规则,将用户输入转换成回复。如果同一个关键词有多个匹配的规则,它会随机选择一个,增加对话的多样性。
第五步:处理无匹配情况。如果用户说的话里没有任何关键词,比如只是说“好吧”或“我不知道”,ELIZA 会使用一组通用的回复,比如“那很有意思”、“请继续说下去”等。
这个过程每秒可以执行无数次,而且对于每一句话,ELIZA 都会完整地走完这五个步骤。所以,无论你说什么,ELIZA 总能给出回复——尽管这些回复不一定有深度,但至少看起来很“流畅”。
正是因为 ELIZA 的这种设计,很多人在与它交谈时会产生一种“被理解”的错觉。就像你在看魔术表演时,明明知道魔术是假的,但眼睛还是会被欺骗一样;你在和 ELIZA 聊天时,明明理智上知道它是程序,但情感上还是会不自觉地“代入”进去。这就是心理学上所谓的“ELIZA 效应”(ELIZA Effect)——人类倾向于对计算机系统赋予过多的人类特质和智能,即使我们知道它们只是程序。
ELIZA 效应之所以会发生,有几个重要的原因。首先,人类天生具有认知捷径(Cognitive Shortcut)的倾向。当我们看到屏幕上出现文字,并且这些文字看起来像是“对话”的时候,大脑会自动调用处理人类对话的认知模式。我们会假设对方有思想、有情感、会回应我们的需求。这种假设如此根深蒂固,以至于我们需要额外的认知努力才能“关闭”这个模式。
其次,ELIZA 的设计者刻意利用了人类对话的一些表面特征。比如,ELIZA 会使用“你”这个第二人称代词,让我们感觉它在直接对我们说话;它会适时地提出问题,让我们感到被倾听;它会重复我们说过的话,让我们感到被理解。这些技巧在人类心理咨询中被广泛使用,当 ELIZA 借用这些技巧时,即使它的回应是机械的、模式化的,人们也倾向于认为它“有同理心”。
第三,模糊性也是 ELIZA 效应的帮凶。很多 ELIZA 的回复是模棱两可的,比如“请继续”、“我明白了”。这些回复可以有很多种解释,人类的大脑会自动填充那些缺失的细节,使对话变得“合理”。就像看一幅模糊的图片时,我们会不自觉地根据已有的经验来“填补”缺失的部分。
但是,ELIZA 再怎么聪明,终究还是露出了不少“马脚”。任何与它交谈超过十五分钟的人,都会逐渐发现一些问题。
第一个问题:缺乏真正的上下文理解。假设我们进行这样的对话:
用户:“我很喜欢我的猫。” ELIZA:“你说你很喜欢你的猫。请继续。”
用户:“它是一只橘猫,很胖,每天都睡在我腿上。” ELIZA:“关于你的猫,你还想说些什么?”
用户:“但是最近它生病了,我很担心。” ELIZA:“你担心是正常的。请继续说说你的情况。”
注意到问题了吗?ELIZA 并没有真正理解我们对话的内容。它只是机械地提取关键词并生成回复。当用户从“开心地说猫很可爱”转向“难过地说猫生病了”时,ELIZA 还是用同样的语气和句式回应,好像什么变化都没有发生。真正的心理咨询师会敏锐地察觉到这些情绪变化,并做出相应的调整,但 ELIZA 做不到这一点。
第二个问题:循环回复。在与 ELIZA 长时间交谈后,很多人会发现它开始重复自己。比如,它可能会反复用类似的句式提问,或者总是把话题引向某个特定的“套路”。这是因为 ELIZA 的回复是随机选择的,但它的模式库是有限的。当对话时间足够长时,相同的模式会被重复使用,用户就会感到“千篇一律”。
第三个问题:无法处理复杂逻辑。ELIZA 无法真正理解句子之间的逻辑关系。比如,你说:“虽然我很忙,但我还是决定今天去锻炼。”ELIZA 可能只会简单地提取“忙”或“锻炼”这些关键词,而完全忽略了“虽然...但是...”这个转折关系所表达的含义。它无法理解你实际上是在说“我很忙,但我认为锻炼很重要,所以我克服困难去做了”。
第四个问题:缺乏记忆和人格。每一次你重新开始与 ELIZA 对话,它都是“全新”的。它不记得你们之前聊过什么,不记得你的名字、你的故事、你喜欢的颜色。如果你说:“我们之前聊过我的猫...”,ELIZA 会困惑地回答:“你说的'我们之前聊过'是什么意思?”此外,ELIZA 也没有一个固定的“人格”。它是完全中性的,没有任何偏好、没有任何立场、没有任何情感。你问它喜欢什么,它会说:“你觉得呢?”你问它怎么看,它会说:“你说呢?”
这些问题揭示了一个深刻的事实:ELIZA 并不是真正在“理解”语言,它只是在模仿人类对话的表面形式。它没有内部的知识库、没有对世界的认知、没有情感的体验。它所做的一切,都是基于表面的模式匹配和统计规则。
这就引出了一个重要的概念:统计学习方法(Statistical Learning Method)。让我们用抛硬币和掷骰子的比喻来理解它。
想象一下,你和一个朋友玩一个猜硬币的游戏。你把一枚硬币抛到空中,它落地后不是正面朝上就是反面朝上。纯粹从概率的角度来说,每次抛硬币,正面和反面朝上的可能性都是50%。如果你连续抛十次硬币,记录下每次的结果,你可能会得到类似这样的序列:正、正、反、正、正、正、正、反、反、正。
这个序列看起来是随机的。但如果你仔细观察,你会发现一个有趣的现象:虽然单个结果是随机的,但整体上,正面和反面的比例会趋近于50%。这在统计学上叫做大数定律(Law of Large Numbers):当你做足够多次的随机试验时,平均结果会趋近于期望值。
现在,让我们把这个比喻应用到语言上。你可以把语言想象成一枚巨大的“硬币”,只不过这枚硬币不是只有两面,而是有无数个面——每一种可能的词语搭配、每一种可能的句子结构、每一种可能的对话回应。
当你阅读一本书时,你实际上是在“抛这枚语言的硬币”。每一个词语的选择、每一个句子的构造,都是一次“抛硬币”的结果。只不过,这些“抛硬币”的结果并不是完全随机的——有些结果比其他的更常出现。
比如,在中文里,“很高兴认识你”是一个常见的表达,“很”后面通常跟着描述心理状态的形容词,如“高兴”“开心”“满意”等。但如果你说“很高兴桌子”,人们会觉得这句话很奇怪,因为“桌子”不是描述心理状态的词语。这说明,在语言中,词语之间的搭配是有规律的,不是完全随意的。
统计学习方法的核心思想就是:从大量的数据中,发现这些隐藏的规律。机器会“阅读”海量的文本,然后统计各种词语搭配、句子结构出现的频率。基于这些统计,它就能“预测”在一个给定的上下文中,下一个词最可能是什么,或者一个句子是否“像人话”。
这就好像你玩掷骰子的游戏。你掷了很多次骰子,记录下每一次的结果。你发现,数字1出现了100次,数字2出现了105次,数字3出现了98次,数字4出现了102次,数字5出现了99次,数字6出现了96次。虽然每次掷骰子的结果是随机的,但通过统计,你发现每个数字出现的频率大致相等(大约100次左右)。这个统计结果让你对“掷骰子”这个随机过程有了更深入的理解。
语言也是类似的。假设你阅读了一万篇文章,统计每个字后面可能出现的下一个字。如果发现“电”字后面有80%的概率会出现“脑”,有15%的概率会出现“话”,有5%的概率会出现其他字,那么当你看到“电”这个字时,你就能预测下一个字大概率是“脑”。这就是统计语言模型(Statistical Language Model)的基本思想。
当然,真实的语言远比硬币或骰子复杂。语言中有长距离的依赖关系,有语义的歧义,有文化的背景知识,有情感的细微差别。这些都是统计学习方法需要面对的挑战。但基本思路是相同的:通过分析大量的语言数据,发现其中的统计规律,然后用这些规律来生成或理解新的语言。
统计学习方法的出现,标志着人工智能研究的一个重要转折点。在那之前,很多研究者认为,要让机器理解语言,必须让机器像人类一样,先理解语言所表达的概念和意义。但统计学习方法提供了一个不同的思路:也许我们不需要让机器真正“理解”语言,只要让它学会语言使用的统计规律,就能产生类似智能的行为。
这个思路在后来被证明是非常成功的。当代的语言模型,包括我们后面会详细讨论的 Transformer 和 GPT,都是建立在统计学习的基础之上的。它们通过分析互联网上的海量文本,学会了语言的统计规律,从而能够生成看起来非常自然的文本。
但我们也要认识到,统计学习方法并不是万能的。知道“太阳从东边升起”的概率很高,并不意味着真正理解为什么会这样。同样,一个学会了很多词语搭配的语言模型,可能能够流畅地说话,但不一定真正理解它在说什么。这种“知其然不知其所以然”的特点,是当前人工智能的一个重要局限性。
回到 ELIZA 的故事。韦岑鲍姆在开发 ELIZA 的时候,其实并不是想要创造一个真正智能的程序。他只是想演示人机对话的可能性,用最少的代码实现一个看起来能聊天的程序。但让他意想不到的是,ELIZA 引发了巨大的社会反响。人们对它的热情远超他的预期。很多人真的把它当成了一个可以倾诉心事的朋友,甚至有人提出要把 ELIZA 用于正式的心理咨询服务。
这让韦岑鲍姆感到非常不安。他写了一篇著名的论文,详细解释了 ELIZA 的工作原理,试图告诉人们:这个程序并没有真正的智能,它只是在玩文字游戏。但他的解释并没有阻止人们的热情。相反,很多人看了论文之后更加兴奋了——他们觉得,既然这么简单的技术都能骗过人类,那更复杂的技术岂不是能做更多的事情?
几年后,韦岑鲍姆写了一本名为《计算机能力与人类理性》(Computer Power and Human Reason)的书。在书中,他反思了自己创造 ELIZA 的经历,以及整个人工智能领域的发展。他提出了一个深刻的观点:计算机的能力和人类的理性之间,有一道本质的鸿沟。计算机可以模拟人类的某些行为,但模拟并不等于真正的理解。一台能够下棋的计算机,并不真正“理解”下棋的意义;一个能够聊天的程序,并不真正“理解”聊天的内容。
韦岑鲍姆的这个观点,至今仍然值得我们深思。当我们惊叹于当代 AI 的强大能力时,我们也要问自己:我们是在创造真正有智能的存在,还是只是在创造更精密的“模仿者”? 这个问题没有简单的答案,但它会一直伴随我们,伴随着人工智能技术的发展,伴随着我们对“智能”本质的不断探索。
现在,让我们回顾一下这一章的主要内容。我们从一个问题开始:机器能理解语言吗? 我们看到,图灵提出了一个巧妙的检验标准:与其争论什么是“理解”,不如看看机器能否在对话中骗过人类。我们还认识了 ELIZA——世界上第一个“会说话”的程序。它通过简单的模式匹配技术,产生了一种“智能”的错觉。我们分析了 ELIZA 为什么能骗人,也分析了它为什么最终会露出马脚。
更重要的是,我们引入了统计学习方法的概念。我们看到,语言虽然复杂,但也是有规律可循的。通过分析大量的语言数据,机器可以学会这些规律,并基于这些规律来生成或理解新的语言。这种方法后来成为现代语言模型的基础。
但我们也要记住,统计学习方法有它的局限性。它能够捕捉语言的“表面规律”,但不一定能捕捉语言的“深层意义”。机器可以学会说“太阳从东边升起”,但不一定会理解为什么太阳从东边升起。这种区别,在未来的章节中会变得更加重要。
在下一章中,我们将继续探索语言模型的发展历程。我们会看到,在 ELIZA 之后,研究者们是如何一步步改进语言模型的技术,让它们能够处理越来越复杂的语言任务的。我们会认识 n-gram 模型——一种更系统的统计语言模型;我们会了解 隐藏马尔可夫模型——一种能够处理序列数据的强大工具;我们还会看到,语言模型是如何从“简单的词语预测”逐步进化到能够处理复杂对话的能力的。
这条从 ELIZA 到现代语言模型的道路,充满了智慧的闪光点,也充满了失败的尝试。每一步前进,都凝聚着无数研究者的心血。让我们带着好奇心,继续这段探索之旅吧。
---
本章小结 | Chapter Summary
1. 图灵测试(Turing Test)是由艾伦·图灵提出的检验机器是否具有智能的方法,其核心思想是:如果机器能够在对话中让人类误以为它是人类,那么就可以认为机器具有智能。
2. ELIZA 是世界上第一个“会说话”的程序,由约瑟夫·韦