向量是一种专门用于存储和查询向量数据的数据库。向量数据的典型结构是一个一维数组,其中的元素是数值(通常是浮点数)。这些数值表示对象或数据点在多维空间中的位置、特征或属性。例如: 在中,一篇文章可以用一个词向量表示,每个词可以用一个数字表示其在词向量空间中的位置。 在中,一张图片可以用一个像素向量表示,每个像素可以用三个数字表示其RGB值。 在中,一个用户可以用一个用户向量表示,每个维度可以表示不同的兴趣爱好或行为偏好。 腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,单索引支持 10 亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。不仅能提高大模型回答的准确性,还可广泛应用于推荐系统、自然语言处理等领域。
向量数据库是一种专门用于存储、检索和计算向量的数据库系统。它通过将数据表示为向量(数学上的一种数据结构),从而能够高效地处理相似性搜索和聚类等任务。这种数据库通常用于处理大规模的高维数据,如图像、文本和音频等。通过使用向量数据库,可以更有效地进行复杂的数据分析和模式识别。
想象一下你有一组电影,每部电影都可以用一个向量表示,其中包含了影片的不同特征,比如类型、导演、演员等。现在,你想找到与给定电影最相似的电影。
如果使用向量数据库,你可以将每部电影表示为一个向量,比如3,1,4,2,...3,1,4,2,...,其中每个数字代表某个特征的值。现在,通过计算向量之间的相似性,你可以找到与给定电影向量最接近的其他电影向量。
这样,当你想要寻找与某部电影相似的电影时,不需要遍历整个电影库,而是可以利用向量数据库迅速找到最匹配的电影,使得相似性计算更加高效。
向量数据库和倒排索引有一些相似之处,尤其是在处理相似性搜索的情境下。
在倒排索引中,你会创建一个映射,将每个关键词(或特征)与包含该关键词的文档关联起来。这样,在搜索时,你可以快速找到包含特定关键词的文档,而不必遍历整个文档集合。
类似地,在向量数据库中,你将每个数据点(如图像或电影)表示为向量,并通过计算向量之间的相似性来实现搜索。这就使得在高维空间中寻找相似项变得更加高效,因为你可以快速排除那些在向量空间中距离较远的项。
所以,两者都是为了提高相似性搜索的效率,但实现的方式略有不同。倒排索引更注重关键词的匹配,而向量数据库则更专注于在高维空间中寻找相似的向量。
腾讯云向量数据库(Tencent Cloud VectorDB)采用分布式部署架构,每个节点相互通信和协调,实现数据存储与检索。客户端请求通过 Load balance 分发到各节点上。
负载均衡(Load Balancer,LB):是对多台后端服务器进行流量分发的服务。向量数据库集群架构节点数量 >= 3,自动通过 Load balance 来均衡访问。
分布式 Storage Node:向量数据库集群由多个节点构成,每个节点均可直接进行读/写操作,负责数据的计算及存储。 是向量数据的基本组织形式,将向量集合拆分成多个分片,并分配到不同的节点上进行存储和处理;每个分片还会在其他节点上同步产生多个副本,以保证数据库服务的可扩展性与高可用性。
meta Server:集群管理模块,由一组 Master 节点组成,负责存储集群的节点信息、数据分片信息等元数据信息。
Embedding Service:是一种将非结构化数据(如文本、图像、音频等)转换为向量表示的服务,从而方便进行分析、聚类等操作。具体信息,请参见 。
Split Service:是一种将文本拆分成短语或句子等的服务。
说明:腾讯云向量数据库提供的 Split Service 模型能力,目前在开发调试中。具体上线时间,请关注 。
Object Service:负责将数据批量导入到指定集合,支持多种数据导入格式。
Object Storage:用于存储和管理数据导入服务中上传的数据文件。
我们简单地描述它们的区别,并配以一些具体的例子:
例子:
关系型数据库:
非关系型数据库:
向量数据库:
您可根据本文的介绍,购买和配置您的第一台腾讯云向量数据库(Tencent Cloud VectorDB)。
当前支持北京、上海、广州、上海自动驾驶云、中国香港、新加坡,其他地域在规划准备中。
已注册腾讯云账号并完成实名认证。
如需注册腾讯云账号:请单击 。
如需完成实名认证:请单击 。
已规划数据库实例需满足的规格。具体信息,请参见 。
已规划数据库实例的私有网络与安全组,请参见 与 。
腾讯云向量数据库(Tencent Cloud VectorDB)通过 HTTP 协议进行数据写入和查询等操作。您可以将不同类型的请求消息以 JSON 格式放入 HTTP 请求消息 Body 中,将请求发送到 VectorDB 的 HTTP API 地址即可。VectorDB 将自动解析请求消息 Body 中的 JSON 数据,并将其存储到数据库中。
腾讯云向量数据库(Tencent Cloud VectorDB)的 Java SDK 是将 HTTP API 封装成易于使用的 Java 函数或类。开发者可以通过 Java SDK 更加方便地操作数据库。
如下为 Gradle 与 Maven 项目添加 SDK 最新版本 1.0.3 依赖的不同方式,请依据实际需求添加。
Gradle 引入
请在 Gradle 项目的 build.gradle 文件中添加如下依赖。
Maven 引入
请在 Maven 项目的 pom.xml 文件中添加如下依赖。
okhttp3版本是4.9.2因为vectordatabase-sdk-java1.0.3的引用
执行完成
相似性计算方法是向量检索的基础,用于衡量高维向量数据之间的相似度。在创建 Collection 时,需要依据数据特征,选择合适的相似性计算方法。下表展示了这些广泛使用的相似性计算方法如何与各种输入数据形式和腾讯云向量数据库(Tencent Cloud VectorDB)索引相匹配。
全称为 Inner Product,内积也称点积,计算结果是一个数。它计算两个向量之间的点积(内积),其计算公式如下所示。其中,a = (a1, a2,..., an) 和 b = (b1, b2,..., bn) ,是 n 维空间中的两个点。计算所得值越大,越与搜索值相似。
添加描述
欧式距离(L2)全称为 Euclidean distance,指欧几里得距离。它计算两个向量点在空间中的直线距离。计算公式如下所示。其中,a = (a1, a2,..., an) 和 b = (b1, b2,..., bn) 是 n 维空间中的两个点。它是最常用的距离度量。计算所得的值越小,越与搜索值相似。L2在低维空间中表现良好,但是在高维空间中,由于维度灾难的影响,L2的效果会逐渐变差。
添加描述
余弦相似度(Cosine Similarity)算法,是一种常用的文本相似度计算方法。它通过计算两个向量在多维空间中的夹角余弦值来衡量它们的相似程度。其计算公式如下所示。其中,a = (a1, a2,..., an) 和 b = (b1, b2,..., bn) 是 n 维空间中的两个点。|a|与|b|分别代表 a 和 b 归一化后的值。cosθ 代表 a 与 b 之间的余弦夹角。计算所得值越大,越与搜索值相似。取值范围为-1,1。
说明:
在向量归一化之后,内积与余弦相似度等价。余弦相似性只考虑向量夹角大小,而内积不仅考虑向量夹角大小,也考虑了向量的长度差。
更多细节操作请仔细阅读官方API
本文地址:http://motor168.cxdr.cn/quote/245.html 珂云塔 http://motor168.cxdr.cn/ , 查看更多