0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Redis 8 向量搜索实测:轻松扩展至 10 亿向量

虹科技术 来源:虹科技术 作者:虹科技术 2025-05-13 14:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

面对生成式 AI 带来的超大规模向量需求,Redis 8 向量搜索实测轻松支持 10 亿向量,依旧保持低延迟与高吞吐表现。本篇文章详细介绍了 Redis 如何通过 HNSW 算法扩展至十亿级别,并提供完整测试配置与性能数据。无论是 AI 检索、推荐系统还是多模态生成应用,Redis 8 都是你构建高效向量服务的可靠选择。

随着越来越多的公司把生成式人工智能(GenAI)应用投入生产,我们看到客户对更大向量数据库的需求不断增长。我们发现了一些需要 10 亿个或更多向量的使用场景,很高兴能分享我们在这一规模上的基准测试结果。

在测试中,我们在中位延迟为 200 毫秒的情况下达到了 90% 的精确度,而在处理 50 个并发搜索请求时,对于前 100 个最近邻(nearest neighbors),在中位延迟为 1.3 秒的情况下达到了 95% 的精确度。

将向量搜索扩展到 10 亿个向量并非易事,但 Redis 8 的发布让这一过程显得轻松。今天,我们将通过展示 Redis 在实时搜索 10 亿个 768 维向量时的处理能力,来说明它如何应对大规模应用程序。我们严格测试了索引与搜索的性能,证明了 Redis 不仅是最快的向量数据库,还能从数百万个向量扩展到数十亿个向量,仍然提供极低的延迟。请查看下面的详细信息。

测试配置详解

我们使用了一个与 Intel® 合作准备的向量数据集,该数据集包含 10 亿个 768 维向量,采用 FLOAT16 精度和 10K 查询,每个查询有 100 个真实值(精确邻居,exact neighbors)。该数据集源自LAION-5B 数据集,这是一个用于训练下一代图生文模型(如 Stable Diffusion 和 OpenClip)的大规模数据集。

向量索引使用了欧几里得距离度量和 FLOAT16 精度,并且在查询时通过调整以下参数来实现不同的精确度:

EF_CONSTRUCTION(在索引创建时设置):在构建图时,图中每个节点允许的最大潜在出边(potential outgoing edges candidates)候选数量。

M(在索引创建时设置):在图的每一层中,每个节点允许的最大出边数量。在第零层,最大出边数量将是 2M。

EF_RUNTIME(在查询时可变):在 KNN 搜索期间要保留的最大顶级候选数量(maximum top candidates)。更高的 EF_RUNTIME 值将导致更准确的结果,但也会增加运行时间。

使用数据集的 100 个最近邻的真实值来评估每个回复的准确性(召回率),并且我们对 M 在 4、8、16 和 32 个出边之间,EF_CONSTRUCTION 在 4、8、16 和 32 之间,以及 EF_RUNTIME 在 4、8、16、32、64、128、256、512、1024、2048、4096 和 8192 之间进行了调整。为确保结果可重现,每个配置都运行了 3 次,选择了最好的结果。

Redis 8 Community Edition 十亿规模基准测试

数据集:laion-img-emb-768-1G-cosine

客户端数量:501

绘制值:每秒请求数(RPS)| 平均延迟(秒)| 95百分位延迟(秒)| 索引时间(秒)

wKgZPGgi33-AD4ciAADd27A_1j8775.png

在我们之前的向量数据库基准测试博客中,我们专注于证明 Redis 是最快的向量数据库。现在我们证明,对于需要保持实时性延迟的使用场景,我们不仅是最快的向量数据库,我们还可以将向量数量从数百万扩展到数十亿。

测试结果

在十亿向量规模下,使用实时索引,Redis 8 社区版可以维持每秒 66K 向量插入,对于允许至少 95% 精确度(M 16 和 EF_CONSTRUCTION 32)的索引配置。对于导致较低精确度(M 4 和 EF_CONSTRUCTION 4)的索引配置,Redis 8 社区版可以支持高达每秒 160K 向量插入的速率。通过使用更多服务器可以进一步增加吞吐量。

对于高精确度查询,我们可以看到更大的 HNSW 索引(更高的 M 和 EF_CONSTRUCT)会提高搜索质量,但会增加延迟。在处理 50 个并发搜索请求时,我们在中位延迟(包括往返时间)为 200 毫秒的情况下达到 90% 精确度,而在中位延迟(包括往返时间)为 1.3 秒的情况下达到 95% 精确度。

由于所需的精确度和延迟权衡因使用场景而异,因此根据上面的图表调整 HNSW 参数非常重要。

Redis 8 证明了实时向量搜索不仅适用于数百万个向量,还能扩展到数十亿个向量,同时保持高性能。通过正确的 HNSW 调优,你可以在精确度、延迟和吞吐量之间取得平衡,以适应你的使用场景,实现高达 95% 的召回率和实时查询。无论你是在构建人工智能驱动的搜索、推荐引擎还是任何基于向量的应用程序,Redis 都能为你提供所需的快速、可扩展性能。

Redis

