解读向量数据库( 四 )


4.2 开源与否Pinecone是完全闭源的 , Zilliz也是一个闭源的完全托管的商业解决方案,但它完全建立在Milvus之上,其他向量数据库至少在代码库方面是源代码可用的,具体的许可证决定了代码的可许可性以及如何部署 。

解读向量数据库

文章插图
图片
4.3 检索算法众多向量数据库的检索算法都采用了HNSW,其中,Milvus 的检索算法支持最为丰富 。
解读向量数据库

文章插图
图片
4.4 部署方式向量数据库的典型部署方式包括本地部署和托管/云原生,两者都遵循CS架构 。还有一种新的选择是嵌入式模式,其中数据库本身与应用程序代码紧密耦合,以serverless的方式运行 。目前,只有Chroma和LanceDB可用作嵌入式数据库 。
解读向量数据库

文章插图
图片
综上所述,主流向量数据库的部分指标对比如下:
解读向量数据库

文章插图
图片
此外,在选择向量数据库时,还需要特别考量以下因素:
  • 可扩展性:能够高效处理高维度大数据量并能够根据数据需求的增长进行扩展 。
  • 性能:速度和效率对数据库至关重要,需要在数据搜索、搜索性能和执行各种向量操作方面表现出色 。
  • 灵活性:支持广泛的数据类型和格式,并且可以轻松适应不同的应用场景 。
  • 易用性 。这些数据库易于使用和管理,易于安装和配置 , 具有直观的API , 并且有良好的文档和支持 。
  • 可靠性:需要有可靠和稳定的声誉 。
5. 向量数据库与其他类型数据库的对比传统数据库 , 如关系数据库 , 旨在存储结构化数据 。这意味着数据被组织到预定义的表、行和列中,确保数据的完整性和一致性 。传统数据库往往针对CRUD进行优化,旨在高效地创建、读取、更新和删除数据条目,使其适用于从 Web 服务到企业软件的各种应用程序 。但是,一旦定义了数据库结构,进行更改可能会非常复杂且耗时 。这种刚性可确保数据一致性 , 但灵活性可能不如某些现代数据库的无模式或动态模式性质 。
特性 
关系型数据库 
向量数据库
数据类型 
数值、字符串、时间等传统数据类型 
向量数据不存储原始数据
数据规模 
小,1亿数据量为规模很大 
大 , 千亿数据是底线
数据组织方式 
基于表格,按照行和列组织 
基于向量,按照向量维度组织
查找方式 
精确查找:点查/范围查 
近似查找:对算力要求较高
低时延 , 高并发 
否 

支撑上层应用 
较弱 
对外提供统一的API,更适合大规模AI引用程序的部署和使用
应用场景 
容错率低,需提供更为精准的搜索结果 
场景容错率较高
与在行和列中存储多种标准数据类型(如字符串、数字和其他标量数据类型)不同 , 向量数据库引入了向量这种新的数据类型,并围绕此数据类型构建优化,专门用于实现快速存储、检索和最近邻搜索语义 。在传统数据库中,使用查找完全匹配项的索引或键值对对数据库中的行进行查询,并返回这些查询的相关行 。
特别地,向量数据库与图数据库的对比如下:
解读向量数据库

文章插图
图片
6. 向量数据库在大模型中的应用基于大模型的应用经常一些面临挑战,例如生成不准确或不相关的信息;缺乏事实一致性或常识;重复或自相矛盾;有偏见的或令人反感等 。为了克服这些挑战,可以使用向量数据库来存储与所需领域的不同主题、关键词、事实、观点和/或来源的信息 。然后,在使用一个大模型时,通过AI插件从向量数据库中传递信息,以生成更具信息性和吸引力的内容,符合目标意图和指定风格 。
借助向量数据库,我们能够快速加载和存储事件作为嵌入,并使用向量数据库作为为AI模型提供动力的大脑,提供上下文信息,长期记忆检索,语义上的数据关联等等 。向量数据库的典型使用方式如下:1. 使用embeding 技术创建向量2. 将这些向量存储到向量数据库3. 应用索引策略来组织管理向量4. 使用查询向量执行相似性搜索5. 从向量数据库中取得相似的向量


推荐阅读