向量数据库,能让AI再次起飞吗?

9月7-8日,深圳国际会展中心18号馆

来了,来了,腾讯面向产业互联网领域规格最高、规模最大、覆盖最广的年度科技盛会 -——- 腾讯全球数字生态大会

9 7 日,我们将聚焦产业未来发展新趋势,针对云计算、大数据、人工智能、安全、SaaS 等核心数字化工具做关键进展发布,并联合生态伙伴推出最新行业场景解决方案。同时,携手全球权威商业杂志榜单,与中国最佳 CEO 探讨数实融合发展趋势,与中国 500 强企业解析产业焕新最佳实践。畅谈国产化、企业出海、行业大模型等应用实例,探讨如何构筑企业安全免疫力,以及如何通过 SaaS 产品组织协同缔造业务新增长等焦点议题。

由于本次大会的信息量太大,西红柿将聚焦向量数据库,为大家带来详细的介绍和评测。

一、什么是向量数据库?

向量数据库是一种专门用于存储和处理向量数据的数据库系统,它通过优化存储结构和查询算法,提供了高效的向量数据存储、相似度搜索、聚类和分类等功能。在图像、音频、文本等领域的应用中,向量数据库发挥着重要的作用。

向量数据库通常提供了丰富的查询接口和功能,如范围查询、k 近邻查询、相似性匹配等。同时,向量数据库还支持高并发和分布式部署,以应对大规模数据和高并发访问的需求。

向量数据库的工作流程包括以下步骤:

  • 1、向量数据的存储:向量数据通常是高维的数值型数据,如图像特征向量、文本词向量等;向量数据库使用基于向量的存储结构,以便快速查询和处理;
  • 2、向量索引:向量数据库使用 PQ、LSH 或 HNSW 等算法为向量编制索引,并将向量映射到数据结构,以便更快地进行搜索;
  • 3、向量查询:向量数据库将查询向量与数据库中的向量进行比较,从而找到最近邻的向量;
  • 4、查询结果的返回:向量数据库返回查询结果,通常包括与给定向量最相似的向量列表、向量之间的相似度得分等信息;该环节可以使用不同的相似性度量对最近邻重新排序。

二、腾讯云向量数据库 - 测试准备

准备工作概述:一台向量数据库 + 一个执行测试代码的客户端 + ann-benchamrk 官方的测试数据集和方法。

2.1 环境准备

  • 1、登录腾讯云:https://console.cloud.tencent.com
  • 2、创建向量数据库:从腾讯云控制台 一键创建 向量数据库实例。

ps.腾讯云向量数据库面向用户提供丰富的实例规格,可按需挑选。

  1. 操作系统选择: 版本建议使用‘TencentOS Server 3.1 (TK4)’, 此版本实测过程中安装 python3 相关的依赖 较顺利;
  2. 磁盘大小选择: 建议预留足够大的磁盘空间,200G 应该能满足实际测试需要,也可参考实际数据集的 大小创建;
  3. 内存大小选择: 因实际测试过程中,每一个进程都需要将被测试数据集全集加载进内存,可参考数据 集大小的 130% * 测试工具进程数 选择机器内存;

稍等几分钟,就建好啦,效果如下:

2.2 数据准备

2.1 上传测试工具及数据集到测试客户端

测试数据来源: ann-benchamrk 官方数据集测试工具可自动从外网官方站点下载。 官网地址:https://ann-benchmarks.com/

2.2 安装测试工具依赖

软件依赖: python 版本大于 3.6.8, 使用建议的操作系统版本上的 python3 即可

2.2.1 安装操作系统依赖包

yum install python3-pillow-devel.x86_64

2.2.2 解决测试工具并安装 python 运行依赖

cd ann-benchmarks
pip3 install -r requirements.txt

2.2.3 需要的依赖包:

ansicolors==1.1.8
docker
h5py
matplotlib
numpy
pyyaml
psutil
scikit-learn
jinja2
pytest
dataclasses-json==0.5.7
dacite
urllib3
enum34
typing
tqdm
threadpool

三、性能测试

3.1 测试 128 维数据在 HNSW 索引下的单核查询性能

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

执行测试后,看看数据库的资源表现吧。

  • CPU 使用率接近 100%
  • 内存和磁盘使用率较低

请求方面:

  • 请求量 QPS(Count/s) 最大值: 1092.92 最小值: 0.00 平均值: 63.90
  • 请求成功率(%) 最大值: 100.00 最小值: 0.00 平均值: 6.39
  • 请求超时率(%) 最大值: 0.00 最小值: 0.00 平均值: 0.00
  • 请求异常率(%) 最大值: 0.00 最小值: 0.00 平均值: 0.00
  • 失败请求量 QPS(Count/s) 最大值: 0.00 最小值: 0.00 平均值: 0.00
  • 请求平均耗时(ms) 最大值: 0.70 最小值: 0.00 平均值: 0.04

网络方面:在西红柿下载测试结果时,造成了一个峰值的。

向量数据库的单核性能表现令人赞叹。它展现出出色的处理能力和高效的计算速度。无论是在数据存储、索引构建还是查询处理方面,向量数据库都能够快速进行并行计算,并在单个核心上实现卓越的性能。

