向量数据库是大语言模型从工具走向生产力实践中热门的 RAG 方式所必备的基础设施。
RAG 能够从海量文本数据中检索相关信息并生成高质量文本输出,而向量数据库在其中发挥着重要作用。
目前市面上的向量数据库众多,操作方式无统一标准。本文将基于 LangChain 提供的 VectorStore 类中的统一操作方法,以 chroma 向量数据库作为示例,从最为基础的 CRUD 入手介绍其使用方法。
向量数据库的工作原理如下: 如果是文本,会通过模型转换成向量对象,对象存入数据库中再去使用。传统数据库以表格形式存储简单数据,向量数据库处理的是复杂的向量数据,并使用独特方法进行搜索。常规数据库搜索精确匹配数据,向量数据库则使用特定相似性度量寻找最接近匹配,使用特殊的近似近邻(ANN)搜索技术,包括散列搜索和基于图的搜索等方法。
要理解向量数据库的工作原理及其与传统关系数据库(如 SQL)的不同,必须先理解嵌入的概念。非结构化数据(如文本、图像和音频)缺乏预定义格式,给传统数据库带来挑战。为在人工智能和机器学习应用中利用这些数据,需使用嵌入技术将其转换为数字表示,嵌入就像给每个项目赋予独特代码,以捕捉其含义或本质。