艾体宝是Redis企业版数据库的中国区战略合作伙伴,持续关注各行业当下急切需求,专注于为企业解答疑问,制定专属服务,提供一站式解决方案,艾体宝提供的Redis企业版数据库是无数企业数据安全保护路上的最佳合作选择!为企业的数据安全保驾护航!

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    91

    文章

    41976

    浏览量

    303077
  • 人工智能
    +关注

    关注

    1821

    文章

    50511

    浏览量

    267745
  • Redis
    +关注

    关注

    0

    文章

    396

    浏览量

    12281
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NumPy完成RISC-V向量扩展适配,SG2044平台验证RVV浮点性能优势

    在中国科学院软件研究所智能软件研究中心与如意RISC-V软件生态的持续推动下,国际主流开源科学计算库NumPy正式完成对RISC-VVector(RVV)向量扩展的优化适配,并在算能第二代服务器级
    的头像 发表于 05-15 09:03 305次阅读
    NumPy完成RISC-V<b class='flag-5'>向量</b><b class='flag-5'>扩展</b>适配,SG2044平台验证RVV浮点性能优势

    Oracle和NVIDIA合作加速向量搜索和企业数据处理

    旨在支持 NVIDIA GPU 和 NVIDIA cuVS 开源库,用于向量搜索和索引生成。本公告基于在 Oracle AI World 2025 大会上推出的 Oracle AI Database 26ai 和 Oracle Private AI Services Co
    的头像 发表于 03-23 15:26 541次阅读

    KIOXIA单服务器实现48亿高维向量搜索数据库,借助GPU实现索引构建时间加速7.8倍

    Kioxia Corporation今日宣布,凭借其开源的KIOXIA AiSAQ™近似最近邻搜索(ANNS)技术,成功演示在单台服务器上实现48亿向量的高维向量
    的头像 发表于 03-18 16:57 1133次阅读

    在使用CW32L083系列微控制器时如何配置中断向量表?

    在使用CW32L083系列微控制器时,如何配置中断向量表?
    发表于 12-15 06:17

    用哪吒D1开发板体验riscv向量底层编程

    1.前言 2.机器模式处理器状态寄存器(MSTATUS) 3.编译选项支持V扩展 4.RISCV向量计算的原理 5.通过实例分析RISCV V扩展的运作机制 6.RVV使用体验 1.前言
    发表于 10-29 06:21

    Vector向量指令集简介(一)

    RV32V将数据寄存器和长度与向量寄存器关联而不是指令操作码。程序在执行V指令之前会用数据类型和数据宽度来标记向量寄存器,因为每个V指令通常有8个整数版本和三个浮点版本。 这个编码一共5位,低
    发表于 10-23 08:28

    Vector向量指令集简介(三)

    VLEN/8; vstart寄存器可读可写,记录向量指令执行的第一个元素的索引。 Vxrm寄存器:矢量定点摄入模式寄存器,它的最低有效位[1:0]中保存一个两位读写舍入模式的字段。高位则都置为0
    发表于 10-23 06:23

    Vector向量指令集简介(二)

    上次我们讲vtype讲到一般,今天把剩下的部分给讲完。 Vma和vta表示的是向量尾部不可知与向量掩码不可知的设置位。 这两个位的值,都是在设置为0的时候表示未受干扰,设置为1的时候表示
    发表于 10-23 06:05

    Vector向量指令集简介(四)

    不同eew(有效元素位宽)的向量,在使用时具体区别如vle8或者vle32这样指定。 Vm在之前说过,是掩码。 Nf表示指令单次操作的向量个数。 Lumop/sumop所代表的是不同的寻址模式
    发表于 10-22 06:06

    使用MATLAB的支持向量机解决方案

    支持向量机 (SVM) 是一种有监督机器学习算法,它能找到分离两个类的数据点的最佳超平面。
    的头像 发表于 10-21 15:00 863次阅读
    使用MATLAB的支持<b class='flag-5'>向量</b>机解决方案

    RISC-V V扩展的指令代码

    执行指令,可以更加灵活地进行程序控制,提高了程序的可编程性和可扩展性。 2.指令代码格式 VADD 指令 vadd.vv v1, v2, v3 这条指令将向量寄存器v2和v3中的对应元素相加,结果存储
    发表于 10-21 13:11

    基于蜂鸟E203架构的指令集K扩展

    扩展指令集架构(RISC-V ISA)的K扩展。 K扩展是一种可选的指令集扩展,它增加了一些向量和矩阵操作的指令。这些指令可以利用硬件并行性
    发表于 10-21 09:38

    在中断向量表中,数字较小的中断向量能否以 larg 中断中断向量

    在中断向量表中,数字较小的中断向量能否以 larg 中断中断向量
    发表于 08-21 08:17

    milvus向量数据库的主要特性和应用场景

    Milvus 是一个开源的向量数据库,专门为处理和分析大规模向量数据而设计。它适用于需要高效存储、检索和管理向量数据的应用场景,如机器学习、人工智能、计算机视觉和自然语言处理等。
    的头像 发表于 07-04 11:36 1302次阅读
    milvus<b class='flag-5'>向量</b>数据库的主要特性和应用场景

    RISC-V架构下的编译器自动向量

    进迭时空专注于研发基于RISC-V的高性能新AICPU,对于充分发挥CPU核的性能而言,编译器是不可或缺的一环,而在AI时代,毫无疑问向量算力将发挥越来越重要的作用。进迭时空非常重视RISC-V
    的头像 发表于 06-06 16:59 1557次阅读
    RISC-V架构下的编译器自动<b class='flag-5'>向量</b>化