春哥的Agent通关秘籍08:从【向量】到【句向量】

0 阅读7分钟

本章我们将浅显地了解一下 LLM 大语言模型中几个关键术语,区分清楚【向量】,【词向量】,【句向量】这几个词的基本概念和差异。

这对我们后续构建RAG架构会非常有帮助。

一、什么是向量

向量是 LLM 种一个重要的概念,因此我们需要先理解一下,什么是向量。

在数学定义里,向量是有大小和方向的量。但在 AI 领域,你只需要把它理解为:一个固定长度的数字列表。

打个通俗的比方,你正在游玩一款 RPG 游戏,每个角色都有自己的属性面板:

  • 战士:力量 99,智力 5,敏捷 30

  • 法师:力量 5,智力 99,敏捷 20

如果我们把这些属性写成一个数组:

战士 = [99, 5, 30]

法师 = [5, 99, 20]

这串数字 [99, 5, 30],就是一个代表战士的“向量”。

  • 在这个例子里,这个向量有 3 个维度(力量、智力、敏捷)。

  • 这串数字不仅代表了数值,还代表了这个角色在“属性空间”里的位置。

如上图所示,任何一个该游戏中的角色,它的属性都可以在这个三维坐标系中找到属于自己的位置。

现在你明白了:

向量就是计算机用来描述一个事物特征的一串数字。

二、什么是向量化

向量化,见文知意,就是把一个具体事物,变成计算机更容易理解的向量的过程。

现在,如果你想往游戏里新增一个角色【骑士】,你应该怎么做呢?

你会需要想明白它的特点,并把这些特点转换为力量、智力、敏捷 这三个属性。

这个打分的过程,就是向量化。

骑士_Vector = [85, 40, 20]

现在,你的数据库里有了三个点:

  • 战士 [99, 5, 30]

  • 法师 [5, 99, 20]

  • 骑士 [85, 40, 20]

计算机会惊讶地发现:“咦?比起法师,‘骑士’这串数字竟然离‘战士’更近!”(因为它们的“力量”数值都很高)。

现在,计算机拥有了一种最简单的思考的常识:哪些角色更相似。

是的,你作为一个人类能够清晰地知道骑士和战士更相似,可能是依靠知觉。

但计算机却可以通过坐标发现:骑士和战士更像一类人。这就是向量化让计算机理解语义的奥秘。

那么,这和大语言模型又有什么关系呢?

有的,兄弟,有的!

LLM 训练的过程,其实就是把各种各样的人类的“文章”、“文档”向量化的过程。

三、对人类语言的向量化评估

在前面的例子里,我们可以把【向量化】这样解释:

向量化是一个方法,输入的是RPG游戏的角色名称,输出的是一段描述该角色的向量坐标。

是的,没问题,对于上面的例子来说这非常准确。但让我们把它扩大一下,输入的不再是RPG游戏的角色名称,而是人类世界里无处不在的各种语言文本:

  • 一句问候:“你好”
  • 一首情诗,100字
  • 一篇技术文档,500字
  • 一段代码,1000字

当我们把各种语言作为输入时,如果还能稳定输出一段描述该文本的向量坐标,那计算机是不是就能理解人类语言的本质了?

是的,兄弟,但三个维度太少了,人类的语言过于复杂。

于是,维度爆炸了,计算机开始用1024个维度、1536个维度,或者更多个维度来描述一段话的特征。

3.1 稠密向量

想象一下,你把公司的一条 《严禁在生产环境直接修改数据库》 的规定扔给模型。

模型读到这句话时,它那 1536 个维度的探测针会疯狂跳动。虽然我们不知道每一根针具体代表什么,但通过数学分析,我们发现模型实际上是在评估以下这类 “抽象特征”

  • 特征维度 #42(可能是关于“强制性”):这句话语气非常强硬(“严禁”),所以这个维度的数值飙升到 0.99。

  • 特征维度 #108(可能是关于“技术领域”):这句话包含“数据库”、“生产环境”,所以这个维度的数值是 0.85。

  • 特征维度 #555(可能是关于“情感色彩”):这句话是警告性质,带有负面后果暗示,数值可能是 -0.6。

  • 特征维度 #999(可能是关于“美食/烹饪”):这句话和吃的一点关系没有,数值是 0.00。

就这样,模型把这句话,压缩成了一个 “高强制性 + 纯技术领域 + 警告语气” 的数学坐标点。

这种富含信息量和特征评估的向量,有一个专业名词,叫:【稠密向量】。

3.2 词与句,流派之分

也就是在这个时候,对于文本的计算方法,衍生出了两个思路:

  • 思路A:先拆词,然后对每个词进行向量化。
    • [我] 训练一个向量
    • [喜欢] 训练一个向量
    • [你] 训练一个向量
    • 然后把三个向量形成一个矩阵进行存储训练。
    • 这种思路,被称为 词向量 (Word/Token Embedding)。
  • 思路B:不拆词,对一整句话进行向量化。
    • [我喜欢你] 四个字只训练出一个向量
    • 这种思路,句向量 被称为(Sentence Embedding)。

哪个流派更厉害? 很显然【词向量】相对复杂,粒度更细。它更贴合人类说话的习惯,一个词一个词的学习理解,一个词一个词的组装输出。

【词向量】最终训练出了类似DeepSeek,Gemini,ChatGPT这样轰动世界的大模型,擅长思考以及和人类对话。

那么,【句向量】就一无是处吗?

不是的,兄弟,不是的。

【句向量】也有它发光发热的地方,它擅长一整段一整段的进行文本检索和语义理解。

因此,在特定领域,它更为好用。

没错,正是我们后面要着重要介绍的场景:

【私有知识库】。

四、【句向量】:天生我材必有用

如果说,你现在有很多企业内部的文档,私人的文档需要形成一个知识库,你并不需要和这个文档对话,而是能快速地找到文档中相关度最高的位置。

此时此刻,基于一句话进行向量化的【句向量】反而具备了优势。

因为它的向量就是基于一段一段的话进行特征标注的。

在快速检索知识区域这方面,【句向量】相比于【词向量】拥有如下优点:

  • 数学上可行:它把长短不一的文本,变成了固定长度的条形码,才能算距离。

  • 语义上精准:它提取的是中心思想,而不是碎片化的词。

  • 工程上极速:它让百万级的检索能在毫秒级完成。

所以,【句向量】就成为了一种用来作为私有材料库和知识库检索的技术。

只是单纯的本地检索,是不是太没想象力了?

是的,检索出来之后,再把检索到的准确的文本塞到和DeepSeek的对话里,将会产生更强的效果。

下一步预告

下节课,我们将基于本章我们学习的理论,来梳理RAG架构必要的模型和组件,以及需要哪些步骤。

敬请期待!