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

2).什么是向量数据

3).什么是向量数据库

4).向量数据库技术特点
向量表示 向量数据库将复杂的数据类型转换为向量表示,使得高维数据能够以多维空间中的点的形式表示。向量数据库采用嵌入向量(embedding vector)技术,对非结构化数据(包括文本、图片、视频、音频等)进行特征抽象。数学上,嵌入向量是一个浮点数或二进制数的数组,即 N 维特征向量空间中的向量。 向量检索 向量数据库擅长在海量数据中根据向量表示搜索与给定查询相似的数据项。为了提高效率,向量库支持使用如欧氏距离、余弦相似度或曼哈顿距离等相似性度量来确定多维空间中数据点之间的接近程度,从而找到最相关和最相似的结果。 海量规模 向量数据库被设计成能够处理大规模的数据集,并且在数据集大小增长时能够保持高搜索精度和响应时间。此外,它们通常提供并行处理和分布式计算的机制,以满足不断增长的数据需求。 AI 支持 随着人工智能和机器学习应用的迅速增长,向量数据库的采用也在增加。将复杂数据转换为向量表示可以与这些算法无缝集成,从而获得规模化的有价值洞见和预测。
5).为什么向量数据库大火
1).产品路线:专有化 vs 插件化
目前,市场上的涌现出一批向量数据库。技术原理上,一种是关系型数据库或NoSQL数据库,增加向量嵌入存储,但它们最初都没有设计用于存储和提供这种类型的数据。例如最为常见的pgvector插件,可以通过嵌入方式在PostgreSQL 数据支持存储和使用。另一种是原生的向量数据库,即在诞生之初就定位为专项数据库产品。Milvus 是一个于 2019 年首次发布的开源矢量数据库。

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

1).pgvector 特点
直接集成:pgvector 可以作为扩展直接添加到现有的 PostgreSQL 环境中,方便新用户和长期用户获得矢量数据库的好处,无需进行重大系统更改。 支持多种距离度量:pgvector 内置支持多种距离度量,包括欧几里德距离、余弦距离和曼哈顿距离。这样的多功能性使得可以根据具体应用需求进行高度定制的基于相似性的搜索和分析。 索引支持:pgvector 扩展为矢量数据提供高效的索引选项,例如 k-最近邻 (k-NN) 搜索。即使数据集大小增长,用户也可以实现快速查询执行,并保持较高的搜索准确性。 易于查询语言访问:作为 PostgreSQL 的扩展,pgvector 使用熟悉的 SQL 查询语法进行向量操作。这简化了具有 SQL 知识和经验的用户使用矢量数据库的过程,并避免了学习新的语言或系统。 积极的开发和支持:pgvector 经常更新,以确保与最新的 PostgreSQL 版本和功能兼容,并且开发者社区致力于增强其功能。用户可以期待一个受到良好支持的解决方案,满足其矢量数据的需求。 稳健性和安全性:通过与 PostgreSQL 的集成,pgvector 继承了相同级别的稳健性和安全性功能,使用户能够安全地存储和管理其矢量数据。
2).pgvector 计算
<->:该运算符计算两个向量之间的欧几里德距离。欧几里德距离是多维空间中向量表示的点之间的直线距离。较小的欧几里德距离表示向量之间的相似性较大,因此该运算符在查找和排序相似项目时非常有用。
<=>:该运算符计算两个向量之间的余弦相似度。余弦相似度比较两个向量的方向而不是它们的大小。余弦相似度的范围在 -1 到 1 之间,1 表示向量相同,0 表示无关,-1 表示向量指向相反方向。
<#>:该运算符计算两个向量之间的曼哈顿距离(也称为 L1 距离或城市街区距离)。曼哈顿距离是每个维度对应坐标差的绝对值之和。相对于欧几里德距离而言,曼哈顿距离更加强调沿着维度的较小移动。
3).pgvector 索引
4).pgvector 实践
下面构建一个测例,在 PostgreSQL 中使用 pgvector 插件测试对向量数据的检索。向量数据集采用公开的国内省市位置数据,将经纬度作为向量维度存储。通过欧几里德距离计算向量数据间距离(即城市间距离)。


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







