首页 > 数据库 > 数据库开发技术 > 初识向量数据库与pgvector实践

随着大语言模型的兴起,向量数据库正愈发受到人们的关注。作为对向量数据库的一名小白,近期简单对这一新技术方向做了些了解,特分享给大家。
1).什么是向量



目前,市场上的涌现出一批向量数据库。技术原理上,一种是关系型数据库或NoSQL数据库,增加向量嵌入存储,但它们最初都没有设计用于存储和提供这种类型的数据。例如最为常见的pgvector插件,可以通过嵌入方式在PostgreSQL 数据支持存储和使用。另一种是原生的向量数据库,即在诞生之初就定位为专项数据库产品。Milvus 是一个于 2019 年首次发布的开源矢量数据库。

那上述两种路线未来发展如何呢?一种观点认为向量数据库的核心技术核心向量索引技术成熟,进入壁垒低,因此市场认为向量数据库核心技术缺少壁垒,传统数据库实现向量搜索功能简单,将替代向量数据库满足大部分市场需求,专业向量数据库将被“传统向量数据库”取代。另一种观点认为,专业的向量数据库仍具有不可替代性,其在检索性能、数据规模、接口丰富度、性价比等方面具有一定优势。个人认为,从长期角度来看,上述两种路线都具有存在意义,双方也都有各自所长及适应场景。特别是近年来,向量数据库也在不断向传统数据库学习,进而满足AI场景化在通用性、稳定性等方面的要求。
从近期的融资来看,资本角度非常看好这一领域(如下图)。向量数据库正在被定义为一种“AI 基础设施”。从市场空间来看,AI技术的发展将推动向量数据应用与存储需求加速增长:一方面随着AI应用场景不断丰富,向量数据库的下游客户数量随着AI发展而飞速增长;另一方面AIGC正推动着非结构化数据应用飞速增长,AIGC带来了跨模态数据分析的需求浪潮,只有向量数据库才能实时快速地处理这些海量的向量数据。


2).pgvector 计算
<->:该运算符计算两个向量之间的欧几里德距离。欧几里德距离是多维空间中向量表示的点之间的直线距离。较小的欧几里德距离表示向量之间的相似性较大,因此该运算符在查找和排序相似项目时非常有用。
<=>:该运算符计算两个向量之间的余弦相似度。余弦相似度比较两个向量的方向而不是它们的大小。余弦相似度的范围在 -1 到 1 之间,1 表示向量相同,0 表示无关,-1 表示向量指向相反方向。
3).pgvector 索引
下面构建一个测例,在 PostgreSQL 中使用 pgvector 插件测试对向量数据的检索。向量数据集采用公开的国内省市位置数据,将经纬度作为向量维度存储。通过欧几里德距离计算向量数据间距离(即城市间距离)。


推荐理由:
Oracle ACE(Oracle和MySQL数据库方向),华为云最有价值专家,Oracle高可用大师,Oracle OCP/OCM和MySQL OCP讲师,《MySQL 8.0运维与优化》的作者。特色栏目“托业890分的Oracle ACE为您翻译国际大佬的雄文”,英文不好的数据库粉丝有福了!
韩锋频道:
关注技术、管理、随想。
长按扫码可关注
原文作者:韩锋频道;如有侵权,请联系管理员删除。