Redis 8 为 AI 应用推出新型数据类型,用于向量相似性

Redis 最近宣布了 向量集的添加,这是一种用于向量相似性和新 AI 应用选项的数据类型。这种新的数据类型标志着 Redis 的创建者 Salvatore Sanfilippo(又称'antirez')自 重新加入公司以来的第一个重大贡献。

摘要

Redis 8 版本引入了名为向量集的新数据类型,旨在优化 AI 应用中的向量相似性搜索。向量集与有序集合类似,但它使用向量代替分数来关联字符串元素,支持根据指定的向量查找相似的条目子集,并支持过滤搜索。该功能由 Redis 创始人 Salvatore Sanfilippo 主导开发。它基于 HNSW 算法,并进行了多线程优化。向量集适用于多种 AI 场景,如 RAG、语义缓存、推荐系统和人脸识别。此外,Redis 还推出了 LangCache,用于减少 LLM 的调用延迟和成本。向量集在 Redis 8 RC1 中以预览版提供,采用 RSALv2 或 SSPLv1 许可。

主要内容

    1. 向量集是 Redis 8 中的新型数据结构,它使用向量代替分数,优化了 AI 应用中的向量相似性搜索。

    向量集通过基于向量的相似性搜索,为 AI 应用提供高效的数据检索能力,降低了开发复杂性。

    1. 向量集基于 HNSW 算法,并进行了多线程优化。

    通过对 HNSW 算法的优化和多线程技术的应用,向量集实现了高性能的向量相似性搜索能力。

    1. Redis 还推出了 LangCache,用于减少 LLM 的调用延迟和成本。

    LangCache 通过缓存 LLM 的响应,降低了 AI 应用的延迟和成本,提升了整体性能和效率。

向量集是一种新的数据类型,类似于 Sorted Sets,但其元素与向量而不是分数相关联,使得可以添加项目并检索与指定向量最相似的项目子集。还支持过滤搜索功能,允许同时进行向量相似性和标量过滤。Sanfilippo 在他的博客中解释

新数据结构的目标简而言之,是创建一种新的"类似集合"的数据类型,类似于 Sorted Sets,其中不再是具有标量作为分数,而是具有向量,并且可以以 Redis 的方式添加和删除元素,无需关心任何其他内容,只需关心 Redis 实现的数据结构的属性,请求与给定查询向量(或集合中某些元素关联的向量)相似的元素,等等。

向量集基于 hnsw.c 实现的 HNSW 数据结构,具有加速和功能扩展。Redis 的 CEO Rowan Trollope 对 Sanfilippo 的贡献表示赞赏:

他的专业知识导致创建了一个既简单又直观的 API,这体现了 Redis 以提供高性能解决方案同时保持简单性的理念。

向量数据库对于由 GenAI 支撑的应用程序至关重要,用于检索语义相关的信息以丰富 LLMs(RAG)的上下文。其他用例包括聊天机器人的语义缓存、推荐系统和人脸识别。Redis 的产品经理 Mirko Ortensi 在另一篇文章中解释了如何 使用向量集进行人脸识别。Ortensi 写道:

人脸识别的关键在于向量。它涉及使用专门的嵌入模型对已知人脸进行建模,存储在 Redis 中,并通过在数据库中存储的向量上运行向量搜索来进行人脸识别。

来源: 米可·奥尔森蒂

Sanfilippo 补充说:

我决定实现向量相似性的基本要求之一是对 HNSWs 进行从头开始的重新实现(您可以在 hnsw.c 中看到我的实现),因为这将是我的核心数据结构,我不想从 GitHub 上随便找一些代码并满意于它。

以高性能为重点,Sanfilippo 不仅对 HNSW 进行了修改,还为所有向量相似性请求引入了多线程,并支持 8 位和二进制量化。他强调了自己实现的主要区别在于:

向量集最有趣的部分是其数据模型和 API。许多数据库将向量相似性作为一种索引提出,但这是 Redis,Redis 中的东西都是数据结构:这次也不例外。

向量集并不是 Redis 的新功能唯一一项:LangCache,一个为 AI 应用程序和代理设计的语义缓存服务,旨在通过缓存其响应来减少成本高昂且延迟的LLMs调用。

向量集在预览版中可用,可在 Redis 8 RC1 下使用 RSALv2 或 SSPLv1 许可

相关推荐
全栈技术负责人2 天前
cursor对话关键词技巧
ai编程
佩奇的技术笔记3 天前
AI编程: 使用Trae1小时做成的音视频工具,提取音频并识别文本
音视频·ai编程
CoderJia程序员甲3 天前
AI 入门资源:微软 AI-For-Beginners 项目指南
人工智能·microsoft·ai·ai编程
zhz52144 天前
开源数字人框架 AWESOME-DIGITAL-HUMAN 技术解析与应用指南
人工智能·ai·机器人·开源·ai编程·ai数字人·智能体
左岸小鱼4 天前
trae ai编程工具
ai编程
满怀10155 天前
【LangChain全栈开发指南】从LLM集成到智能体系统构建
人工智能·python·langchain·ai编程·智能体开发
AI掘金5 天前
DeepSeek实战--手搓实现Agent
ai·ai编程·ai agent·deepseek
一起喝芬达20105 天前
cursor平替,试试 vscode+cline+openrouter 的方案,还能自定义 mcp-server 教程大纲
ide·ai·ai编程
猫头虎6 天前
极简远程革命:节点小宝 — 无公网IP的极速内网穿透远程解决方案
网络·网络协议·tcp/ip·ai编程·远程工作·内网·穿透
Lilith的AI学习日记6 天前
纳米AI搜索体验:MCP工具的实际应用测试,撰写报告 / 爬虫小红书效果惊艳
人工智能·测试工具·aigc·ai编程