如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

Redis 8 为向量相似性推出新的数据结构

  • 2025-05-13
    北京
  • 本文字数:1103 字

    阅读完需:约 4 分钟

大小:541.73K时长:03:04
Redis 8为向量相似性推出新的数据结构

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/

2025-05-13 14:004881

评论

发布
暂无评论

react源码解析16.concurrent模式

buchila11

React

PassJava 开源(五) :SpringCloud Alibaba 组件简介 #私藏项目实操分享#

悟空聊架构

SpringCloud 28天写作 passjava 悟空聊架构 12月日更

腾讯云商用密码合规解决方案,亮相2021商用密码应用创新高端研讨会

腾讯安全云鼎实验室

商用密码 云上安全 数字生态 安全服务

DM 分库分表 DDL “乐观协调” 模式介绍丨TiDB 工具分享

PingCAP

图解带你掌握`JVM`运行时核心内存区

华为云开发者联盟

Java JVM 内存 堆内存

TCP 两次握手为什么无法阻止历史连接?

华为云开发者联盟

TCP 报文 握手 RST 报文 两次握手

前端开发之JS中编写For循环的方法

@零度

JavaScript 前端开发

如何用建木CI生成Allure报表

Jianmu

CI/CD Allure 国产开源

服务器数量从21台降至3台,TDengine在跨越速运集团的落地实践

TDengine

数据库 tdengine 时序数据库

“数”驰天下,华为云DRS 高效支撑T3出行平稳迁移

华为云开发者联盟

数据库 数据迁移 华为云DRS T3出行

如何有效使用预训练语言模型

云智慧AIOps社区

算法 智能运维 云智慧 语言模型 南加州大学

打造“智慧之眼”与“创新之轮”,华睿科技助推制造业智能升级

科技新消息

群聊泄密敲响警钟,WorkPlus织密信息安全“防护网”

BeeWorks

性能监控之 Golang 应用接入 Prometheus 监控

zuozewei

Prometheus 性能测试 性能监控 Go 语言 12月日更

使用 USE 方法分析系统性能瓶颈

耳东@Erdong

监控 28天写作 use 12月日更

从科技出发,中科柏诚信云链为中小企业融资注入新动能

联营汇聚

了解 Java 中的锁 Lock

Ayue、

ReentrantReadWriteLock ReentrantLock lock

Java泛型可行与不可行

编程江湖

Log4j2 消停了,Logback 开始塌房了?

程序猿DD

Java 日志 漏洞

Azkaban工作流调度

恒生LIGHT云社区

工作流 工作流调度 任务调度 Azkaban

小红书基于 StarRocks 构建广告数据中心的实践

StarRocks

数据库 数据分析 StarRocks

给弟弟的信第22封|写技术博客有哪些益处?

大菠萝

28天写作

AI新手语音入门:认识词错率WER与字错率CER

华为云开发者联盟

语音识别 词错率 WER 字错率 CER

Java开发之线程、多线程,线程池面试题

@零度

多线程 线程池 JAVA开发

学习乐器的好处

Tiger

28天写作

react源码解析15.scheduler&Lane

buchila11

React

Flutter 完美的验证码输入框(2 种方法)【Flutter专题25】

坚果

flutter 28天写作 12月日更

Linxu云计算这样学效率更快,Linux基础篇,expect-正则表达式-sed-cut的使用

学神来啦

Linux centos sed linux运维 expect

拿捏SQL数据分析:从基础破冰到面试题解

博文视点Broadview

模块七 王者荣耀商城异地多活架构设计

小朱

架构实战营

Gartner技术成熟曲线详解

Kafka中文社区

Redis 8为向量相似性推出新的数据结构_大数据_Renato Losio_InfoQ精选文章