为什么LLM会使用到向量这种数学工具?
为了翻译: 它是计算机能理解的语言,把抽象的词语概念量化成了数字。
为了表达关系: 它不是简单编号,而是将词语放在一个巨大的“含义空间”里。空间中的距离和方向,巧妙地编码了词语之间的相似、类比、从属等复杂关系。
为了计算和推理: 一旦概念变成了向量,我们就可以用成熟的线性代数工具(加、减、乘、点积等)来对这些概念进行组合和变换,从而实现类似人类的逻辑推理。
1. 计算机的“母语”:一切皆数字
首先,我们必须面对一个最基本的事实:计算机不理解“猫”、“开心”或者“跑”这些概念。 它的世界里只有数字(0和1)。
所以,要把人类的语言交给计算机处理,第一步必须是**“翻译”**——把词语翻译成数字。
最初级的翻译方法:查字典
最简单的想法是,我们给每个汉字或单词编一个号。
猫 = 1
狗 = 2
国王 = 100
女王 = 101
问题来了: 在计算机眼里,数字1和2之间只差1,而1和100之间差99。这是否意味着“狗”和“猫”的关系,比“国王”和“猫”的关系更近?显然不是。这种简单的编号完全丢失了词语之间的含义关系。我们需要一种更好的方式来表示“含义”。
2. 向量的“魔法”:在空间中表示含义
这就是向量(Vector)闪亮登场的时刻。不要被“向量”这个词吓到,你可以把它简单理解为一串用来描述某个东西的有序数字,或者一个多维空间中的坐标。
一个简单的二维例子:
我们来创建一个只有两个维度的“含义空间”:
维度X: 代表“与宠物相关的程度”(数值从0到1)
维度Y: 代表“与王室相关的程度”(数值从0到1)
现在,我们可以把词语放进这个空间里:
猫 (Cat): 它很适合做宠物,但和王室无关。所以它的坐标可能是 [0.9, 0.1]。
狗 (Dog): 它也很适合做宠物,和王室也无关。坐标可能是 [0.8, 0.05]。
国王 (King): 和宠物无关,但和王室强相关。坐标可能是 [0.0, 0.95]。
女王 (Queen): 和宠物无关,和王室强相关。坐标可能是 [0.01, 0.9]。
石头 (Stone): 和两者都无关。坐标可能是 [0.0, 0.0]。
看,奇妙的事情发生了!
相似的词,位置也相近: “猫”和“狗”的坐标非常接近。“国王”和“女王”的坐标也非常接近。
不相关的词,位置就远: “猫”和“国王”的坐标就离得很远。
我们成功地用空间中的距离,来表示了词语含义上的相似度!这就是向量表示法的第一个魔法。
从二维到高维:
在真实的大型语言模型中,描述一个词的向量不是2个维度,而是成百上千个维度(比如768维、4096维)。我们无法想象一个上千维的空间是什么样的,但数学原理是完全一样的。这些维度不再是我们手动定义的“宠物相关性”,而是模型在学习了海量文本后,自动学习到的成千上万个抽象特征。可能第58维代表“是否是动作”,第213维代表“是否与食物有关”,而大部分维度代表的含义是我们人类无法用语言去命名的。
3. 向量运算的“魔法”:模拟思考与推理
如果说用向量表示含义是第一层魔法,那么对向量进行数学运算,就是更深一层的魔法,它让AI拥有了类似“推理”的能力。
最经典的例子就是:
Vector("国王") - Vector("男人") + Vector("女人") ≈ Vector("女王")
这是什么意思呢?
Vector("国王") 这个向量里,包含了“王室”、“权力”、“男性”等很多维度的信息。
Vector("男人") 这个向量主要包含了“男性”维度的信息。
Vector("国王") - Vector("男人"):从“国王”的向量里,减去代表“男性”特征的部分,剩下的主要就是“王室”、“权力”等核心概念。
+ Vector("女人"):在这个“王室权力”的概念基础上,再加上代表“女性”特征的向量。
最后得到的结果,在那个高维“含义空间”中,会落在离 Vector("女王") 这个词的坐标极其接近的位置!
通过简单的加减法,模型竟然捕捉到了**“性别”和“王室身份”这两个概念之间的抽象关系**!它不是在死记硬背,而是在一个数学空间里进行“概念旅行”。