虹科干货 | 不是吧,Redis Enterprise也能当向量数据库来用?

news2024/11/24 13:43:17

什么是向量相似性搜索啊?

例如,你需要搜索一棵发财树的图片,如果用传统数据库来检索,你大概率会在茫茫树丛中错失心仪的发财树。但是,向量相似性搜索能用向量来表示所有树的特征,这样就能够通过计算向量之间的距离来判断树的相似度,美美发财啦!

听说Redis Enterprise也可以作为向量数据库来使用了?

是的!Redis VSS!可以存储向量、为它们建立索引并执行向量相似性搜索哦~

一、什么是向量数据库(vector database)?
向量数据库(vector database)是一种以向量或数据点的数学表示形式存储数据的数据库类型。 受益于自然语言处理和计算机视觉方面的进展,人工智能和机器学习使这种将非结构化数据转化为数字表示(向量)的方式成为可能,其能捕捉到数据的意义和背景。

向量相似性搜索(Vector Similarity Search, VSS),简称VSS,它是向量数据库的一个关键特征,是在向量数据库中寻找与给定查询向量相似的数据点的过程。 VSS 是一种高级搜索方法,用于衡量不同数据之间的相似性,虽然它适用于结构化数据,但在比较非结构化数据(例如图像、音频或长文本)的相似性时,VSS表现一样出色。常见的VSS用例包括推荐系统、图像和视频搜索、自然语言处理和异常情况检测等。例如,如果你建立一个推荐系统,你可以使用VSS来寻找(并推荐)与用户历史感兴趣产品相似的产品。

二、如何从图像或文本生成向量?
这正是 AI/ML 发挥作用的地方。
预训练机器学习模型的广泛应用使得将几乎任何类型的非结构化数据(图像、音频、长文本)转换为向量嵌入变得简单。例如,自然语言理解领域(Natural Language Understanding, NLU)的初创公司Hugging Face公开了数百个最先进的模型,用户可以免费访问,这些模型将原始文本数据转换为对应的向量表示。

在Hugging Face将原始文本数据转换为对应的向量表示
在Hugging Face将原始文本数据转换为对应的向量表示

这些模型的巧妙之处在于,只有当两个句子的含义在语义上相似时,为两个句子生成的嵌入才会彼此 “接近”。

二维向量空间中向量嵌入的简化表示二维向量空间中向量嵌入的简化表示

在上图中,您可以了解句子的嵌入是如何表现出相关性的。如果您查看用与“手机”相关的句子生成的嵌入,您会注意到它们彼此“接近”(参见上图的左上部分)。更重要的是,这两个嵌入都明显远离用与“食品补充剂”产品相关的句子生成的嵌入(上图的右下部分)。嵌入之间的“距离”代表了它们的语义相似性,甚至有模型可以捕捉多种语言句子的语义相似性。

在计算机视觉领域,也有一个类似的东西:Torchvision,一个用于计算机视觉领域的 PyTorch 库,提供了许多预训练模型,可用于为给定图像生成向量表示。与 Hugging Face 模型类似,只有当图像在视觉上相似时,Torchvision 为两幅图像生成的嵌入才会彼此接近。
开发人员可以在他们的应用程序中使用这些免费提供的模型。

生成向量表示或嵌入只是第一步。您需要一个数据库来存储向量、为它们建立索引并执行向量相似性搜索。

三、使用Redis Enterprise作为向量数据库
向量相似性搜索的核心是存储、索引和查询向量数据的能力。这些是向量数据库所需的基本功能。
Redis Enterprise的 VSS 功能RediSearch 模块的一个新功能。它允许开发人员像在 Redis Hash中存储任何其他字段一样轻松地存储向量。它提供高级索引和搜索功能,使得在大型向量空间中可以进行低延迟搜索,通常涵盖分布在多台机器上的数万到数亿个向量。

Redis Enterprise中的向量相似性检索过程

Redis Enterprise中的向量相似性检索过程

Redis Enterprise的向量搜索功能

  • 实时搜索性能

搜索和推荐系统必须运行得非常快,无论数据集合是分布在多个数据库节点上的数万个还是数亿个对象,Redis Enterprise 中的 VSS 功能可以保证低延迟搜索。

  • 内置容错和弹性

为确保您的搜索应用程序永远不会停机,Redis Enterprise 使用无共享集群架构。它有应对各级别故障或灾难的的容灾能力,包括针对进程级别、单个节点和跨基础设施可用性区域的自动故障转移。为确保您的非结构化数据和向量永远不会丢失,Redis Enterprise 包括可调的持久化和灾难恢复机制。

  • 降低架构和应用程序的复杂性

您的组织很可能已经在缓存方面受益于Redis Enterprise。与其启动另一个昂贵的单点解决方案,不如扩展您的数据库以在您的应用程序中利用 VSS。开发人员可以像在Redis Hash或JSON 对象中存储任何其他字段一样轻松地存储向量。

  • 跨云和地域的灵活性

选择您的数据库应该运行在哪里。Redis Enterprise可以部署在任何地方,任何云平台、本地或多云或混合云架构都可以。

