【腾讯云生态大会】腾讯云向量数据库

news2025/2/28 6:22:19

【腾讯云生态大会】腾讯云向量数据库

  • 一、 腾讯云向量数据库介绍
  • 二、向量数据库的产品规格
  • 三、向量数据库关键概念
  • 四、向量数据库的使用之新建数据库实例
  • 五、向量数据库的初体验
  • 六、向量数据库的使用之检索性能压测
  • 七、总结


  • 个人主页: ζ小菜鸡
  • 大家好我是ζ小菜鸡,让我们一起来体验腾讯云向量数据库
  • 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)

一、 腾讯云向量数据库介绍

1.腾讯云向量数据库是什么
腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持 10 亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、自然语言处理等 AI 领域。


2.腾讯云向量数据库的产品特性及优点
(1)高性能
向量数据库 Tencent Cloud VectorDB 单索引支持 10 亿级向量数据规模,可支持百万级 QPS 及毫秒级查询延迟。
(2)低成本
只需按照控制台的指引简单操作,即可快速创建向量数据库实例,全流程平台托管,无需进行任何安装、部署、运维操作,减少机器成本、运维成本、人力成本开销。
(3)高可用
向量数据库 Tencent Cloud VectorDB 提供多副本高可用特性,提高容灾能力,确保数据库在面临节点故障和负载变化等挑战时仍能正常运行。
(4)简单易用
支持丰富的向量检索能力,用户通过 API 即可快速操作数据库,开发效率高。同时控制台提供了完善的数据管理和监控能力,操作简单便捷。
(5)大规模
向量数据库架构支持水平扩展,单实例可支持百亿级 QPS,轻松满足 AI 场景下的向量存储与检索需求。
(6)稳定可靠
向量数据库 Tencent Cloud VectorDB 源自腾讯集团自研的向量检索引擎 OLAMA,近 40 个业务线上稳定运行,日均处理的搜索请求高达千亿次,服务连续性、稳定性有保障。


二、向量数据库的产品规格

(1)产品规格
腾讯云向量数据库(Tencent Cloud VectorDB)采用分布式部署架构,每个节点相互通信和协调,实现数据存储与检索。客户端请求通过 Load balance 分发到各节点上。


(2)节点类型
腾讯云向量数据库依据存储节点 CPU 与内存资源分配比例不同,分为存储型和计算型两类。
a .存储型:主要用于存储和管理大规模的向量数据,其主要优势在于:提供低查询延迟,能够高效地存储和管理向量数据,特别适用于数据量大、数据增长快、查询 QPS 相对较低的场景,例如:人脸识别、图像搜索等。
b.计算型:主要用于快速查找和检索向量数据,支持高并发的查询请求,其主要优势在于:提供更高的查询 QPS 和更低的查询延迟,适用于流量大、延迟敏感的场景,例如:实时推荐、广告投放等。


(3)节点数量
腾讯云向量数据库采用分布式架构,支持多节点通信与协调,目前支持3~10个节点。


(4)节点规格
节点类型不同,对应的产品规格有差异,详细信息,请参见下表。
在这里插入图片描述


三、向量数据库关键概念

向量(Vector)

向量可以理解为一组数值的有序集合,通常用于表示某个对象或事物的属性或者特征。这些数值可以有不同的维度,每个维度都表示一个属性或特征。在机器学习和人工智能领域,向量常用于表示图像、文本、音频等数据,通过计算向量之间的距离或相似度来实现分类、聚类、检索等任务。
OLAMA

OLAMA 是腾讯自研的向量引擎,具有高性能、高可用、简单易用等特点。它支持单索引10亿级向量规模,适用于 AI 运算、检索场景,已稳定服务于近40个线上业务。

实例(Instance)

实例是腾讯云中独立运行的数据库环境,是用户购买向量数据库服务的基本单位,以单独的进程存在。一个数据库实例可以包含多个由用户创建的数据库。 您可以在控制台创建、修改和删除实例。实例之间相互独立、资源隔离,相互之间不存在 CPU、内存、持久内存、IO 等抢占问题。
数据库(Database)

数据库是按照数据结构来组织、存储和管理数据的仓库,一个实例可以创建多个 Database。
集合(Collection)

在向量数据库中,集合是指一组文档组,类似于关系型数据库中的表,其中可包含多条文档数据。集合没有固定的结构,可以插入不同格式和类型的数据。向量数据库支持集合维度的多分片、多副本特性,可以在创建集合时按需指定分片数和副本数。
文档(Document)

