AI 究竟是如何运作的,用大白话讲
一旦你看清聊天机器人是如何生成文字的,其他模块里的那些失误就不再令人意外。生成式 AI 模型的核心运作方式,就是根据训练时用到的海量文本中的规律,一遍又一遍地预测下一个词。正是这海量的语言数据,使得这类工具被称为大语言模型(large language model)。仅凭这一个简单的引擎,如今的模型就能做很多事情,而研究者们对这是否等同于真正的理解,仍然存在真实的分歧。你不需要为这场争论下定论,也能把这个工具用好。对这项工作而言,重要的是:它产生的语言来自统计规律,而不是来自一套已核实并存储的事实,这正是它能够听起来流畅、却仍然可能出错的原因。
两分钟,当一次"模型"
- 找一个人在纸上写下关于本地某个办事处的一句话开头,两三个字就行。
- 把纸条轮流往下传,每人只添一个词语(哪怕只有一两个字也可以),写你觉得接下来最可能出现的内容,不许讨论。
- 传满八到十轮,或者句子读起来已经自然收尾,就停下来,把这句话大声念出来。
这听起来像一句正常的话吗?里面有哪些是真的?现场没有一个人决定过它必须是真的。
- 它并不是从一套已核实并存储的事实中查找答案;它生成的是根据规律统计上可能出现的内容。这很强大,也正因如此,它才会听起来流畅却依然可能出错——这正是人们说聊天机器人"产生幻觉"时的意思。
- 因为它从文本中学习,所以凡是文本较少的地方它就更弱:资源较少的语言、地方性的规则和办事处,以及非常近期的变化。它训练所得的记忆有一个截止日期,尽管现在许多工具会加入实时网络搜索来跨越这个截止日期,但答案的可靠程度终究取决于它所引用的来源。
transformer(转换器)到底在做什么
这些工具里用的这类 AI 叫大语言模型(large language model),而它们大多采用的架构叫 transformer(转换器)。transformer 是一种人工神经网络(artificial neural network),也就是许多简单的、相互连接的单元组成的网络,其设计大致受到大脑中神经元连接方式的启发,不过运作方式和真正的大脑相当不同。你不需要懂数学也能用好它。几个简单的概念就能解释它为什么如此流畅,也能解释它为什么会以模块中描述的那些方式出错。
模型并不是以完整单词为单位工作的。它把文本切分成更小的片段,叫作词元(token),大致相当于一个短单词或一个单词的一部分,它一次读写一个词元。英语通常只会切分成很少的词元。许多其他语言在表达同一句话时会切分成多得多的词元,这是同一个请求在服务对象使用的语言中可能更慢、花费更高、返回结果也更不准确的一个具体原因。
在每一步,模型都会回顾到目前为止写下的全部内容,并权衡哪些较早的词对选择下一个词最重要。这种权衡就叫注意力(attention),是 transformer 架构新增的核心思想。正因如此,模型才能让一个代词正确地对应到相应的名字,并在整段文字中保持同一个话题。模型做的是关于词与词之间关系的统计权衡,并不是像人一样理解含义。
模型是通过阅读海量文本、并不断调整数十亿个内部数值(叫作参数,parameter)学会的,直到它对下一个词元的猜测和实际出现的内容相符为止。没有任何东西是作为可查阅的事实被存档的。它保留下来的是一张关于哪些词往往跟在哪些词后面的规律网络。这就是为什么它能写出一句流畅、自信、但其实是错的话。
模型并不总是选取唯一那个最可能出现的下一个词元。它会在可能的选项中进行采样,使用一个常被形容为从"保守"到"有创意"的旋钮式设置。把这个设置调高,写出的内容会更多样,也会离事实更远。正是这种采样,使得把同一个问题问两遍,可能会得到两个不同的答案。
模型一次只能在视野中保留有限数量的文本,这叫作上下文窗口。在一段很长的对话里,最早的部分会被挤出视野之外,所以它可能忘记你在开头告诉过它的内容。粘贴一份很长的文档,也会以同样的方式把更早的细节挤出去。
这些都不是要你去信任这套机制。它是要告诉你其他模块里那些做法背后的原因。因为这个工具产生的是"听起来可能"的语言,而不是经过核实的事实,所以你打算当作事实来依赖的任何内容,在通过网络搜索或其他可信来源核实之前,都应当视为未经核实。核实重要的信息,并预期会有语言差距。
从词到数字,NLP 在做什么
这些工具背后的领域叫作自然语言处理,或 NLP(natural language processing),意思是让计算机能够处理人类语言。计算机无法对“诊所”这个词做数学运算,所以它做的第一件事就是把语言转换成数字。这一个转变可以解释这些工具做对和做错的许多事情。
NLP 把每个词元转换成一长串数字,叫作嵌入(embedding),你可以把它想象成空间中的一个点。用法相似的词最终会靠得很近,所以“诊所”、“医院”和“医生”彼此靠近,而“诊所”和“自行车”则相距很远。模型从来看不到含义,它处理的是位置和距离。
因为相关的词彼此靠近,模型可以通过在这个空间中移动来作答。它可以把“生病时会去的地方”这个概念带到“诊所”的邻近区域,而完全不需要给它下过定义。这很强大,但本质上仍然是联想,所以它也可能把只是表面相似的事物联系起来。
这些位置来自真实的人类文本,所以文本中的任何模式,包括刻板印象,都会被建构进这张地图里。模型可能会把某些职业或特质放得离某一群体更近、离另一群体更远,仅仅因为训练文本本身就是这样。这是偏见在任何人向模型提出问题之前,就已经进入模型的一种具体方式。
每种语言在这个空间里都会分到自己的一份,其大小取决于模型在训练时见过多少这种语言的文本。网上文本较少的语言,得到的地图就更粗糙、更不可靠。这是资源较少的语言里答案质量更差的一个更深层的原因,而且不只是在模型做翻译的时候才会这样。
你不需要懂数学。有用的想法是:这些工具运行在从人类文本中学到的词与词之间的距离之上。这就是为什么它们如此流畅,为什么会带有那些文本中的偏见,也是为什么它们在服务对象最需要的那些语言上表现最弱。
- 它可能编造看起来完全真实的来源、引用和链接。
- 它可能忘记长对话中较早的部分,因为它一次只能在视野里保留有限的文本。
- 同一个问题问两次,可能得到两个不同的答案。
- 措辞的自信并不能证明它是正确的。
- 你粘贴进去的任何内容都已经发送给了这个工具,所以要把它当作已经分享给了那家公司。
把同一个问题问两次
给大家一个关于本地规则或办事处的事实性问题。在两个不同的对话里,把同一个问题问 AI 工具两次,并把两个答案都朗读出来。留意它们在哪里不一致,并标出那些无论如何都需要核对的具体细节,比如电话号码、截止日期、地址。这个道理会自己显现出来:措辞流畅并不等于事实已经得到确认。