摘要
面对生成式 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百分位延迟(秒)| 索引时间(秒)

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