四、小结

腾讯云向量数据库专注于处理大规模的向量数据,并采用了高效的索引和查询算法,能够快速地进行相似度搜索和高维向量计算。使用户能够轻松地进行复杂的数据分析和机器学习任务。

腾讯云向量数据库还具备出色的可扩展性和稳定性。它支持自动水平扩展,能够根据数据规模和用户需求进行弹性扩容,保证了数据库的高可用性和性能稳定性。同时,腾讯云向量数据库提供了友好的管理界面和灵活的API接口,使得用户可以方便地进行数据操作和管理。

除此之外,腾讯云向量数据库还注重数据安全和隐私保护。它采用了多层次的安全措施,包括数据加密、访问控制和防火墙等,保证了用户数据的安全性和隐私保护。

总之,腾讯云向量数据库以其高性能、可扩展性和数据安全性而备受推崇,为用户提供了强大的数据处理和分析能力,是一项令人印象深刻的云端数据库解决方案。

更多精彩,请关注腾讯全球数字生态大会吧。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】封装map和set(红黑树实现)

前言: 前面,我们学习了set和map的用法,这两个容器可以完成查找,排序等操作,后来我们在学习过二叉搜索树的基础上又学习了两种特殊的二叉搜索树——AVL树和红黑树,他们俩可以是效率进一步提高,其…

深浅拷贝与赋值

数据类型 数据类型 在JavaScript中,数据类型有两大类。一类是基本数据类型,一类是引用数据类型。 基本数据类型有六种:number、string、boolean、null、undefined、symbol。 基本数据类型存放在栈中。存放在栈中的数据具有数据大小确定&a…

GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图

GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。如在科研编程、绘图领域: 1、编程建议和示例代码: 无论你使用的编程语言是Python、R、MATLAB还是其他语言,都可以为你提供相关的代码示例。 2、数据可…

pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源码编译笔记【2】验证cuda安装 成功

接上篇 pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1cu118 源码编译笔记_hkNaruto的博客-CSDN博客 由于采用/usr/local/bin/gcc编译,先设置LD_LIBRARY_PATH,再启动python3 export LD_LIBRARY_PATH/usr/local/lib64:/usr/local/lib:/usr/lib64:/usr/…

测试开发【Mock平台】10基础:拦截器实现Mock功能(一)探索HandlerInterceptor

【Mock平台】为系列测试开发教程,从0到1编码带你一步步使用Spring Boot 和 Antd React框架完成搭建一个测试工具平台,希望作为一个实战项目对各位的测试开发学习之路有帮助,大奇一个专注测试技术干货原创与分享的家伙。 在本系列 Mock 平台开…

揭秘#AI Grant 第二期项目,我是如何用AI获取灵感的?

hi,大家好,最近看到一篇文章,介绍了 AI版YC的二期项目,里面的项目非常值得我们去研究,推荐给大家: aigrant.com AI版YC 指的是 AI Grant,这是一家: 提供资金和支持的加速器项目由Nat…

JAVA怎么进行内存管理? - 易智编译EaseEditing

Java使用自动内存管理系统,主要通过垃圾回收器(Garbage Collector)来进行内存管理。这意味着开发人员不需要手动分配或释放内存,而是让垃圾回收器来处理不再使用的对象的内存释放。以下是关于Java内存管理的一些重要概念和建议&am…

C语言——程序环境和预处理(再也不用担心会忘记预处理的知识)

了解程序环境和预处理 前言:一、程序环境二、编译链接2.1 翻译环境2.2 编译的几个阶段2.3 运行环境 三、预处理3.1 预定义符号3.2. #define的使用3.2.1 #define 定义标识符3.2.2 #define 定义宏3.2.3 #define 替换规则3.2.4 #和##的用途3.2.5 带副作用的宏参数3.2.6…

postgresql|数据库|数据迁移神器ora2pg的安装部署和初步使用

前言: 有的时候有需求需要迁移Oracle数据库的数据到postgresql,那么,其实可供选择的工具是比较多的,但从迁移效率,准确度这些角度来选择的话,无疑还是GitHub上的开源免费工具ora2pg比较合适的。 ora2pg的…

MyBatis快速入门

JDBC介绍: JDBC:就是使用Java语言操作关系型数据库的一套API 本质: sun公司官方定义的一套操作所有关系型数据库的规范,即接口 各个数据库厂商去实现这套接口,提供数据库驱动jar包 我们可以使用这套接口(J…

快速掌握STM32工程创建

STM32 工程创建-- 使用Keil uVision5 软件 晓理紫 1 准备库函数库 STM32F10x_StdPeriph_Lib_V3.5.0 VX 搜索“晓丽紫”关注回复STM32F10x即可下载 2、创建一个目录用来存放工程 STM32Study STM32Study/study1 存放本次工程目录 3、打开Keil uVision5 创建工程 4、选择型号(根据…

docker从零部署jenkins保姆级教程(上)

jenkins,基本是最常用的持续集成工具。在实际的工作中,后端研发一般没有jenkins的操作权限,只有一些查看权限,但是我们的代码是经过这个工具构建出来部署到服务器的,所以我觉着有必要了解一下这个工具的搭建过程以及简…