Redis 最近推出向量集合(Vector Set) 功能,这是一种专为向量相似性设计的数据类型,也是 Redis 针对人工智能应用的一个新的选项。这是 Redis 创始人 Salvatore Sanfilippo(“antirez”)自 重新加入 公司以来的第一个重大贡献。
向量集合 是一种类似于有序集合(Sorted Set)的数据类型,不一样的是它将字符串元素与向量(而不是分数)关联起来,可以添加项目并检索与指定向量最相似的子集。它还支持过滤搜索功能,允许同时进行向量相似性和标量过滤。Sanfilippo 在他的博客中解释道:
简单来说,这个新的数据结构的目标是创建一种类似于有序集合的“集合类”数据类型,但分数是一个向量而不是标量。你可以像使用普通 Redis 数据结构一样添加和删除元素,无需担心其他问题,只需关注 Redis 抽象数据结构本身的特性即可。你可以查询与给定向量(或集合中已有的某个元素的向量)相似的元素,等等。
向量集合基于 hnsw.c 的 HNSW 数据结构实现,并进行了速度和特性方面的扩展。Redis 首席执行官 Rowan Trollope 称赞了 Sanfilippo 所做的贡献:
他的专业知识催生了一个简单直观的 API,这体现了 Redis 提供高性能解决方案的理念,同时保持了极简的复杂性。
向量数据库对于由生成式人工智能驱动的应用程序来说至关重要,它们可以检索语义相关的信息,用来丰富大语言模型(RAG)的上下文。其他的应用场景还包括:聊天机器人的语义缓存、推荐系统和人脸识别。Redis 产品经理 Mirko Ortensi 在另一篇文章中解释了如何 使用向量集合进行人脸识别。Ortensi 写道:
人脸识别本质上是基于向量的计算过程。它使用专门的嵌入模型对已知的人脸图像进行建模,并将映射后的向量存储在 Redis 中,然后通过搜索在数据库中存储的向量来实现人脸识别。
来源:Mirco Ortensi
Sanfilippo 补充道:
实现向量相似性搜索的基本要求是从头开始重新实现 HNSW(你可以在 hnsw.c 中看到我的实现),因为这将成为核心数据结构,我不想从 GitHub 上抓取一些随机代码来应付了事。
专注于高性能,Sanfilippo 不仅对 HNSW 进行了修改,还为所有向量相似性搜索请求引入了多线程特性,并支持 8 位和二进制量化。他强调了他的实现与其他数据结构的主要区别:
向量集合最有趣的部分是数据模型和相关的 API。许多数据库将向量相似性作为一种索引,但 Redis 不一样,Redis 里的东西是数据结构:这次也不例外。
向量集合并不是 Redis 唯一的新特性:LangCache 是一个专门为人工智能应用和智能体设计的语义缓存服务,旨在通过缓存它们的响应来减少对大语言模型的调用。
向量集合功能随 Redis 8 RC1 发布,目前处于预览阶段,许可协议为 RSALv2 或 SSPLv1。
查看英文原文:
https://www.infoq.com/news/2025/04/redis-vector-sets/
文章来自于“InfoQ”,作者“Renato Losio”。
【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。
项目地址:https://github.com/browser-use/browser-use
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI