乐于分享
好东西不私藏

当 AI "读懂"你的话时,它其实一个字都不认识

当 AI "读懂"你的话时,它其实一个字都不认识

一个门外汉和 AI 的对话,拆开了大型语言模型最底层的秘密。


你有没有想过一个问题——你跟 ChatGPT 说话,它是怎么"看懂"的?

我给你三秒钟想一想。

……

好,答案可能让你意外:它根本看不懂。

你打进去的每一个中文字,在它眼里都是一串数字。它不知道"红"是什么颜色、"大"是什么感觉、"爱"是什么温度。它唯一会做的,是把数字扔进数学公式里,算出另一个数字,再从另一张表里找到对应的字——吐出来。

全程没有理解。全是数学。

但神奇的是——数学做完之后,效果就好像它真的懂了。

这中间到底发生了什么?我花了一个下午,用最笨的方式一层层拆开。这是我见过的最精彩、也最反直觉的"翻译"系统。


第一层:把中国字变成编号

你不会算"小红书 × 0.73"——因为"小红书"是汉字,不是数字。

AI 也一样。它的核心——神经网络——从头到尾只做一件事:矩阵乘法。几十亿次,全是数学。

所以第一步,必须把你的文字变成数字。

怎么变?查表。一本花名册,里面有 10 万个常见字和符号,每个对应一个编号。比如"小"是 58342,"红"是 21563,"书"是 10479。

注意——这只是一本花名册。它不管你写的是"小红书"还是"一本书"还是"书法"。"书"就是 10479,永远不变。

这就叫 Tokenization。听起来高级,其实就是换个马甲。


第二层:给每个编号一个"身份"

58342 这个编号本身没有任何意义。它跟 21563 之间的差是 36779——这个差没有任何语义含义。"小"并不比"红"大 36779。

所以 AI 手边还有第二本手册。

这本手册的每一行,是一个编号,后面跟着一长串小数——大概 768 个。比如:

58342 (”小”) → [0.23, -0.87, 0.01, ..., 0.91]21563 (”红”) → [0.18, -0.92, 0.05, ..., 0.88]

这一串小数,叫向量(Embedding)。它就是这个字的"身份信息"。

关键来了——这本手册不是人编的,是训练出来的

训练过程中,AI 读了海量文本。每当"小"和"红"一起出现,它就微微调整这两个字的向量,让它们靠近一点。每当"小"和"沥"(一个不存在的词组)分别出现在完全不同的语境里,它们就自动远离。几亿次调整之后——

"小"和"红"的向量天然靠近,"小"和"沥"的向量天然远离。

这不是人类告诉它的。它是自己从数据里"发现"的——两个字用法的相似程度,被翻译成了数学上的距离。


第三层:让每个字"看"周围

现在每个字都有自己的身份信息了。但问题来了——

同一个"书"字,在"小红书"里和在"一本书"里,意思完全不同。可它的身份信息是同一个。

怎么办?

让"书"去看它周围的字。

AI 让每个字都和句子里的所有其他字做一个运算——算一下"你跟我的关系有多大":

”书” × ”小” → 关系分 0.7 (高,在品牌名里常连在一起)”书” × ”红” → 关系分 0.6 (高,同上)”书” × ”美” → 关系分 0.05 (低,跟当前话题关系不大)”书” × ”妆” → 关系分 0.04 (低)

然后按照这些分数,把其他字的身份信息加权融合进来:

”书”的新身份 = 0.7 × ”小”的身份 + 0.6 × ”红”的身份 + 0.3 × ”上”的身份 + ...

算完之后,"书"不再只是"书"——它变成了"在'小红书'这个上下文里的'书'"。

这步叫 Self-Attention(自注意力)。重复几十层之后,每个字都不是它自己了——是被全文"染过"的版本。

"书"的最终身份里,同时包含了:它自己、紧邻的词、稍远的词、以及整段话的基调。


第四层:从向量里"抽出"下一个字

现在你整句话的语义被压缩在最后一个字的向量里。

接下来是最关键的一步——输出层。

它拿着这个向量,回到第一层那本花名册——注意,是同一本——跟里面 10 万个字的所有向量比距离

输出向量 × ”的”的向量 → 距离 0.12 ← 很近输出向量 × ”是”的向量 → 距离 0.45 ← 中等输出向量 × ”车”的向量 → 距离 0.89 ← 远

距离最近的,就是下一个字。但这还不够——它把距离转化成概率,再随机抽样(扔骰子):

”的” → 72%”是” → 18%”其” → 3%... → 剩下的%

骰子扔到谁,就输出谁。


最后一步:把输出接回去,再来一遍

最反直觉的一步来了。

输出了一个"的"字之后,AI 不是继续算剩下的——它把"的"接到你原来的输入后面,当成新的输入:

你的输入: ”帮我写一篇小红书美妆文案”第一轮后: ”帮我写一篇小红书美妆文案 好”第二轮后: ”帮我写一篇小红书美妆文案 好的”第三轮后: ”帮我写一篇小红书美妆文案 好的,”...

每蹦出一个字,整段话就多一个字,下一轮就多一个上下文。

这就是为什么你在屏幕上看到 AI 的回复是一个字一个字蹦出来的——不是前端做了打字动画,是后端真的在等上一个字算完,才能算下一个。

这个机制叫自回归(Autoregressive)


所以整条管线是这样的

你输入中文 → 查表换成编号(Tokenizer) → 查表换成身份坐标(Embedding) → 每个字被周围字”染色”(Self-Attention,重复几十层) → 最后一个字的坐标跟花名册比距离(输出层) → 转成概率,扔骰子 → 蹦出一个字 → 把这个字接到输入后面 → 再来一遍 → 蹦出几百个字之后 → 你看到的完整回复

全程零理解。全是数学。

但数学做完之后——语义关系被等距地翻译成了向量距离,上下文影响被精确地翻译成了注意力分数——效果就好像它真的懂了。


那么为什么它有时会胡说八道?

因为最后一步是扔骰子。

正常情况下,"美妆"语境下"红"的概率是 72%,"汽车"只有不到 2%。但 2% 不是 0——有可能恰好扔到那 2%。

这就是大模型"幻觉"的根——概率既是创造力的来源,也是不可靠的根源。 两个东西是同一件事。


知道这些有什么用?

至少下次你看到 AI 流式输出一个字一个字蹦出来,你不会觉得是"前端在表演"——你知道那是自回归逼的。

下次你发现同一个 prompt 两次输出不一样,你不会觉得是 bug——你知道是因为最后一步扔了骰子。

下次别人跟你说"AI 真的有智能",你不会轻易点头——但也不会轻易否定。因为你知道,把语义翻译成数学距离这件事,确实很精妙。精妙到让人分不清这是计算还是理解。


本文基于与 Claude 的一问一答对话整理而成。学习方式:不问"你记住了吗",只问"你觉得接下来会发生什么"。每一个概念都是追问出来的,不是背出来的。