在向量数据库中,集合 可以看作是一个表格,而 Document 可以看作是表格中的一行数据。每个 Document 代表一个完整的文档对象,包含了多个 Field,每个 Field 表示文档中的一个属性或字段。向量数据库的文档是一组键值对(key:value),每个文档都有一个唯一主键(id)和一个向量字段(vector)。在插入文档时,向量数据库不需要设置相同的字段,可以在插入数据时增加或删除字段。
字段(Field)

每个 Field 是一个键值对(key:value),表示文档中的一个属性或者字段。每个 Field 都有自己的类型和取值范围,可以是字符串、数字等不同类型的数据。
节点(Node)

从向量数据库集群的资源角度来看,节点是用于存储数据的资源单位。一个运行中的向量数据库实例通常包含很多个节点,集合的多个副本和分片会分布在若干个节点上。节点是组成向量数据库集群的基本单元之一。
分片(Shard)

为了支持更大规模的数据,集合一般会按某个维度分成多个部分,每个部分就是一个分片,分布在若干个节点(Node)上。为了保证可靠性和可用性,同一个集合的多个分片会分布在不同节点(Node)上。
副本(Replica)

同一个分片(Shard)的备份数据,一个分片至少会有2个副本。副本分片作为硬件故障时保护数据不丢失的冗余备份,并为向量检索和文档查询等读操作提供服务,确保数据库在面临节点故障和负载变化等挑战时仍能正常运行。
索引(Index)

索引是一种特殊的数据结构,用于快速查找和访问数据,存储在内存中。索引本身并不存储数据,而是存储指向数据存储位置的指针或键值对。Tencent Cloud VectorDB 支持 FLAT、HNSW 等常见的向量索引。索引介绍详见 向量检索。
KNN(K-Nearest Neighbor Search)

KNN 指的是最近邻搜索(K-Nearest Neighbor Search),是一种基于暴力搜索的方法,它的原理是:计算待查询向量与数据库中所有向量之间的距离,然后按照距离从小到大排序,选择距离最近的 K 个向量作为查询结果。KNN 算法的优点是可以保证精确的结果,但是对于大规模的向量数据,计算量会非常大,效率较低。
ANN(Approximate Nearest Neighbor Search)

ANN 表示近似最近邻搜索(Approximate Nearest Neighbor Search),是一种用于高维数据空间中快速查找最近邻点的方法。与精确最近邻搜索相比,ANN 牺牲了一定的精度以换取更高的搜索速度,因此在处理大规模数据集时具有较高的效率。ANN 方法通常会对数据进行预处理,从而在查询时减少计算距离的次数。ANN 算法的优点是速度快、效率高,但是相对于 KNN 算法来说,其结果可能不够精确。
HNSW(Hierarchical Navigable Small World)

HNSW 是一种基于图的高维向量相似性搜索算法,全称为:Hierarchical Navigable Small World。它通过构建一张图来表示向量之间的相似度关系,并使用一些优化策略来加速搜索过程。


四、向量数据库的使用之新建数据库实例

【1】使用腾讯云账号登录 向量数据库控制台。(小菜鸡已注册已注册腾讯云账号并完成实名认证。如果没有腾讯云账号,需要先注册登录一下腾讯云)

在这里插入图片描述


【2】单击新建,进入新建向量数据库实例页面。(小菜鸡选择的是计算机型,向量规模比较小的)

在这里插入图片描述


【3】请参见下表,配置如下参数,购买实例。

在这里插入图片描述
【4】单击立即申请,自动返回实例列表页面,当前实例状态为创建中,等待实例状态更新为运行中即可使用。


五、向量数据库的初体验

【1】用户可通过腾讯云控制台购买云服务器 CVM 实例(CVM 和向量数据库需在同一个私有网络 VPC)进行性能测试发起。
在这里插入图片描述


(这里小菜鸡自己新建了性能测试的实例,之后在右侧操作列中登录即可)

在这里插入图片描述


在这里插入图片描述


(登录之后的界面如图,里面有一个编辑器的选项,方便用户操作,小菜鸡使用的就是编辑器)

在这里插入图片描述


编辑器页面如图

在这里插入图片描述


【2】测试工具准备
1.下载测试工具:ann-benchmarks-dev.zip,之后上传测试工具及数据集到测试客户端 CVM

在这里插入图片描述


2.安装测试工具依赖
软件依赖: python 版本大于 3.6.8, 使用建议的操作系统版本上的 python3 即可。(小菜鸡选择就是python3)
a. 首先在测试客户端 CVM终端中安装操作系统依赖包,如下图所示:

在这里插入图片描述


b.在终端中进入到测试工具目录并安装python运行依赖如下图所示:(这里一定要进入测试工具目录进行安装)

在这里插入图片描述
(安装模块不是很多,小菜鸡等待了10s左右就安装完毕了)


在这里插入图片描述


c.python依赖环境安装成功结果如下图所示:

在这里插入图片描述


【3】连接向量数据库
1:开始测试时,可从工程目录中拷贝默认配置文件
‘ann_benchmarks/algorithms/vector_db/config.yml’ 到工程下自己的工作目录做修改,再通过命令行参数–definitions 指定自已的配置文件来运行测试。

在这里插入图片描述


2:选择测试数据集,找到 ann-benchamrk 已存在的名为 sift-128-euclidean 的数据集正好是 128 维度,可使用该数据集做测试。 该数据集命令以 euclidean 结尾,表示使用L2 相似算法

在这里插入图片描述


3:CVM连接测试向量数据库
a.保证已新建数据库实例,且状态为运行中。如下图所示:

在这里插入图片描述


(在实例列表中,我们单击实例 ID,或在其操作列,单击管理,进入实例详情页面。就可以看到向量数据库的具体的信息了)

在这里插入图片描述


b.获取向量数据库实例的内网 IP 地址与网络端口(小菜鸡上个图里面就有具体信息)

在这里插入图片描述


c.获取向量数据库的 API 访问密钥(小菜鸡直接复制秘钥,大家可以单击 API 密钥 列的显示,可查看 API 密钥信息,在进行复制。)

在这里插入图片描述


d.在腾讯云 CVM 安全组中配置出站规则,需要把腾讯云向量数据库的 IP 及端口添加到出站规则中。在腾讯云向量数据库安全组中配置入站规则,把 CVM 的 IP 及端口添加到入站规则中
(1)腾讯云安全组

在这里插入图片描述


之后添加入站规则

在这里插入图片描述


(2)向量数据库安全组,配置安全组信息。如下图所示:

在这里插入图片描述


在这里插入图片描述


【4】测试运行示例
a: 拷贝默认配置文件到自己的配置文件路径(小菜鸡在控制台直接操作是不行的,必须在测试文件中操作)如下图所示:

在这里插入图片描述


在这里插入图片描述


b. 在mytest.yml按需设置自己的配置参数。

在这里插入图片描述


c.通过以下命令运行测试,工具会自动从外网下载 ann-benchmark 官方数据集并写入腾讯云向量数据库。(小菜鸡输入命令的时候没有注意格式一直报错,这里需要注意命令格式)如图下图所示:

在这里插入图片描述


d.测试结束后,测试结果保存在 results 文件夹中,需要使用另外的命令行工具将结果转换为可读的 csv 文件。如下图所示:

在这里插入图片描述


六、向量数据库的使用之检索性能压测

【1】探索指定召回率时,需要设置的查询 ef 条件(注意: 该模式需要增加 only_query 参数,避免重新进行数据插入)
a.找开探索模式,修改配置文件中的 KNNSeekMode 为 true, 该模式测试工具会反复运行不同 ef 值的查询,直到获得最匹配的召回率为止。如下图所示:

在这里插入图片描述


b.配置探索参数
KNNSeekStartEF: 指定从哪个 ef 参考值开始查询
KNNSeekStep: 指定探索模式中,每次 ef 值变化几个单位; 如 1 则为:
KNNSeekStartEF+=1 或相减。(每次递增或递减的步长)
KNNSeekExpect: 期望找到的召回率,如 0.95
(这里还是在配置文件里设置)如下图所示:

在这里插入图片描述


c.运行工具,在控制台输入指令。如下图所示:(这里小菜鸡还是要提醒一下大家,注意指令的格式)

在这里插入图片描述


d.结果显示如下(图片中 KNNSeekExpect=0.95):
在这里插入图片描述


【2】Search 检索性能测试
a.找到期望测试的 ef 或者设置 ef,通过‘【1】’中探索为获得指定召回率,需要设置的查询条件’ 找到期望召回率的 ef;或者按需设置自己的 ef 值
b. 压测查询配置,在配置文件中,如下使用 8 核压测查询 ef=111 的情况。 注意需要设置 KNNSeekMode为 false。如下图所示:

在这里插入图片描述


c.压测命令,压测时需要打开–batch 参数,同时设置–runs 为较大值以便长时间运行。如下图所示:
在这里插入图片描述


