1 当计算机开始“听懂”人类
随着人工智能的发展,AI 正逐渐进入普通人的日常生活。相比过去那些需要学习操作方式的计算机程序,如今的 AI 有一个非常明显的变化:你可以像平时和其他人说话一样,告诉它自己想知道什么、遇到了什么问题、需要完成什么任务,甚至可以只说出一个并不完整的想法,它往往也能够根据上下文理解你的意思,并给出相应的回答。
从表面上看,这似乎只是人类与计算机交互方式发生了变化,但往深处探究,这种变化其实远没有表面上那么简单:因为人类的语言可不是一套简单的命令。
同一句话放在不同的语境中,可能有完全不同的含义;一句看似普通的话,也可能包含玩笑、讽刺、暗示,甚至一些没有直接说出来的意思。很多时候,我们甚至会省略一些彼此默认的信息,而对方依然能够理解我们真正想表达的内容。
但面对这些复杂的表达,今天的 AI 却经常能够给出符合语境的回应。这也是为什么,在与 AI 进行对话时,我们很容易产生一种非常直观的感觉:它似乎真的听懂了。
而当这种能力进一步延伸到回答问题、分析信息、解释概念、进行推理,甚至围绕一个问题与人持续交流时,我们又很容易进一步产生另一个联想:它是不是也具备了某种类似人类的思考能力? 毕竟,在我们的日常经验中,一个能够这样与自己持续交流、回应问题的对象,很容易让人觉得它背后也存在某种思维活动。
这不禁让人产生疑问:“看起来像在思考”,真的意味着它能像人一样思考吗?如果不是,那么计算机究竟是通过什么方式,获得了这种近似于人类的语言能力?
要搞清楚这些问题,或许需要先从人类自身出发,重新审视一个我们习以为常的问题:人究竟是怎样学会使用语言的?
2 熟读唐诗三百首,不会作诗也会吟
“熟读唐诗三百首,不会作诗也会吟”,是中国人非常熟悉的一句话。它通常被用来形容一个原本不会作诗的人,仅仅通过大量阅读和熟悉诗歌,似乎就能够慢慢获得某种“作诗”的能力。
但如果仔细想想,这件事情其实很值得玩味:一个人只是读了很多诗,为什么就能学会作诗?
按照我们通常理解的学习方式,想要学会一件事情,似乎应该先掌握相应的规则。那么,如果要学写诗,就应该先学习什么是五言、七言,什么是押韵、平仄和对仗,了解不同诗体的格式,以及诗句应该如何组织。掌握这些规则之后,再按照规则进行创作。这是一种非常明确的学习路径:先知道规则,再按照规则行动。
但这句话描述的却是另一条路径:它没有强调先把诗歌理论全部学会,而是强调一个非常朴素的过程:熟读。所谓“熟读”,是指通过不断接触、反复阅读,让自己熟悉大量具体的诗句。在这个过程中,他可能逐渐知道什么样的句子听起来像诗,什么样的表达放在一起比较自然,什么样的节奏读起来顺口。即使无法准确说出其中的规则,他也可能慢慢形成一种我们经常称之为“语感”的东西。
比如,一个人可以说不清楚什么是平仄,却能够感觉一句话读起来“不对”;也可以无法准确解释某种诗风的特点,却能够写出具有类似风格的句子。
也就是说,人通过学习形成的语言能力,并不只是对明确规则的掌握,也可能包含大量具体实例背后那些难以直接描述的规律。当这些规律逐渐内化之后,它们就不再只是“看过的东西”,而开始成为面对新的表达时可以借鉴的经验。
从这个角度来看,它描述的其实是一种我们并不陌生的学习现象。以练习英语口语举例:在国内学英语,很多人从词汇、语法一路学起,学了很多年,却未必能够自然地开口交流;但一些几乎没有接受过系统英语教育的老人,到了英语环境中,每天面对真实的交流需求,可能只需要几个月,就已经能够用英语买东西、问路,甚至和别人讨价还价。
他们当然不一定掌握了完整的英语语法,也未必能够解释自己说出的每句话为什么这样说,但在不断接触和使用的过程中,一些原本需要刻意思考的表达,会在无意识中变得熟悉,语言中的规律也会慢慢沉淀为一种可以直接使用的语言能力。
3 当“熟读”变成一种能力
通过前面的讨论我们已经知道,人获得语言能力并不只有先掌握规则这一条路径。 大量接触和反复使用,也可以让原本需要刻意思考的语言规律,逐渐内化为无需刻意调用的能力。
当这种能力真正形成之后,就会出现一个很重要的变化:过去积累的经验不再只用于处理已经见过的内容,而开始能够作用于新的表达。一个人即使从来没有写过某个题材,也可以根据过去积累的语言经验,写出一首符合这种风格的诗。这首诗并不是对过去某首诗的简单复制,其中甚至可能出现过去从未见过的句子,却依然能够符合他已经形成的语言习惯。
而要形成这样的新表达,过去积累的语言经验首先需要参与对眼前内容的理解和关联。 看到“明月”,可能会联想到“故乡”“思念”“夜晚”;看到“孤舟”,又可能联想到“漂泊”“江水”“离别”。这些联系并不一定是经过明确推理才产生的,而是在长期接触语言的过程中逐渐形成,并在遇到相关表达时被自然地调动出来。
而这些联系又会进一步影响我们对后续内容的判断。比如熟悉唐诗的人看到“海内存知己”时,很容易想到下一句“天涯若比邻”。在这里,前面的几个字已经为后面的内容提供了很强的提示。读得越多、越熟悉这种表达方式,面对新的内容时,就越容易根据已经出现的信息判断接下来可能出现什么。
到这里,我们可以看到,所谓“会吟”,并不是简单地把过去读过的内容重新拿出来,而是能够利用过去积累的语言经验,从眼前的表达出发,建立内容之间的关联,并据此判断和生成后续内容。
而这一切的基础,就是过去大量接触过的内容并没有随着学习结束而简单地停留在记忆中,反而逐渐转化为一种可以继续参与语言处理的经验。
4 AI 是怎样一步步生成回答的?
如果把这个过程放到 AI 身上,问题就变成了:AI 是怎样利用过去接触过的大量语言信息,来生成从未见过的新表达的?
如果仔细想想,我们平时回答一个问题时,其实也不是简单地从记忆中找到一段现成的话。比如,别人问我们:“为什么天空是蓝色的?”,我们会从已经掌握的知识中调取相关内容,确定回答的方向,然后组织自己的表达。问题本身提供了上下文,而上下文又会影响我们接下来应该说什么。
那么,当我们把一个问题交给 AI 时,这个过程又是怎样发生的?
名词解释
AI
AI 是一个更宽泛的概念。我们平时使用的聊天机器人、AI 助手等,都可以看作 AI 应用。对用户来说,我们是在直接和“AI”对话。
大语言模型
聊天机器人能够根据我们输入的问题生成文字回答,是因为其背后运行着大语言模型。用户看到的是 AI 应用,真正负责根据上下文预测并生成后续文字的,则是其中的大语言模型。 本章接下来讨论的“预测”和“生成”,具体指的就是这个过程。
比如,我们问 AI:“为什么天空是蓝色的?” AI 可能会从“太阳光进入大气层之后发生了散射”开始回答。此时,这句话就成为了当前已经生成的内容。
接下来,模型会根据包括这句话在内的当前上下文,继续预测什么内容更可能出现在后面。于是,后面可能出现“太阳光包含不同颜色的光”,再往后可能出现“不同颜色的光具有不同的波长”,然后继续出现“蓝光比其他颜色的光更容易被散射”等内容。
这个过程可以简单表示为:

可以看到,AI 并不是沿着一条预先写好的路线,把答案逐项取出来,而是在每一步生成之后,根据此时已经出现的全部内容,继续预测下一步。
最终,我们看到的是一段围绕这个问题展开的完整回答,但这段完整的回答,并不是一开始就已经存在的,而是在这样的生成过程中逐步形成的。
从这个角度来看,大语言模型最基本的工作方式其实可以概括成一句话:根据已经出现的内容,预测接下来最可能出现的内容。
当然,这只是其中一种可能的展开方式。如果回答一开始选择了不同的切入点,后面的内容也可能沿着不同的方向展开。也就是说,同一个问题,并不一定对应一条固定的回答路径。
5 AI 凭什么能预测下一步?
上一章我们看到,大语言模型生成回答的基本过程,可以概括为:根据已经出现的内容,预测接下来最可能出现的内容。 但问题随之而来:AI 凭什么知道什么内容“最可能”出现?
这里的“最可能”,并不是一个模糊的说法。从数学上看,大语言模型的预测本质上是一种概率判断:面对当前已经出现的内容,模型会为不同的后续内容判断其出现的可能性,并选择其中更可能的结果。
我们先看一个简单的例子。假设看到:“太阳从东方……”,我们很容易想到“升起”。当然,后面并不是只能出现这个词,也可能是“出现”“移动”,甚至其他内容。但在通常的语言表达中,“升起”显然更加自然,这是我们在长期接触和使用语言之后形成的经验。
大语言模型面对类似的情况时,同样需要从多个可能的后续内容中确定接下来生成什么。比如:

所以,这里的“预测”并不是简单判断一个词“对不对”,而是根据当前上下文,计算不同后续内容出现的可能性,并据此决定下一步生成什么内容。
那么,模型又是依据什么来计算这些概率的?答案是:训练。在训练过程中,模型会接触大量语言实例。例如,它可能反复看到“太阳从东方升起”这样的表达。随着训练不断进行,模型内部的参数会不断调整,不同词语、表达以及它们之间的关系,也会逐渐在模型中形成稳定的关联。
因此,当模型以后再次看到“太阳从东方……”时,它并不需要临时寻找一个完整的标准答案,而是可以利用训练过程中形成的参数关系,对不同的后续内容进行计算。在当前上下文中,“升起”之所以更容易被预测出来,是因为这些参数关系使它获得了更高的概率。
而且,模型并不需要在训练数据中见过完全相同的句子,才能进行预测。只要训练过程中形成的语言关系能够作用于新的上下文,它就可以面对过去没有出现过的具体表达。这也是为什么大语言模型能够生成大量训练数据中从未直接出现过的句子:它学习到的并不只是过去出现过哪些内容,还包括这些内容之间的复杂关系,而这些关系会进一步影响新的预测。
需要强调的是,概率上最可能出现的内容,并不意味着它一定正确。模型的预测可以与上下文高度匹配,生成的内容也可能看起来十分合理,但这并不意味着其中的事实一定准确、逻辑一定成立。因为模型首先解决的是“接下来什么内容最可能出现”,而不是直接判断“什么才是真实或正确的”, 这也是理解大语言模型局限性的一个重要入口。
6 模型是怎样学会预测的?
上一章我们看到,大语言模型之所以能够预测接下来最可能出现的内容,是因为在训练过程中,模型内部的参数形成了大量复杂的关系。
但这些关系并不是模型一开始就拥有的。模型最初并不知道什么内容更可能出现在后面,它需要通过训练,一点一点形成这种预测能力。 那么,训练究竟是怎样发生的?
还是用之前的例子。假设训练数据中出现了这样一句话:“太阳从东方升起。” 模型看到“太阳从东方”之后,需要预测下一个最可能出现的内容。
一开始,它的预测可能并不准确。比如,它可能认为“落下”也有一定可能性,甚至可能给出完全不符合语境的结果。这时候,训练就可以继续进行:

这里最关键的地方在于,模型并不是因为“看到了正确答案”就直接把答案记住了,而是在一次次预测和修正的过程中,根据预测结果与真实结果之间的差异,不断调整模型内部的参数,进而改变后续预测中不同内容出现的可能性,使预测结果逐渐接近真实结果。
如果把参数简单理解成模型内部大量可以被调整的数值,那么它们就可以看作模型在训练过程中逐渐形成的“内部状态”。经过大量训练之后,这些参数中逐渐形成了模型从训练数据中学习到的各种语言关系,并进一步影响它面对新内容时的预测。
换句话说,训练并不是简单地把大量文本保存下来,而是让模型反复经历预测、比较和调整的过程。训练数据提供了一次次学习的实例,而参数则是这些学习过程最终留下的结果。
前面我们讨论过,人学习语言同样是在不断接触、使用和纠正的过程中,逐渐形成语言能力。比如,一个孩子刚开始说话时,并不知道哪些词应该放在一起,也不知道一句话应该怎样组织;但随着接触越来越多,他会逐渐熟悉这些表达之间的关系。
大语言模型的训练虽然与人的学习过程完全不同,但二者最终都体现出一个值得注意的现象:学习过程中形成的东西,并不会随着学习结束而失去作用,而是会继续影响之后面对新情况时的处理。
7 模型是怎样利用上下文的?
前面我们讨论了模型是怎样通过训练逐渐“学会”预测的,但学会预测只是第一步。当一个新的问题进入模型之后,它还需要结合上下文,判断当前内容应该重点关注哪些信息,并利用这些信息决定接下来预测什么。 那么,模型究竟是怎样做到这一点的?
比如:“小明把书放在桌子上,因为它很旧。”当我们看到“它”时,并不会只看这个字本身,而是会结合前面的内容判断它指的是什么——“它”和“书”之间的关系,显然比“它”和“小明”之间的关系更加重要。如果换成“因为它很结实”,我们对“它”的理解又可能发生变化。
这说明,在理解一句话时,我们并不是孤立地处理每一个词,而是会结合上下文,判断当前内容与哪些内容更相关。这种相关性又会影响我们对当前内容的理解,进而影响我们对后续内容的预测。大语言模型面对语言时,也需要处理类似的问题。
还是之前的例子:“为什么天空是蓝色的?”模型不能只是分别处理“为什么”“天空”和“蓝色”,而需要结合这些内容以及它们之间的关系,形成对当前问题的整体表示。当模型开始生成回答时,这些已经处理过的上下文信息又会继续影响后面的预测。 例如,生成“太阳光”之后,模型还需要结合前面的“天空”“蓝色”等信息,继续预测后面可能出现的内容,如“大气层”“散射”等。
这时候,一个问题就摆在了模型面前:如果一句话中的不同内容会相互影响,模型又该怎样处理这些内容之间的关系? Transformer 提供了一种处理这类问题的模型结构,使模型在处理输入时,能够把不同位置上的信息联系起来,并让这些关系参与后续的计算。
其中,一个非常关键的机制叫作 Attention(注意力机制)。如果用一个直观的方式理解它,可以把它看成:模型在处理某个内容时,会根据当前的情况,判断上下文中的哪些内容更加相关,并让这些内容对当前的处理产生更大的影响。
例如,处理“它”时,“书”可能比“小明”更值得关注;处理“蓝色”时,“天空”可能比其他内容更加相关。这些被强化的上下文关系,会进一步影响模型对当前内容的表示,并最终参与后续的概率预测。 模型正是通过这样的方式,让上下文中的不同内容共同参与下一步生成。
8 回到最初的问题
前面我们一路追问了几个看似简单的问题:AI 为什么能够根据一个问题生成一段此前并不存在的回答?为什么经过大量训练之后,它能够处理训练数据中没有直接出现过的新问题?而一段完整的回答,又为什么能够围绕当前问题逐步展开?
到这里,这些问题其实已经可以放在同一条链条上理解:大语言模型通过大量语言数据进行训练,在不断的预测、比较和调整中改变内部参数;训练完成之后,它面对新的输入,会结合上下文中的不同内容及其关系,对接下来最可能出现的内容进行预测;每一次生成的内容又会成为后续预测的一部分,最终形成我们看到的完整回答。
到这里,我们再回头看第一章提出的那个问题:AI 为什么会给人一种“听懂了”的感觉?
原因在于: 面对人类语言时,它并不是简单地把输入当作一组彼此孤立的词,而是能够结合上下文作出连贯、符合语境的回应。而当这种能力连续用于一个对话时,这种表现就很容易让我们联想到“理解”和“思考”。
但如果把这种表现背后的过程一层层拆开,就会发现,它最终仍然建立在一次次预测之上。而这也正是理解大语言模型的一个关键视角:不要只看它表现得像什么,更要追问它究竟是怎样做到的。