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. vue属性/子属性监听watch的几种方法

    特殊字符法 特殊字符+deep法 直接deep法 常规法 直接用如下代码示例吧: data(){ return { goBackHeader:'添加排班', scheduleForm:{ schedu ...

  2. AspNetCore 请求产生 FreeSql 所有操作 SQL 日志输出到前端

    第一步:定义注入类型 public class CurdAfterLog : IDisposable { public static AsyncLocal<CurdAfterLog> Cu ...

  3. 通过PHP实现获取访问用户IP

    在php中自带了一个非常的简单的获取IP地址的全局变量,很多初学都获取IP都使用它了,但是对于这些我们一般用法是满足了,但是对于要求高精度这个函数还是不行的. 这个是最简单的方法,对于开了透明代理之类 ...

  4. Java线程控制: sleep、yield、join深度解析

    结论先行 sleep:主动让出CPU但保持锁,适合控制执行节奏和优化CPU占用 yield:建议让出CPU但无强制力,适用场景有限且效果不稳定 join:通过等待机制实现线程顺序控制,底层基于wait ...

  5. TypeScript+Vue3

    TypeScript Any 类型 和 unknown 顶级类型 1.没有强制限定哪种类型,随时切换类型都可以 我们可以对 any 进行任何操作,不需要检查类型 2.声明变量的时候没有指定任意类型默认 ...

  6. xl2411p 显示器分辨率问题 IPS\TN

    本来是想玩游戏来着,后来也没能玩起: 留下了个显示器明基xl2411p,昨天扒出来用起来吧. 玩游戏没毛病的,毕竟都是图片不存在文字的渲染问题,日常办公用起来就难受了,TN屏真是难受的了. 本来24寸 ...

  7. 【工具】VScode|Linux下 VScode 调试 Python 项目、模块、包的方法

    使用过 Anaconda.Jupyter.Pycharm.VScode.VS2022.pdb 这几个 IDE 去编写 python 项目或者维护 python 环境,各有各的优缺点,但 VScode ...

  8. 【记录】OJ|区间DP|石子合并(环形)

    1. 题干 描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出一个算法,计算出将N堆石子 ...

  9. 反悔贪心&局部调整法学习笔记

    一.什么是反悔贪心 反悔贪心就是在普通贪心的过程中"反悔",从而使得一些看似不太好贪心的题变成贪心可做题. 二.反悔贪心普遍流程 就是先使用一个好想的贪心策略,使用优先队列进行维护 ...

  10. MongoDB从入门到实战之Windows快速安装MongoDB

    前言 本章节的主要内容是在 Windows 系统下快速安装 MongoDB 并使用 Navicat 工具快速连接. MongoDB从入门到实战之MongoDB简介 MongoDB从入门到实战之Mong ...