四、Redis VSS的用例

  • 推荐系统

Redis Enterprise 帮助推荐引擎以低延迟向用户提供及时、相关的推荐。它可以帮助他们找到与其偏好一致的产品。

  • 文献检索

Redis Enterprise 使用自然语言和语义搜索,可以更轻松地从大量文档中发现和检索信息。

  • AI问答

Redis Enterprise利用语义搜索和生成 AI 工作流,帮助问答系统利用来自OpenAI和Cohere的流行模型在知识库中发现和检索信息。

五、Redis VSS的特征

  • 向量索引算法

Redis Enterprise 使用索引数据结构来管理向量,以实现搜索速度和搜索质量的平衡,达到智能相似性搜索的效果。根据您的数据和用例,有两种流行的技术可选:FLAT(一种蛮力方法)和HNSW (一种更快的近似方法)。

  • 向量搜索距离指标

Redis Enterprise 使用距离指标来衡量两个向量之间的相似性。有三个流行的用于计算两个向量“接近”或“相距”的程度,距离指标可供选择——欧几里得距离、向量内积和余弦相似度——。

  • 强大的混合过滤

充分利用 Redis Enterprise 查询和搜索模块中提供的全套搜索功能。通过将向量相似度的强大功能与更传统的数字、文本和标签过滤器相结合来增强您的工作流程,将更多业务逻辑合并到查询中并简化客户端应用程序代码。

  • 实时更新

实时搜索和推荐系统会生成大量不断变化的数据,如新图像、文本、产品或元数据。随着数据集的不断变化,Redis Enterprise可以无缝地对搜索索引执行更新、插入和删除操作,这减小了过时数据带来的影响。

  • 向量范围查询

传统的向量搜索是通过找到“前K个”最相似的向量来完成向量搜索的。,除此之外,Redis Enterprise 还支持在预定义的相似性范围或阈值内查找相关内容,并提供更灵活的搜索体验。

六、客户评价
“有了 Redis VSS,我们可以为客户提供可靠且速度极快的向量搜索服务。与我们最初基于 Lucene 的实现相比,我们发现延迟减少了 80%。与这个值得信赖的品牌和团队合作,因此我们使用Redis Enterprise的过程不那么困难了,我们感到很开心。”
——Jacky Koh,CEO, Relevance AI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1068571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

漏刻有时数据可视化大屏引导页设计2(偏移卡片、动态数字翻牌、countUp.min.js)

引入外部文件 <title>漏刻有时引导页</title><script src="js/jquery-3.3.1.min.js"></script><script src="js/countUp.min.js"></script><link rel="stylesheet" href="css/common.css">…

怎么查看电脑配置?只需三招,让你轻松get!

电脑配置对于了解计算机的性能和功能至关重要。无论是为了升级硬件、解决问题还是购买新电脑&#xff0c;查看电脑配置都是必不可少的。那你知道怎么查看电脑配置吗&#xff1f;本文将介绍3种查看电脑配置的方法&#xff0c;从而让您轻松获取所需信息。 方法1&#xff1a;使用W…

ARM汇编学习录 1 -基础概念

指令集概述 现阶段有四个不同的指令集 名称概述ARM3232位指令集Thumb16位指令集,ARM32子集,提供高密度低功耗Thumb232位指令集,ARMv6T2 引入.是thumb超集ARM6464位指令集 note&#xff1a; ARM某一个时刻只能运行单独ARM指令集或者Thumb指令,通过CPSR的T标志位决定. 如何当前…

论文笔记 A theory of learning from different domains

domain adaptation 领域理论方向的重要论文. 这篇笔记主要是推导文章中的定理, 还有分析定理的直观解释. 笔记中的章节号与论文中的保持一致. 1. Introduction domain adaptation 的设定介绍: 有两个域, source domain 与 target domain. source domain: 一组从 source dist.…

mybatis-plus 多数据源配置

1. 双数据库创建 两个数据库各有一张表 2. yml中配置双数据库 下面的配置来源于mybatis-plus官网 spring:datasource:dynamic:primary: master #设置默认的数据源或者数据源组,默认值即为masterstrict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,fal…

wpf webBrowser控件 常用的函数和内存泄漏问题

介绍 WebBrowsers可以让我们在窗体中进行导航网页。 WebBrowser控件内部使用ie的引擎&#xff0c;因此使用WebBrowser我们必须安装ie浏览器&#xff08;windows默认安装的&#xff09;。 使用 直接在xmal中使用webBrowser控件 <WebBrowser x:Name"WebBrowser1"…

Springboot使用ProcessBuilder创建系统进程执行shell命令备份数据库

文章目录 概要1、查看mysql版本2、相关依赖3、具体代码技术细节 概要 Springboot执行shell命令备份数据库。 1、查看mysql版本 mysql --version2、相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-star…

单位脉冲信号转换直流信号变换器 隔离的频率(脉冲)变送器