【3】查看压测结果
a.使用腾讯云账号登录 向量数据库控制台。在实例列表中,找到需查看监控数据的实例。如下图所示:

在这里插入图片描述


b.单击目标实例 ID,或在其操作列,单击管理,进入实例详情页面,找到实例监控。如图所示:

在这里插入图片描述


c:腾讯云向量数据库控制台提供了实例的 CPU,内存、QPS,时延等关键性能指标监控。可从方便的控制台获取。如下图所示:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


【4】当查询无法把 CPU 打满时的解决方案
受限于 python 语言的线程模型,有时测试工具无法把测试压力打满,导致实例性能无法达到极限,此时可使用多进程或多台 CVM 同时进行压测。如图所示:

在这里插入图片描述


七、总结

腾讯云向量数据库作为一种专门存储和检索向量数据的服务提供给用户, 在高性能、高可用、大规模、低成本、简单易用、稳定可靠、智能运维等方面体现出显著优势。 是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、NLP 服务、计算机视觉、智能客服等 AI 领域,应用范围十分广泛。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/990175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MNIST手写数字辨识-cnn网路 (机器学习中的hello world,加油)

用PyTorch实现MNIST手写数字识别(非常详细) - 知乎 (zhihu.com) 参考来源(这篇文章非常适合入门来看,每个细节都讲解得很到位) 一、模块函数用法-查漏补缺: 1.关于torch.nn.functional.max_pool2d()的用法: 上述示例…

56、springboot ------ RESTful服务及RESTful接口设计

★ RESTful服务 RESTful服务是“前后端分离”架构中的主要功能&#xff1a; 后端应用对外暴露RESTful服务&#xff0c;前端应用则通过RESTful服务与后端应用交互。后端应用 RESTful接口 <------------------> 前端★ 基于JSON的RESTful服务 使用RestController注解…

Linux 系统时间同步 ​使用 NTP 服务时间同步​

目录 一、使用 NTP 服务时间同步 二、启动并设置开机自启 三、配置文件 在 /etc/ntp.conf 四、局域网指定一台服务器作为 时间服务器 一、使用 NTP 服务时间同步 安装 ntp yum -y install ntp 二、启动并设置开机自启 systemctl start ntpd systemctl enable ntpd #开…

vue+antd——实现table表格的打印——分页换行,每页都有表头——基础积累

这里写目录标题 场景效果图功能实现1&#xff1a;html代码功能实现2&#xff1a;css样式功能实现3&#xff1a;js代码补充内容page-break-inside 属性page-break-after属性page-break-before 属性 场景 最近在写后台管理系统时&#xff0c;遇到一个需求&#xff0c;就是要实现…

【独家工具】JMeterPerfReporter3.0正式版本,让你的JMeter更好用

Lemon-JMeterPerfReporter工具&#xff0c;是我们性能测试课程教研组根据JMeter性能测试报告的不足&#xff0c;定制开发的一个性能报告生成工具。有需要的同学&#xff0c;可以通过小编官方gitee账户下载&#xff0c;或咨询我免费获取哦&#xff01; 做过性能测试的人员都知道…

单目标应用:基于蜘蛛蜂优化算法(Spider wasp optimizer,SWO)的微电网优化调度MATLAB

一、微网系统运行优化模型 微电网优化模型介绍&#xff1a; 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、蜘蛛蜂优化算法 蜘蛛蜂优化算法&#xff08;Spider wasp optimizer&#xff0c;SWO&#xff09;由Mohamed Abdel-Basset等人于2023年提出&#xff0c;该…

企业帮助中心如何在线搭建,还能多场景使用呢?

搭建一个企业帮助中心的在线平台可以帮助企业提供高效的客户支持和解决方案。同时&#xff0c;这个平台还可以用于其他场景&#xff0c;例如内部员工培训、知识共享等。下面我将详细介绍如何在线搭建一个企业帮助中心&#xff0c;并且使其能够多场景使用。 选择合适的在线平台…

jeecg vue3版本集成达梦数据库

jeecg他的文档中有一个集成达梦数据库的步骤&#xff0c;链接如下 连接达梦数据库 - JeecgBoot 文档中心&#xff0c;但是我按照步骤去操作的时候并没有适配成功&#xff0c;大部分是他的步骤写的不够清楚&#xff0c;没有说明改哪里的文件&#xff0c;下面是我摸索的适配步骤。…

[移动通讯]【Carrier Aggregation-4】【LTE-1】

