Google Cloud 为 Memorystore 的 Valkey 和 Redis 集群添加可扩展的向量搜索功能

Google Cloud推出Memorystore for Valkey和Redis Cluster的可扩展向量搜索功能

Google Cloud最近为其Memorystore for Valkey和Redis Cluster引入了可扩展的向量搜索功能,使开发者能够在数十亿个向量上执行超低延迟的向量搜索。这一更新对于依赖生成式AI的应用(如检索增强生成(RAG)、推荐系统和语义搜索)尤其有益。

关键功能与优势

  1. 可扩展性

    • 通过将向量索引分区到集群中的各个节点,每个节点包含与其键空间部分对应的索引分区,使得集群能够处理数十亿个向量,同时保持单数毫秒的延迟和超过99%的召回率。
    • 开发者可以将集群扩展到250个分片,在单个实例中存储数十亿个向量,这对于需要在大规模数据集上执行语义搜索的企业应用至关重要。
  2. 混合查询支持

    • 新增的混合查询功能允许开发者将向量搜索与数字和标签字段的过滤器结合使用,从而根据特定条件优化搜索结果。
    • 例如,在线服装零售商可以使用混合搜索来推荐相似商品,同时根据服装类型和价格范围过滤结果。
  3. 索引构建与搜索性能优化

    • 随着节点增加,索引构建时间线性加速。
    • 搜索性能在HNSW(分层可导航小世界)搜索中对数优化,在暴力搜索中线性优化。

实现示例

开发者可以通过以下SQL语句创建新的向量索引,并添加用于过滤的字段:

FT.CREATE inventory_index SCHEMA embedding VECTOR HNSW 6 DIM 128 TYPE FLOAT32 DISTANCE_METRIC L2 clothing_type TAG clothing_price_usd NUMERIC

该语句创建了一个名为inventory_index的索引,包含用于语义嵌入的向量字段embedding,用于服装类型的标签字段clothing_type,以及用于价格的数字字段clothing_price_usd

执行混合查询的示例:

FT.SEARCH inventory_index “(@clothing_type:{dress} @clothing_price_usd:[100-200])=>[KNN 10 @embedding $query_vector]“ PARAMS 2 query_vector “...” DIALECT 2

该查询检索了10个结果,过滤条件为服装类型“dress”和价格范围100-200,并结合了向量相似性搜索。

社区反馈与建议

部分社区成员对采用Redis的向量搜索功能表示谨慎,建议如果组织尚未部署该技术,应继续使用现有的数据持久化和查询技术。例如,Reddit用户marr75指出,Redis的向量搜索功能虽然不错,但并非业界最佳或最先进的技术。

Google Cloud的开源贡献

Google Cloud还将其向量搜索功能贡献给Valkey键值数据存储的开源社区,旨在使Valkey开发者能够利用向量搜索创建先进的生成式AI应用。

行业应用

快速且精确的向量搜索在电子商务等行业中尤为重要,理解客户偏好并提供定制化推荐可以带来显著的业务优势。

专家观点

SanjMo的首席分析师Sanjeev Mohan表示,Valkey对于推进社区主导的、功能丰富的开源数据库替代方案非常重要。Google Cloud对Valkey的支持不仅为开发者提供了灵活性,还加强了更广泛的开源生态系统。

总结

Google Cloud通过引入可扩展的向量搜索功能和混合查询支持,显著提升了Memorystore for Valkey和Redis Cluster的性能和灵活性。这一更新不仅适用于生成式AI应用,还在电子商务等领域具有广泛的应用前景。同时,Google Cloud的开源贡献进一步推动了社区驱动的技术发展。

阅读 50
0 条评论