主要特性 将单位脉冲信号转换成直流电压或电流信号。 精度等级&#xff1a;0.1 级、0.2 级、0.5 级。产品出厂前已检验校正&#xff0c;用户可以直接使用。 国际标准信号输入: 0-5KHz/0-10KHz/1-5KHz等 0-5V/0-10V/1-5V 等电压信号,0-10mA/0-20mA/4-20mA 等电流信号。 …

下载安装包,platform的含义

安装包platform的含义 每次安装某个软件时&#xff0c;会让你选择platform&#xff0c;遇到 满脸问号❓❓❓❓❓❓❓❓❓❓❓❓ windowLinux x86_64Linux aarch64macOS aarch64macOS aarch64macOS aarch64deb aarch64 其中window大家都很熟悉&#xff0c;wndows系统 安装 选…

java基础之组合和继承

为了避免重复代码太多&#xff0c;导致代码不好维护&#xff0c;大家需要学会如何复用代码&#xff0c;代码复用的两种方式&#xff0c;组合和继承 组合&#xff1a;在新类中创建现有类的对象 has-a 继承&#xff1a;创建现有类的新类 is-a 依赖&#xff1a;uses-a UML关系 继承…

Tailwind CSS浅析与实操

Tailwind CSS 一、Tailwind CSS简介 What is Tailwind CSS Tailwind CSS| TailwindCSS中文文档 | TailwindCSS中文网官方解释&#xff1a;只需书写 HTML 代码&#xff0c;无需书写 CSS&#xff0c;即可快速构建美观的网站。本质上是一个工具集&#xff0c;包含了大量类似 fle…

nginx动态分离(四)

概述 动静分离把静态文件放入nginx或者说服务器的某个文件夹&#xff0c;这里把文件放入服务器的根目录下/data ,创建一个test目录&#xff0c;这样就直接访问到test目录下的静态文件 [121.4.170.108/test/b.html] demo #user nobody; worker_processes 1;#error_log log…

没有苹果本也可以构建ios版本+生成不同设备效果图——香蕉云编

三年前&#xff0c;我曾经写过uniapp的程序&#xff0c;时隔三年&#xff0c;又遇到了uniapp的需求&#xff0c;之前没有自行申请ios证书&#xff0c;现在终于要自己生成证书了。。。 是福不是祸&#xff0c;是祸躲不过。 uniapp生成ios证书的详细步骤 uniapp对接unipush的操作…

一文搞懂Transformer的边角料知识:位置编码

目录 一、为什么需要位置编码 二、位置编码分类 1.表格型 2.函数型 三、Transformer的位置编码 1.位置编码应有的特点 2.Transformer的位置编码公式 3.三角函数 4.线性相关 5.相对位置关系 四、总结 一、为什么需要位置编码 在Transformer出现以前&#xff0c;NLP任…

白话教你认识 Kafka,秒懂原理

一、Kafka 基础 消息系统的作用 应该大部份小伙伴都清楚&#xff0c;用机油装箱举个例子 所以消息系统就是如上图我们所说的仓库&#xff0c;能在中间过程作为缓存&#xff0c;并且实现解耦合的作用。 引入一个场景&#xff0c;我们知道中国移动&#xff0c;中国联通&#x…

谷歌浏览器从c盘剪切到d盘书签消失的找回方式

目录 1.在以下路径找到这两个文件(Bookmarks和Bookmarks.bak) 2.我们只需要将上述的两个文件Bookmarks和Bookmarks.bak先备份到一个地方&#xff0c;替换文件&#xff1a; 3.重启谷歌浏览器 1.在以下路径找到这两个文件(Bookmarks和Bookmarks.bak) 移动后的新路径\Google\C…

vue自行封装错误提示信息——$message——技能提升

在使用vue的过程中&#xff0c;我们经常用到的是这一种的提示信息&#xff1a; 该组件提供的属性有以下几个&#xff1a; 但是&#xff0c;如果想要自定义提示信息&#xff0c;则可以使用下面的方式来处理&#xff1a; 1.自定义提示信息组件 import Vue from vue export fu…

Linux基本指令二

Linux基本指令二 一、more指令1、语法2、功能3、常用操作 二、less指令1、语法2、功能3、常用选项4、常用操作 三、head指令1、语法2、功能3、常用选项4、示例 四、tail指令1、语法2、功能3、常用选项4、示例 五、date指令1、语法2、功能3、常用的标记4、设置时间5、时间戳6、示…

VxeTable 表格组件推荐

VxeTable 表格组件推荐 https://vxetable.cn 在前端开发中&#xff0c;表格组件是不可或缺的一部分&#xff0c;它们用于展示和管理数据&#xff0c;为用户提供了重要的数据交互功能。VxeTable 是一个优秀的 Vue 表格组件&#xff0c;它提供了丰富的功能和灵活的配置选项&…

linux上negix部署静态页面

1.看配置文件 进入cndf.d 这里的是配置部署项目中的文件 进入一个查看下 上面的是服务的域名&#xff0c;服务是http://test.fun-med.cn/#/&#xff0c;后面加服务名&#xff08;你的前端&#xff09; 2.看下页面位置 和上面的路径要匹配