向量数据库是大语言模型从工具走向生产力实践中热门的 RAG 方式所必备的基础设施。
RAG 能够从海量文本数据中检索相关信息并生成高质量文本输出,而向量数据库在其中发挥着重要作用。
目前市面上的向量数据库众多,操作方式无统一标准。本文将基于 LangChain 提供的 VectorStore 类中的统一操作方法,以 chroma 向量数据库作为示例,从最为基础的 CRUD 入手介绍其使用方法。
向量数据库的工作原理如下: 如果是文本,会通过模型转换成向量对象,对象存入数据库中再去使用。传统数据库以表格形式存储简单数据,向量数据库处理的是复杂的向量数据,并使用独特方法进行搜索。常规数据库搜索精确匹配数据,向量数据库则使用特定相似性度量寻找最接近匹配,使用特殊的近似近邻(ANN)搜索技术,包括散列搜索和基于图的搜索等方法。
要理解向量数据库的工作原理及其与传统关系数据库(如 SQL)的不同,必须先理解嵌入的概念。非结构化数据(如文本、图像和音频)缺乏预定义格式,给传统数据库带来挑战。为在人工智能和机器学习应用中利用这些数据,需使用嵌入技术将其转换为数字表示,嵌入就像给每个项目赋予独特代码,以捕捉其含义或本质。
RAG是目前大语言模型从工具走向生产力实践的最热门的方式,它可以实现从海量的文本数据中检索相关的信息,并用于生成高质量的文本输出。而聊到RAG,我们就很难避开使用RAG的基础设施-向量数据库。今天我将带领大家,以最为基础的CRUD入手来看看向量数据库应该如何使用。考虑到目前市面上的向量数据库众多,每个数据库的操作方式也无统一标准。「本文将基于LangChain提供的VectorStore类中的统一操作方法,以chroma向量数据库作为示例进行演示。」
RAG是目前大语言模型从工具走向生产力实践的最热门的方式,它可以实现从海量的文本数据中检索相关的信息,并用于生成高质量的文本输出。而聊到RAG,我们就很难避开使用RAG的基础设施-向量数据库。今天我将带领大家,以最为基础的CRUD入手来看看向量数据库应该如何使用。考虑到目前市面上的向量数据库众多,每个数据库的操作方式也无统一标准。「本文将基于LangChain提供的VectorStore类中的统一操作方法,以chroma向量数据库作为示例进行演示。」
上图简单展示了向量数据库的存储过程,如果是文本,通过模型转换成向量对象,对象存入数据库中。再去使用它。传统数据库以表格形式存储单词和数字等简单数据。而向量数据库处理的是称为向量的复杂数据,并使用独特的方法进行搜索。常规数据库搜索精确匹配的数据,而向量数据库则使用特定的相似性度量来寻找最接近的匹配。向量数据库使用特殊的搜索技术,即近似近邻(ANN)搜索,其中包括散列搜索和基于图的搜索等方法。要真正理解向量数据库的工作原理,以及它与SQL等传统关系数据库的不同之处,我们必须首先理解嵌入的概念。文本、图像和音频等非结构化数据缺乏预定义格式,给传统数据库带来了挑战。为了在人工智能和机器学习应用中利用这些数据,需要使用嵌入技术将其转换为数字表示。嵌入就像给每个项目(无论是文字、图像还是其他东西)赋予一个独特的代码,以捕捉其含义或本质。这种代码可以帮助计算机以更高效、更有意义的方式理解和比较这些项目。把它想象成把一本复杂的书变成一个简短的摘要,但仍能抓住要点。