创建矢量数据库的过程 基准测试及其结果
Posted: Thu Jan 30, 2025 4:25 am
矢量是一个数学对象,可以表示为一组有序的数字(称为分量),它们对应于矢量沿不同坐标轴的范围。在二维空间(平面)中,向量可以表示为 (x,y),其中 x 和 y 分别是沿水平轴和垂直轴的分量。在三维空间中,向量可以表示为 (x,y,z),其分量沿 x、y 和 z 轴。有很多方法可以定义两个向量之间的相似度(欧几里得距离和余弦相似度就是两个例子)。欧几里得距离概括了我们对平面上两点之间距离的自然想法(#毕达哥拉斯定理),而余弦相似度反映了这样的想法:如果两个向量指向大致相同的方向,则它们是相似的。
向量数据库本质上旨在存储相同大小的元数据丰富的向量集合,并快速对此类集合执行近似相似性搜索。他们可以在短时间内高效回答的问题是
“对于任何向量 X,存储集合中与 X 最相似的五个向量是什么?”
当存储的向量被保留为其相关元数据的语义嵌入,并且两个向量之间的相似性捕获了元数据的语义接近度的概念时,向量数据库的力量就被实现了。如果元数据是自然语言,则可以使用嵌入算法(例如 word2vec)或大型语言模型(例如 Aleph Alpha 的 Luminous 或 OpenAI 的 GPT 模型)来实现。
从应用程序的角度来看,这样的矢量化文档存储可以充当检 医院联系清单 索增强生成(RAG)架构的检索阶段的知识存储。
您还可以在这篇关于以下主题的博客文章中找到更多信息:“智能信息收集:用于访问公司知识的会话代理”。
基准向量数据库
在开发数据密集型应用程序(或任何其他应用程序)时,找到每个组件的性能/成本范围的最佳点非常重要。矢量数据库有两个重要的性能考虑因素:
1.插入向量(包括使其可用于相似性搜索)需要多长时间?
2.对于一个输入向量,找到最接近N的向量需要多长时间?
值得注意的是,第二个问题的答案必须始终在近似精度的背景下看待。近似值越差,就越容易快速推导它。优化相似性搜索的准确性通常需要仔细调整参数,这些参数会极大地影响上传和搜索时间,并且参数的选择在很大程度上取决于底层数据集的结构。因此,为了保持基准测试的参数空间易于管理,我们专注于检查上述问题,而不优化相似性搜索的准确性。
数据库
在我们的实验中,我们测试了向量数据库竞赛中的三个开源竞争对手——Chroma、Qdrant 和 Weaviate。
色度
Chroma 是一个人工智能原生的开源嵌入数据库。该公司已筹集了令人印象深刻的 1800 万美元种子资金,由 Quiet Capital 的 Astasia Myers 领投,突显了投资者对该公司潜力的信心。 Chroma 宣传称,它配备电池,可以让开发者快速轻松地创建数据库实例,让开发变得更加容易。
向量数据库本质上旨在存储相同大小的元数据丰富的向量集合,并快速对此类集合执行近似相似性搜索。他们可以在短时间内高效回答的问题是
“对于任何向量 X,存储集合中与 X 最相似的五个向量是什么?”
当存储的向量被保留为其相关元数据的语义嵌入,并且两个向量之间的相似性捕获了元数据的语义接近度的概念时,向量数据库的力量就被实现了。如果元数据是自然语言,则可以使用嵌入算法(例如 word2vec)或大型语言模型(例如 Aleph Alpha 的 Luminous 或 OpenAI 的 GPT 模型)来实现。
从应用程序的角度来看,这样的矢量化文档存储可以充当检 医院联系清单 索增强生成(RAG)架构的检索阶段的知识存储。
您还可以在这篇关于以下主题的博客文章中找到更多信息:“智能信息收集:用于访问公司知识的会话代理”。
基准向量数据库
在开发数据密集型应用程序(或任何其他应用程序)时,找到每个组件的性能/成本范围的最佳点非常重要。矢量数据库有两个重要的性能考虑因素:
1.插入向量(包括使其可用于相似性搜索)需要多长时间?
2.对于一个输入向量,找到最接近N的向量需要多长时间?
值得注意的是,第二个问题的答案必须始终在近似精度的背景下看待。近似值越差,就越容易快速推导它。优化相似性搜索的准确性通常需要仔细调整参数,这些参数会极大地影响上传和搜索时间,并且参数的选择在很大程度上取决于底层数据集的结构。因此,为了保持基准测试的参数空间易于管理,我们专注于检查上述问题,而不优化相似性搜索的准确性。
数据库
在我们的实验中,我们测试了向量数据库竞赛中的三个开源竞争对手——Chroma、Qdrant 和 Weaviate。
色度
Chroma 是一个人工智能原生的开源嵌入数据库。该公司已筹集了令人印象深刻的 1800 万美元种子资金,由 Quiet Capital 的 Astasia Myers 领投,突显了投资者对该公司潜力的信心。 Chroma 宣传称,它配备电池,可以让开发者快速轻松地创建数据库实例,让开发变得更加容易。