前言&#xff1a; 参考&#xff1a; 《Carrier Aggregation Explained In 101 Seconds》 Qualcomm 《Carrier aggregation (CA) in LTE-Advanced by TELCOMA Global》TELCOMA Global 《Carrier Aggregation _CA_Part1》 《Carrier Aggregation _CA_Part2》 《Carrier Aggregati…

【Opencv入门到项目实战】(十一):harris角点检测|SIFT|特征匹配

所有订阅专栏的同学可以私信博主获取源码文件 文章目录 1.harris角点检测2.尺度不变特征变换&#xff08;SIFT&#xff09;2.1图像尺度空间2.2 关键点定位2.3 消除边界响应2.4 代码示例 1.harris角点检测 这一节我们来讨论一下Harris角点检测&#xff0c;由Chris Harris和Mike…

论文分享丨西工大音频语音与语言处理研究组四篇论文被IEEE Trans. ASLP和SPL录用

近日&#xff0c;实验室三篇论文被语音研究顶级期刊IEEE/ACM Transactions on Audio, Speech and Language Processing (TASLP)录用&#xff0c;一篇论文被重要期刊IEEE Signal Processing Letters (IEEE SPL)录用&#xff0c;论文方向涉及说话人识别中的对抗攻击、基于扩散模型…

初学python(一)

一、python的背景和前景 二、 python的一些小事项 1、在Java、C中&#xff0c;2 / 3 0&#xff0c;也就是整数 / 整数 整数&#xff0c;会把小数部分舍掉。而在python中2 / 3 0.66666.... 不会舍掉小数部分。 在编程语言中&#xff0c;浮点数遵循IEEE754标准&#xff0c;不…

vscode中git的使用,以及与webstorm中git的使用对比

前言&#xff1a; 在项目中经常使用的git提交我们代码的时候&#xff0c;vscode和webstorm 是用的非常多的两个工具了&#xff0c;这里再次整理下他们的具体使用以及各自的优势&#xff01; 1、初始化拉取项目 个人习惯&#xff0c;这里就不说框架用法了&#xff0c;原始的最简…

Python函数的概念以及定义方式

一. 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 二. 什么是函数&#xff1f; 假设你现在是一个工人&#xff0c;如果你实现就准备好了工具&#xff0c;等你接收到任务的时候&#xff0c; 直接带上工…

【安全】正则回溯绕过练习简单案例

目录 环境 案例1 前要 代码审计 分析 案例2 代码审计 分析 payload 环境 phpstudy 案例1 前要 php中0 1 -1 true false null 空字符 数组之间的比较 代码审计 <?php function areyouok($greeting){return preg_match(/Merry.*Christmas/is,$greeting); //2.传…

FP103 双运算放大器和参考调节器芯片

FP103 双运算放大器和参考调节器芯片 一般说明 FP103是一个由一个独立的运放器&#xff08;OPA2&#xff09;和另一个运放器&#xff08;OPA1&#xff09;组成&#xff0c;在非反相输入上具有2.5V精密电压参考&#xff0c;应用于许多应用&#xff0c;如电源、二流/直流转换器或…

python selenium控制浏览器打开网页 模拟鼠标动作

selenium 是一个浏览器控制的库 需要下载安装 谷歌浏览器的驱动 chromedriver https://sites.google.com/chromium.org/driver/downloads 在这里选择跟自己谷歌浏览器版本号一致的驱动程序 如果是最新的浏览器版本可以点这里下面这个链接 Chrome for Testing availability 选…

Web自动化测试详细流程和步骤

一、什么是web自动化测试 自动化&#xff08;Automation&#xff09;是指机器设备、系统或过程&#xff08;生产、管理过程&#xff09;在没有人或较少人的直接参与下&#xff0c;按照人的要求&#xff0c;经过自动检测、信息处理、分析判断、操纵控制&#xff0c;实现预期的目…

echo tail 与 重定向符

1.echo 命令 可以使用echo命令在命令行内输出指定内容 语法: echo输出的内容 无需选项&#xff0c;只有一个参数&#xff0c;表示要输出的内容&#xff0c;复杂内容可以用””包围其类似于 printf 函数 例子&#xff1a; 2. 反引号符 被包围的内容&#xff0c;会被作为命令…

SpringMVC_拦截器

4.拦截器 4.1拦截器概述 概述&#xff1a;一种动态拦截方法调用的机制&#xff0c;在SpringMVC中动态拦截控制器方法的执行实际开发中&#xff0c;静态资源&#xff08;HTML/CSS&#xff09;不需要交给框架处理&#xff0c;需要拦截的是动态资源 4.2图示 图示 4.3案例实现 …