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 8为向量相似性推出新的数据结构

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 (向量相似性) 推出新的数据结构的更多相关文章

  1. window下使用Redis Cluster部署Redis集群

    日常的项目很多时候都需要用到缓存.redis算是一个比较好的选择.一般情况下做一个主从就可以满足一些比较小的项目需要.在一些并发量比较大的项目可能就需要用到集群了,redis在Windows下做集群可 ...

  2. 4、解析配置文件 redis.conf、Redis持久化RDB、Redis的主从复制

    1.Units单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 对大小写不敏感 2.INCLUDES包含 和我们的Struts2配置文件类似,可以通过includes包 ...

  3. 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)

    本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redi ...

  4. Redis学习笔记~Redis主从服务器,读写分离

    回到目录 Redis这个Nosql的存储系统一般会被部署到linux系统中,我们可以把它当成是一个数据服务器,对于并发理大时,我们会使用多台服务器充当Redis服务器,这时,各个Redis之间也是分布 ...

  5. redis如何执行redis命令

    Redis 命令 Redis 命令用于在 redis 服务上执行操作.所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cm ...

  6. redis+Keepalived实现Redis主从复制

    redis+Keepalived实现Redis主从复制: 环境:CentOs6.5Master: 10.10.10.203Slave:   10.10.10.204Virtural IP Addres ...

  7. Redis-cluster集群【第一篇】:redis安装及redis数据类型

    Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...

  8. Redis系列-远程连接redis并给redis加锁

    假设两台redis服务器,ip分别为:192.168.1.101和192.168.1.103,如何在101上通过redis-cli访问103上的redis呢?在远程连接103之前,先讲下redis-c ...

  9. Redis配置文件之————redis.conf配置及说明

    基本设置 1. 备释当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写):1k =< 1000 bytes1kb =< 1024 by ...

  10. spring data redis RedisTemplate操作redis相关用法

    http://blog.mkfree.com/posts/515835d1975a30cc561dc35d spring-data-redis API:http://docs.spring.io/sp ...

随机推荐

  1. 海康摄像头SDK在Linux、windows下的兼容问题

    零.前言 最近一直在做人脸识别相关的应用. 主要就是使用海康的摄像头抓拍.录制视频,使用虹软的sdk进行人脸识别,使用jna调用这些sdk. 海康的sdk在使用时遭遇了很多问题,主要问题就是windo ...

  2. EFCore Study(番外1)——单向导航属性

    一.单向导航属性场景 1.比如公司OA系统有很多相关的审批流程,比如离职(Leave).请假(relex).加班,每个流程都有多级审批人,每个审批人都是User 一个人(User)--多个审批流程的多 ...

  3. Mybatis 框架课程第三天

    目录 1 Mybatis连接池与事务深入 1.1 Mybatis的连接池技术 1.1.1 Mybatis连接池的分类 1.1.2 Mybatis中数据源的配置 1.2 Mybatis 的事务控制 1. ...

  4. 【MOOC】华中科技大学计算机组成原理慕课答案-第八章-输入输出系统

    应一个同学后台留言,说让我发就发全,那我干脆把剩的这一章测验也发了吧. 以下解析由GPT生成,不保证可读可解释,仅保证答案正确. 单选 1 (单选(2分)) ‎某中断系统中,每抽取一个输入数据就要中断 ...

  5. 原生JS表格数据常用总结

    主要是在数据报表这块, 做了好几年发现, 其实用户最终想要看的并不是酷炫的BI大屏, 而是最基础也是最复杂的 中国式报表. 更多就是倾向于从表格中去获取数据信息, 最简单的就是最好的, 于是还是来总结 ...

  6. MySQL中create_time 和 update_time实现自动更新时间

    也是最近在捣鼓前后端分离项目, 在写后端接口的时候便设计到数据库表建设, 这里规范显得很重要. 通常的建表规范, 必备三字段:id,create_time,update_time. id 必为主键,类 ...

  7. codeup之杨辉三角

    Description 按要求输入如下格式的杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 最多输出10层 Input 输入只包含一个正整数n,表示将 ...

  8. java数组--对象数组的随机赋值及其他

    包含考点: 对象数组的随机赋值 浮点数的指定位数 换用思路进行对象数组的某一属性进行排序 现有Book类,定义如下: private String author; private String ISB ...

  9. CentOS 7.* 安装 python3.8.2 python3.10.2 步骤

    CentOS 7系列 安装 python3.8.2 步骤 1.在python官网下载linux源码包 地址:https://www.python.org/ftp/python/3.8.3/Python ...

  10. springboot 事件监听@EventListener注解用法

    前言 关于@EventListener注解,百度了一下,网上的教程很多都是继承这个,实现那个的,其实根本用不着这么麻烦,所以就写了此文,如文章所讲有误,还请谅解 更多详细用法请百度一下~ 作用 关于事 ...