AI大模型RAG技术之向量化的工作原理

109 阅读12分钟

AI大模型RAG技术之向量化的工作原理

什么是向量化?【AI大模型教程】

所谓向量化 ,是指将文本、图像、音频等数据转化为计算机便于处理的数值型向量表示。这些向量通常是高维的,例如 768 维或 2048 维,如图2所示,可视为高维空间中的“坐标点”。

图2:文本向量化示意图

但向量化不仅仅是形式上的数值转换,其更深层的意义在于:它能够将数据中蕴含的语义信息,以数学方式编码到向量的结构之中。例如,对于文本,“喜欢”和“喜爱”虽然字面不同,但语义相近;对于图像,不同角度拍摄的同一物体应被视为相似内容。向量化模型的目标,正是在生成向量时,保留并表达这种语义层面的相似性与关联性。

因此,通过向量化,我们可以将语义信息“映射”到高维空间中,目标是让语义相近的数据在空间中的距离也更近。这样一来,原本抽象的语义匹配问题,就可以转化为数学上的“向量相似度计算”问题。至于为什么向量化能够使语义相近的文本在高维空间中距离更近。

为什么需要向量化?

在 RAG 系统中,向量化的核心目标是解决语义匹配问题。我们来看一个医学领域的例子:

图3:知识库检索示例

假设我们有一个医学知识库,当用户提问:“服用氟哌酸要注意啥?”,系统希望从知识库中召回这条信息:“诺氟沙星的禁忌包括……”,如图3所示。

示例中的“氟哌酸”和“诺氟沙星”是同一种药物的不同名称,传统的关键词匹配无法识别这种语义等价关系,因此无法召回相关内容。而向量化技术则能有效解决这一问题——正如前文所述,其核心思想是将文本片段映射为高维空间中的向量表示。如果两个文本片段语义相近,它们对应的向量在高维空间中的距离也会很近。这样一来,我们就将“判断两段文本是否语义相似”的问题,巧妙地转化为“计算两个向量之间距离”的问题

图4:语义空间示意图

我们可以参考图4中的语义空间示意图来更直观地理解这一点:在右上角绿色部分中,集中了关于“治疗腹泻药物”的相关词,例如“诺氟沙星”、“氟哌酸”、“蒙脱石散”等。这些词的向量彼此接近,说明它们语义相关;我们可以看到“诺氟沙星”和“氟哌酸”这两个词的向量非常接近,说明它们的语义高度相似。

正因为“诺氟沙星”和“氟哌酸”在语义空间中的向量表示极为接近,当用户提问“服用氟哌酸要注意啥?”时,系统会先将该问题进行向量化,得到其在高维语义空间中的向量坐标。尽管知识库中对应的条目使用的是“诺氟沙星”这一名称,但由于两个词的向量距离非常近,系统依然能够通过计算向量相似度准确识别出它们语义上的高度相关性,从而成功召回“诺氟沙星的禁忌包括……”这条关键信息。至于如何具体计算向量之间的相似度,我们将在下一节中详细介绍。这里读者只需理解,语义的相似性可以通过向量间的数学运算进行度量即可。

这正是向量化在RAG系统中的核心价值体现:不依赖字面匹配,而是基于语义理解进行检索。即使提问和知识库条目使用的是不同的术语表达,只要语义相近,就能实现精准匹配。这种能力极大地提升了系统的召回率和用户体验,尤其在医学、法律等专业领域,术语多样、表达复杂,向量化为实现“用口语问,用专业答”提供了坚实的技术基础。

关于向量化,我们再看一个有趣的现象:图4中的灰色部分明显聚集了各类代词。更令人惊讶的是,即使语言不同,表达相同语义的代词 —— 如中文的“我们”与英文的“We” —— 在向量空间中的位置也高度接近。这种跨语言的语义对齐,是大模型在多语言数据上联合学习的结果。它意味着不同语言的词汇被映射到了同一个共享的语义空间中。这也正是大模型时代机器翻译效果显著提升的核心奥秘之一:翻译不再只是词汇替换,而是在统一语义空间中的“坐标迁移”

到这里,相信大家已经感受到了向量化在语义匹配中的强大能力。随之而来的一个深层次问题也值得我们思考:当“诺氟沙星”和“氟哌酸”被编码为一个768维或2048维的向量时,这成百上千个维度,每一个究竟代表了什么具体含义?是不是第1维表示‘药名’,第2维表示‘用途’,第3维表示‘副作用’?

向量中的每一个维度代表什么?

这个问题非常好,但它背后其实隐藏着一个关键的认知转变——向量空间中的维度,并不对应人类可直观解释的“具体属性”,而是一种“隐式语义特征”的数学表达

我们可以这样理解:

大模型在训练过程中,通过阅读海量的医学文献、药品说明书、临床指南、患者问答等文本,逐渐“学会”了如何描述药物。在这个过程中,模型自动提取出一系列能够区分和关联词语的抽象语义特征。这些特征并不是人为定义的,而是由模型从数据中自行发现并编码的

举个类比:

想象一位资深医生在判断两个药是否相关时,他会综合考虑多个因素:

● 是否属于同一类抗生素(如喹诺酮类)

● 化学结构是否相似

● 适应症是否一致(比如都用于治疗肠道感染)

● 是否存在别名或商品名关系

● 在临床中是否可互换使用

● ……

图5:医生判断两种药品是否相关示意图

这些判断依据,构成了他对“药物语义”的理解框架。而大模型所做的,就是把这个“医生的思维框架”压缩成数百到数千个隐含的“语义坐标轴”——也就是向量的各个维度。

所以,“诺氟沙星”的向量并不是人为填写的表格,而是模型根据它在整个语言环境中出现的方式,计算出来的一组数值。例如:

● 某些维度可能隐式编码了药物类别信息:如果某个维度在“左氧氟沙星”“环丙沙星”“洛美沙星”等词的向量中都取较高值,那它可能就“学习”到了“喹诺酮类抗生素”这一共性。

● 某些维度可能反映使用场景:比如在“腹泻”“细菌性痢疾”“尿路感染”等上下文中频繁共现的词,会在某些维度上表现出相似性。

● 还有一些维度可能捕捉到命名规律:“诺氟沙星”“氧氟沙星”“依诺沙星”都以“沙星”结尾,模型可能在某些维度上对这类构词法形成响应。

● ……

图6:“诺氟沙星”向量维度表征含义示意图 

当“氟哌酸”也被输入模型时,尽管这个词在现代医学中较少使用,但如果它在训练数据中曾与“诺氟沙星”出现在相同的句子中(如:“氟哌酸,即诺氟沙星,是一种广谱抗菌药”),模型就会赋予它们高度相似的向量表示——不是因为它们字形相似,而是因为它们共享了几乎所有的隐式语义特征

这就像是两个人穿着不同的衣服、取不同的名字,但在职业、兴趣、价值观、行为模式上完全一致,最终被系统判定为“同一类人”。 

因此,我们可以说:向量的每一个维度本身没有独立的、可命名的语义,但整个向量作为一个整体,完整地刻画了一个词或句子在语义空间中的“指纹”。 

在计算机专业上,向量化表示亦称“分布式表示”(Distributed Representation):将词、句子或图像编码为高维实数向量(如 768、2048 维及以上),语义信息被分散在多个维度的组合中,而不是由某个单一维度承担。在这种“分布式“编码正是大模型强大表达能力的核心所在——它不依赖人工规则,而是让机器从数据中自动学习语义的内在结构。 

这也解释了为什么向量空间能实现跨语言对齐——“We”和“我们”虽然字符不同,但它们在句子中的语法角色、情感倾向、语境分布高度一致,因此在多个隐式维度上的响应模式趋同,最终在向量空间中“相遇”。 

为什么语义相近的文本向量距离更近?——向量化背后的训练机制

现在,我们来回答本节开头提出的那个关键问题:为什么向量化能让语义相近的文本在高维空间中距离更近?

答案的核心在于:向量化模型是通过特定的训练目标被“教会”如何组织语义空间的

具体来说,主流的向量化模型(如通义千问向量模型等)通常采用“对比学习”(Contrastive Learning)的策略进行训练。其核心思想是:让模型学会区分“相关”与“不相关”的文本对

在训练过程中,模型会接触到大量文本样本,其中包括:

● 正样本对(Positive Pairs):语义相近的文本,如“氟哌酸”和“诺氟沙星”、“跑步”和“慢跑”;

● 负样本对(Negative Pairs):语义无关的文本,如“氟哌酸”和“混凝土”、“跑步”和“水泥”。 

模型学习的目标是:在向量空间中拉近正样本对的距离,同时推远负样本对的距离。

这一过程通常通过优化一个“对比损失函数”(Contrastive Loss )来实现。例如,在一个三元组(Anchor, Positive, Negative)中:

● Anchor(锚点):“氟哌酸”

● Positive(正例):“诺氟沙星”

● Negative(负例):“混凝土”

图7:对比学习示例示意图

模型会不断调整其内部参数,使得“氟哌酸”与“诺氟沙星”的向量距离尽可能小,而“氟哌酸”与“混凝土”的距离尽可能大。

经过海量这样的训练样本迭代学习,模型逐渐构建出一个结构化的语义空间:同类概念聚集在一起,不同类概念彼此分离。这就像在一个音乐推荐系统中,风格相近的歌曲(如爵士乐)会自动聚在一起,摇滚乐、古典乐等不同风格的歌曲则分布在不同的区域。即使你从未听过某首新歌,只要它的旋律、节奏、乐器使用与爵士乐相似,系统也会将它“放置”在爵士乐的区域附近。向量化模型正是通过这种方式,学会了将“语义相近”的文本在向量空间中靠近排列。

此外,模型还会利用上下文信息进行学习。例如,在句子“我吃了氟哌酸,症状很快缓解”中,模型会观察到“氟哌酸”常与“吃”“药”“症状缓解”等词共现,从而将其语义锚定在“治疗性药物”区域;而“混凝土”则常出现在“建筑”“搅拌”“施工”等语境中,被推向另一个区域。 

因此,向量化模型并非“天生”知道“氟哌酸”和“诺氟沙星”是同义词,而是通过大量语料中它们共同出现的模式,学会了将它们映射到相近的位置。这种“分布假设”(Distributional Hypothesis)——“具有相似上下文的词具有相似的含义”——正是向量化技术的理论基石

总结来说,语义相近的文本之所以在向量空间中距离更近,是因为:

● 训练目标驱动:模型通过对比学习,被明确要求拉近语义相似文本的向量距离;

● 上下文共现模式:模型从海量文本中学习到词语的使用环境,自动捕捉语义关联;

● 高维空间的表达能力:高维空间提供了足够的自由度,使得成千上万的语义关系可以被同时建模和区分。

这正是“向量化”不仅仅是“编码”,而是一种“语义空间构建”的本质所在。

如何把数据转化成向量?

读到这里,恭喜你已经掌握了向量化的核心原理。接下来,你可能会关心一个实际问题:如何将我们手头的数据(如文本、图像等)真正转化为向量?是否需要从头训练一个模型?

通常情况下,不需要。我们可以借助成熟的向量化模型来完成这一过程,例如通义千问的向量模型等。这些模型已经在海量数据上进行了充分训练,具备强大的语义表征能力,能够将文本、图像等内容高效地转化为高质量向量。