AI 是怎么学会说话的 书架

第 05 章 / 共 10 章

第五章 · 注意力:不再逐字读书

先回忆一下老办法的毛病

上一章末尾,我们给「打分机器」出了一道难题:

「小狗追着球跑进了花园,它浑身都湿透了,因为外面正在下雨。」

机器读到「它」的时候,必须想起几十个词之前的「小狗」。在 2017 年之前,主流的做法是让机器从左到右逐字读,读一个词,就把这个词的意思揉进一个「脑子里的小结」里,带着这个小结继续往下读。这就像一个记忆力有限的人读书:不许回头翻页,只能边读边在心里做笔记。短句子还行,文章一长,开头的内容在笔记里越揉越糊,读到结尾早就忘了开头——「它」是谁,再也对不上号。

这个毛病困扰了研究者很多年。直到 2017 年,谷歌的一篇论文提出了一个完全不同的读法,论文标题就敢叫《Attention Is All You Need》(你需要的只有注意力)。这个读法叫 Transformer,就是 ChatGPT 里那个「T」。它一出来,老办法几乎一夜之间全部被取代。它做对了什么?

注意力:每个词都抬头环顾全场

新读法的核心思想,一句话就能说完:别逐字往前拱了,让每个词都抬起头,把整句话的所有词同时扫一遍,自己决定该重点看谁。

拿「它」举例。处理「它」这个词的时候,机器会拿「它」去跟句子里的每个词都算一个「相关度」:「它」对「小狗」——相关度很高(小动物会湿透,合理);「它」对「花园」——有点相关但不多;「它」对「因为」——几乎无关。算完之后,「它」的新含义就不再是干巴巴的「某个东西」,而是「主要吸收了『小狗』的信息、附带一点『花园』的信息」的一个混合体。代词指代谁,就在这一轮「环顾全场」里解决了。

这个「每个词环顾全场、按相关度吸收别的词的信息」的机制,就叫注意力(attention)。大白话说:每个词都在问同一个问题——「为了搞懂我自己在这句话里的意思,我最该看哪几个词?」

大白话:老办法是听汇报——信息一级一级传上来,传到后面全变了样。注意力是开全员大会——每个词直接跟所有词面对面,谁跟我相关我就多听谁的,没有中间商赚差价。

「应该看谁」是怎么算出来的

再往下钻一层,还是那老三样:乘法和加法。

每个词都带着自己的「住址」(第三章说的那串坐标)。注意力机制会用这些坐标算出词与词之间的相关度——直觉上,就是两个词的坐标「对得上」的程度越高,相关度越高。然后,每个词把所有词的坐标按相关度加权揉在一起:谁跟我相关,我就多揉一点谁的信息进来。揉完得到的新坐标,就是这个词「在当前语境下」的意思。

这解释了「一词多义」是怎么被处理的。「苹果」这个词,裸住址只有一个,但在「我咬了一口苹果」里,它环顾全场后吸收了「咬」的信息,新坐标就往「水果」的方向偏;在「苹果发布了新手机」里,它吸收了「发布」「手机」的信息,新坐标就往「公司」的方向偏。词义不再是查表查出来的死东西,而是现场算出来的。

而且机器不止雇一个「环顾员」。它同时派好多路注意力并行工作:一路专攻「谁指代谁」,一路专攻「谁修饰谁」,一路专攻「动作是谁发出的」……每一路叫一个「头」。几十个「头」各看各的重点,最后把各自的发现汇总。这就是为什么句子再绕,它也能把语法、指代、语义的关系同时抓住。

这个设计为什么引爆了一切

注意力机制的胜利,不只是「解决了指代问题」这么简单,它一次性扫清了三个老障碍:

至此,那台「打分机器」的构造就讲完了:token 变成坐标,坐标经过几十层「环顾全场+加权揉合」,最后吐出下一个词的排行榜。结构是人设计的,但里面几十亿个旋钮的具体数值,还是空的。这些旋钮怎么从一堆随机数变成满腹经纶?那是训练的事——下一章,我们去看这本史上最贵的「错题本」。

AI 是怎么学会说话的 · 百姓AI
费曼式写法 · 由多个 AI 代理撰写与互相审校