SciTech-EECS-Redis for AI: Redis 8为 Vector Similarity (向量相似性) 推出新的数据结构
SciTech-EECS-Redis:
VD(Vector Database, 向量数据库):
VD对由 Generative AI (生成式人工智能) 驱动的应用程序至关重要.
VD可以检索"语义有关"的信息,用来丰富 LLM(大语言模型) 及RAG 的上下文。
其他的应用场景还包括:聊天机器人的语义缓存、推荐系统和人脸识别。
Redis 产品经理 Mirko Ortensi 在另一篇文章解释了如何 使用向量集合进行人脸识别。
Ortensi 写道:
人脸识别本质上是基于向量的计算过程。
它使用专门的Embedding (嵌入)模型建模 "已知的人脸图像",并将 "映射后的向量" 存储在 Redis,
然后搜索存储在VD数据库的向量来实现人脸识别。
Redis for AI documentation
An overview of Redis for AI documentation
Redis stores and indexes vector embeddings that,
semantically represent unstructured data including text passages, images, videos, or audio.
Store
vectors and the associated metadata within
hashes or JSON documents for indexing and querying.
Vector | RAG | RedisVL |
---|---|---|
![]() |
![]() |
![]() |
VD(vector database) quick start guide | RAG(Retrieval-Augmented Generation) quick start guide | vector Python client library documentation |
Redis 8 的 Vector Similarity (向量相似性) 新数据结构
来源:Mirco Ortensi
Redis 最近推出Vector Set(向量集合)功能,专为Vector Similarity 设计的数据类型.
也是 Redis 针对人工智能应用的一个新的选项。
这是 Redis 创始人 Salvatore Sanfilippo(“antirez”)重新加入Redis的第一个重大贡献。
Vector Set(向量集合) 是一种类似于Sorted Set(有序集合)的数据类型,
不同的是它将String(字符串元素)与 Vector(向量, 不是scalar)关联起来,
- 可以添加item(项目)
- 检索与给定vector(向量)最相似的子集。
- 还支持过滤搜索功能,
- 允许同时进行 向量相似性检索 和 标量过滤。
Sanfilippo 在他的博客中解释道:
Redis 新数据结构, 提供高性能解决方案的同时保持极简的复杂性:
- 新数据结构的目标:
创建一种类似于有序集合的“集合类”数据类型,但value是一个vector(向量)而不是scalar(标量)。 - 新数据结构的用法:
同使用 Redis 的大多数数据结构类似,- 可添加和删除元素, 无需担心其他问题. 聚焦 Redis 抽象数据结构的特性即可。
- 可以查询与给定向量(或集合中已有的某个元素的向量)相似的元素等。
- 新数据结构的实现:
向量集合基于 hnsw.c 的 HNSW 数据结构实现,及 速度和特性方面的扩展。
Sanfilippo 补充道:
实现 "Vector Similarity (向量相似性)搜索" :
- 新实现 HNSW(hnsw.c), 因为这是核心数据结构。
- 专注于高性能修改 HNSW,
- 为所有请求(Vector Similarity 搜索)引入多线程特性;
- 支持 8 位和二进制量化
他强调了他的实现与其他数据结构的主要区别:
向量集合最有趣的部分是数据模型和相关的 API。
- Redis 的"Vector Similarity (向量相似性)"是"数据结构":这次也不例外。
而许多数据库将"Vector Similarity (向量相似性)"作为一种Index(索引), - Redis 并不是唯一实现Vector Set(向量集合)的:
LangCache 是专门为"人工智能应用和智能体" 设计的 "语义缓存服务",
旨在通过缓存它们的响应来减少调用LLM(大语言模型)的比率。
Vector Set(向量集合)功能随 Redis 8 RC1 发布,目前处于预览阶段,许可协议为 RSALv2 或 SSPLv1。
SciTech-EECS-Redis for AI: Redis 8为 Vector Similarity (向量相似性) 推出新的数据结构的更多相关文章
- window下使用Redis Cluster部署Redis集群
日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...
- 4、解析配置文件 redis.conf、Redis持久化RDB、Redis的主从复制
1.Units单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 对大小写不敏感 2.INCLUDES包含 和我们的Struts2配置文件类似,可以通过includes包 ...
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redi ...
- Redis学习笔记~Redis主从服务器,读写分离
回到目录 Redis这个Nosql的存储系统一般会被部署到linux系统中,我们可以把它当成是一个数据服务器,对于并发理大时,我们会使用多台服务器充当Redis服务器,这时,各个Redis之间也是分布 ...
- redis如何执行redis命令
Redis 命令 Redis 命令用于在 redis 服务上执行操作.所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cm ...
- redis+Keepalived实现Redis主从复制
redis+Keepalived实现Redis主从复制: 环境:CentOs6.5Master: 10.10.10.203Slave: 10.10.10.204Virtural IP Addres ...
- Redis-cluster集群【第一篇】:redis安装及redis数据类型
Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...
- Redis系列-远程连接redis并给redis加锁
假设两台redis服务器,ip分别为:192.168.1.101和192.168.1.103,如何在101上通过redis-cli访问103上的redis呢?在远程连接103之前,先讲下redis-c ...
- Redis配置文件之————redis.conf配置及说明
基本设置 1. 备释当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写):1k =< 1000 bytes1kb =< 1024 by ...
- spring data redis RedisTemplate操作redis相关用法
http://blog.mkfree.com/posts/515835d1975a30cc561dc35d spring-data-redis API:http://docs.spring.io/sp ...
随机推荐
- python_pyinstall打包exe后文件找不到(路径不对),包括配置文件找不到,excel文件找不到等等
运行路劲和当前文件真实路径不是一个!! 解决 real_dir = os.path.dirname(os.path.realpath(sys.executable))
- 安装MVN出现 Error: JAVA_HOME is set to an invalid directory.的解决方法
出现 Error: JAVA_HOME is set to an invalid directory.的解决方法 解决: 将JAVA_HOME = "D:/Java/jdk1.6.0_12/ ...
- Servlet创建的三种方式
目录 1 实现Servlet接口 2 继承GenericServlet 3 继承HttpServlet 4 web.xml配置 关于servlet的创建,我们有三种方式. 实现Servlet接口 继承 ...
- 成语答题小程序v3.0
自从开源成语答题小程序以来不断完善功能,并且不断修复bug,成语答题小程序v3版本完善了很多功能 1.增加了原生模板广告,设置原生模板广告后可以设置首页或答题页是否显示原生模板广告 2.增加了背景设置 ...
- 【记录】PR|一些使用技巧记录
文章目录 [PR最重要的两个操作] 一.关键帧 1. 如何设置关键帧? 2. 应用实例 1)1s内视频从明变暗 2)1s内视频画面由大到小 二.入点.出点 [其他] PR批量调整视频效果 PR剪视频片 ...
- 【HUST】网安|编译原理实验|实验四攻略
[实验代码及报告地址:Gitee传送门](已关闭传送大门,原因是抄袭过多,如需参考,请直接看博客,虽然下一届内容会变了) 不擅长写报告昂,很多地方能省全省了. 助力来年编译原理加大难度!(hhh) M ...
- html_py
Sock.py import socket def handle_request(client): buf=client.recv(1024) client.send(bytes(&q ...
- 如何用IDEA 生成JavaDoc新版
用IDEA生成JavaDoc 左上角四横杠点击,唤出工具栏(快捷键 alt+\) 左键单击工具选项 下拉框选 生成Javadoc 在弹出框选好参数立刻导出啦 1.JavaDoc 作用域: 选要导出的文 ...
- C#中的弱引用
弱引用保持的是一个GC"不可见"的引用,是指弱引用不会增加对象的引用计数,也不会阻止垃圾回收器对该对象进行回收.因此,弱引用的目标对象可以被垃圾回收器回收,而弱引用本身不会对垃圾回 ...
- 一个基于 C# 编写的事件驱动、具备专业水准的算法交易平台(量化交易引擎)
前言 今天大姚给大家分享一个基于 C# 编写的事件驱动.采用模块化设计.具备专业水准的算法交易平台(量化交易引擎):Lean. 项目介绍 Lean 是由 QuantConnect 提供的一个基于 C# ...