AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


【一文读懂】RAG的重要组成-向量数据库
发布日期:2024-09-06 15:04:03 浏览次数: 1773 来源:码农随心笔记


向量数据库(Vector Database),看似莫测高深的一个名词,在众多AI技术文章中经常出现,那向量数据库究竟是个什么鬼呢?本篇深入浅出,为各位同学介绍一下它的相关知识。


01
什么是向量


首先,向量数据库中保存的就是向量数据了,那什么是向量呢?向量是一个数学概念,它可以表示为一个包含多个数值的列表,这些数值(也称为分量)按照一定顺序排列。在不同的上下文中,向量可以用来表示不同的事物。比如在日常生活中向量可以这样表示:
  • 假设你想描述从家到学校的路线,你可以创建一个向量 [3, 2]这里,3 表示向东走3个单位,2 表示向北走2个单位。

  • 在3D建模中,物体的每个顶点位置都是通过三维空间中的向量来定义的。例如,一个点在3D空间中的位置可以表示为向量 [x, y, z]

  • 力是一个有大小和方向的量,可以用向量表示。例如,一个大小为10牛顿、方向向上的力可以表示为向量 [10, 1]

向量的例子比比皆是,不难理解,覆盖了我们生活中的方方面面。向量表中每个分量的意义,可以根据不同的实际用途而自由定义。


02
AI中的向量


在AI领域中,将文本数据转换成向量的过程就像把书里的文字变成一种特殊的密码,让计算机能够读懂和处理,以下是几种常用的向量数据表示方法:

1. 词袋模型(Bag of Words, BoW)

词袋模型是一种简单的方法,它把文本看作一个单词的集合,不考虑单词的顺序。我们会先确定一个词汇表,统计每个单词在文本中出现的次数。

例子:
假设我们有两个句子:
句子1: "我喜欢猫"
句子2: "我喜欢狗"
我们先建立一个词汇表:["我", "喜欢", "猫", "狗"]

然后我们可以将每个句子表示为一个向量:
句子1: [1, 1, 1, 0] ("我"出现1次,"喜欢"出现1次,"猫"出现1次,"狗"出现0次)
句子2: [1, 1, 0, 1] ("我"出现1次,"喜欢"出现1次,"猫"出现0次,"狗"出现1次)


2. TF-IDF(Term Frequency-Inverse Document Frequency)
TF-IDF是对词袋模型的一个改进,它不仅考虑单词在单个文档中的频率,还考虑单词在整个语料库中的重要性。它对于常见的单词(如“的”、“是”)会赋予较低的权重。

如果继续使用上面的句子,我们计算每个单词的TF-IDF值,然后用向量表示。这样可以更好地区分文本之间的差异。


3. 词嵌入(Word Embedding)
词嵌入是一种将单词映射到高维空间中的方法,使得语义相似的单词在向量空间中也相近。常用的词嵌入模型有Word2Vec和GloVe。

例子:
在词嵌入中,单词“猫”和“狗”可能会被表示为如下向量:
“猫”: [0.5, 0.2, 0.1]
“狗”: [0.4, 0.2, 0.3]
在这个向量空间中,尽管具体数字不同,但“猫”和“狗”的向量相对更近,因为它们都是动物。

4. 句子或文档嵌入

除了单词,完整的句子或文档也可以被转化为向量,常用的模型有BERT等。它们可以理解上下文,使得同义句的向量更接近。


例子:
句子“我爱猫”和“我喜欢猫”可能在模型中被表示为:
“我爱猫”: [0.6, 0.5, 0.1]
“我喜欢猫”: [0.7, 0.4, 0.2]
尽管这两个句子的词不同,但它们的向量相似度较高,反映出它们的语义相近。

通过这个过程,原本复杂的文本数据就被转换成了计算机可以理解和处理的向量形式。这些向量可以被用来训练机器学习模型,让模型学会识别文本中的模式和关系,比如判断一个评论是正面的还是负面的,或者把一种语言翻译成另一种语言。

03
向量数据库的作用


我们把上述的向量数据放入数据库中,就形成了向量数据库。那向量数据库在RAG技术中能起到什么作用呢?其实也不难理解,向量数据库在大模型RAG(Retrieval-Augmented Generation,检索增强生成)技术中,可以通俗地理解为一个高效的“知识仓库”和“搜索引擎”,它帮助大语言模型快速找到并使用相关信息。

下面用一个例子来说明这个过程:
假如你是一位图书管理员,你的图书馆里有成千上万本书。每天,有人来问你各种问题,你需要从这些书中找到答案。但是,如果每回答一个问题,你都要一本一本地翻阅这些书,那效率就太低了。这就是传统大型语言模型可能面临的问题。
现在,我们有了向量数据库这个得力助手,它通过简易的流程,让你在查找资料时的效率得到显著提升。

1. 整理书架首先,你把每本书的内容转换成一种特殊的“编码”(即向量化),然后根据这些编码整理书架,这样你就可以快速找到相关的书籍。在向量数据库中,这个过程称为“索引”。  

2. 快速检索:当有人问你问题时,你无需去翻阅整本书,而是根据问题的内容,快速找到包含答案的书籍。向量数据库通过比较问题的“编码”和书籍的“编码”,迅速找出最相关的几本书。

3. 智能组合:找到相关书籍后,你不是简单地把整本书的内容都给对方,而是挑选最相关的一部分内容,结合问题,给出一个清晰、准确的答案。在RAG技术中,这就是将检索到的信息与问题结合,生成答案的过程。  

假设有人来问:“中国的首都是哪?”你不需要去翻阅关于中国的整本书,而是快速在向量数据库中找到与“中国”和“首都”这两个关键词最相关的信息片段,然后告诉他们答案是“北京”。

04
向量数据库与嵌入模型的关系


上篇提到了另一重要工具 Embedding Model(嵌入模型),它与向量数据库经常在同一个RAG引擎中同时出现,并且同时工作,它们之间存在以下关系:

1. 数据存储:嵌入模型生成的向量通常需要存储在某种形式的数据库中,向量数据库提供了一种高效的存储和可供检索的容器。  

2. 相似性搜索:嵌入模型的目标之一是使得相似的数据在向量空间中彼此接近。向量数据库支持这种基于距离的相似性搜索,使得可以快速找到与查询向量最相似的数据。

3. 性能优化:向量数据库的索引结构和查询优化技术可以显著提高嵌入模型在实际应用中的性能,尤其是在需要处理大规模数据集时。

4. 应用场景:在推荐系统、图像检索等应用中,嵌入模型用于生成数据的向量表示,而向量数据库则用于存储这些向量并提供快速的相似性搜索服务。


05
 结语

最近几篇文章的内容虽然都有点枯燥,但都是大语言模型知识链中必不可少的一环,搞懂这些知识和概念是各位深入了解大语言模型原理的必经之路,向量数据库与嵌入模型都是其中的重要知识点,大家可参考以下相关文章。
【一文读懂】RAG的重要组成-Embedding Model

  --THE END--  

请点击本号阅读更多文章





53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询