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 许可

相关推荐
神奇霸王龙30 分钟前
GB/T 46886 闭环屠夫:5 旗舰多模态 LLM 工业质检实测
人工智能·计算机视觉·ai·开源·ai编程·本地部署
三声三视1 小时前
uni-app 鸿蒙端传参变成 [object Object]?顺着源码追到 ArkTS router 底层才搞明白
人工智能·ai·uni-app·aigc·ai编程·harmonyos
计算机魔术师3 小时前
Karpathy:用语音与LLM长谈可提升理解效率
人工智能·ai编程
kyriewen4 小时前
我让AI给前端项目做了一次完整的Code Review——它和人类的差距,比我想的大得多
前端·javascript·ai编程
chaors6 小时前
DeepRearchSystem 0x00:初识
langchain·llm·ai编程
一个有理想的摸鱼选手6 小时前
在三维地球上以另一种视角感受巴威台风
前端·gis·ai编程
谁来拯救笨小孩6 小时前
深入 Cursor 架构:一个 AI 编辑器是如何被「流式」重塑的
ai编程
JavaGuide6 小时前
再见 Superpowers!很多 Skill 真的可以扔掉了。
后端·ai编程
东小西7 小时前
第6篇:《智能调度中心:当我同时塞给AI查订单、查库存、查物流三个工具》
openai·ai编程
月白白8 小时前
AI时代下,历史项目如何共享上下文?
ai编程