当前位置: 首页 > news >正文

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?

Elasticsearch 从 7.3 版本开始支持向量搜索。从 8.0 开始支持带有 HNSW 的 ANN 向量搜索。目前 Elasticsearch 已经是全球下载量最多的向量数据库。它允许使用密集向量和向量比较来搜索文档。 矢量搜索在人工智能和机器学习领域有许多重要的应用。 有效存储和检索向量的数据库对于构建生产就绪的 AI/ML 服务至关重要。更多关于 Elastic 向量搜索的信息,可以在地址 What is vector search? Better search with ML | Elastic 找到更多的信息。

向量到底是什么?

简而言之,向量是数据的数值表示。 所有数据(表格、文本、图像、视频、声音等)都可以表示为多维数字数组。

作为向量的表格数据

将数据转换为机器学习算法易于使用的形式是在 ML 管道的数据预处理阶段完成的。 这是管道的早期阶段之一。

表格数据(例如 SQL 数据库中的表)每行包含一个观察值。

表示为向量的表格数据

每列中的数据可大致分为四种类型之一。

  • Nominal:名义数据是指没有任何顺序或定量值的值。 性别就是此类数据的一个例子。
  • Ordinal:序数数据具有自然排序,其中数字按其在刻度上的位置按某种顺序出现,但我们无法对它们执行任何算术任务。 日期字段是序数数据的示例。
  • Discrete:离散数据包含属于整数或整数的值。 班级中的学生总数是离散数据的一个示例。 这些数据不能分解为小数或分数。
  • Continuous:连续数据采用小数形式。 例如,班级学生的身高就是连续数据的一个例子。

机器学习算法不擅长处理名义数据或有序数据。 因此,在将表格数据输入机器学习算法之前,我们通常需要将这些字段转换为数字。 编码是机器学习中将非数字字段转换为数字字段的过程。 对名义字段和序数字段进行编码后,你获得向量数据集。

图像作为矢量

图像可以表示为 3 维数字矩阵(技术上是 Rank-3 Tensor,但现在让我们忽略细节)。 两个维度代表像素的坐标,第三个维度包含三个颜色通道。 矩阵中的数字范围为 0 到 255,代表像素的三基色(红、绿、蓝)的值。 因此,4 x 4 像素的彩色图像可以表示为如下所示的矩阵。

有关如何把图像转换为向量,请参考文章:

  • Elasticsearch:如何在 Elastic 中实现图片相似度搜索

  • Elasticsearch:使用向量搜索来搜索图片及文字

文本作为矢量

文本信息可以转换为一个长的数字向量,其中向量中的位置代表单词,值代表该单词在文本中出现的次数。 这称为文本数据的词袋(bag of words)表示。

These are not the droid you are looking for. No, I am your father.

these:1, are: 2, not: 1, the: 1, droid: 1, you: 1, look: 1, for: 1

no: 1, i: 1, am:1, you: 1, father: 1

文本信息可以转换为一个长的数字向量,其中向量中的位置代表单词,值代表该单词在文本中出现的次数。 这称为文本数据的词袋(bag of words)表示。这种早期形式的矢量化文本会产生稀疏向量(带有太多零的向量)。现在存在更复杂的方法(词嵌入)将文本转换为向量。 这些方法可以生成紧凑、密集的向量,这些向量具有更小的存储大小,并且还以这样的方式对文本的含义进行编码:向量空间中更接近的文本预计在含义上相似。

为什么我们将数据表示为向量?

数据点(data points)在机器学习中被表示为向量,因为它们可以有效地编码和操作信息。 向量提供了一种简洁且结构化的格式来组织数据点,其中每个向量元素对应于特定的特征或属性。 当数据点表示为向量时,机器学习算法可以轻松执行加法、减法和点积等数学运算。 这有利于训练和推理过程中涉及的各种计算,例如计算数据点之间的相似性、估计距离和优化模型。 此外,向量可以使用线性代数和矩阵运算,这构成了许多机器学习技术的基础。 通过利用向量的力量,机器学习算法可以有效地分析复杂的数据集并从中学习,最终获得准确的预测和有价值的见解。

现在我们已经将数据表示为向量,接下来会发生什么?

一旦数据以向量形式表示,通常会被输入到预先训练的机器学习模型中,该模型将这些向量映射到新的向量空间,以便相似对象(文本、图像或数据点)的向量在向量中显得彼此接近。新的向量空间。 这个过程称为嵌入,你猜对了,生成的一组新向量也称为嵌入。

生成向量嵌入的 ML 管道

一旦我们有了一组新的向量(每个向量代表我们的一个数据点),其中与相似数据对应的向量彼此接近,就会发生令人惊奇的事情。

当数据被表示为基于某种相似性概念彼此靠近排列的向量时,查找与给定项目相似的项目就简化为查找与原始项目向量接近的所有项目向量。

那么有什么大不了的呢?

随着向量搜索的发布,你现在可以使用简单的运算符 HNSW 对存储在 Elasticsearch 中的向量执行相似性搜索,而无需设置完全不同的并行基础设施来执行向量搜索。

应用团队立即开始看到以下好处:

  • 简化的应用程序架构和设计
  • 更快的应用程序发布周期
  • 降低基础设施成本
  • 降低维护费用
  • 更快实现价值

能够使用最新的人工智能技术(例如 LLMs 和生成式人工智能)快速增强用户体验的应用程序团队更有可能在竞争中领先。

更多关于如何使用 Elasticsearch 进行向量搜索的知识,请阅读 AI文章专栏。

向量搜索用例

  1. 语义搜索:根据搜索查询的含义和文档内容的含义来搜索文档。 与传统的文本搜索方法相比,语义搜索是一种从数据库或搜索引擎检索信息的更先进的方法。 传统文本搜索依赖于关键字匹配和精确单词匹配,而语义搜索旨在理解用户查询和搜索内容背后的上下文、意图和含义。请参阅文章 “Elasticsearch:如何部署 NLP:文本嵌入和向量搜索”。
  2. 反向图像搜索:查找 “看起来像” 给定图像的图像 - 例如 谷歌图片搜索。请参阅文章 “Elasticsearch:如何在 Elastic 中实现图片相似度搜索”。
  3. 推荐引擎:根据以前的视图推荐社交媒体帖子(Instagram 中的 Think Image 推荐、Twitter 上的推文推荐、Facebook Feed 或 Youtube 中推荐的故事等)
  4. 抄袭检测:根据文档与数据库中文档的匹配程度来检测抄袭。

相关文章:

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?

Elasticsearch 从 7.3 版本开始支持向量搜索。从 8.0 开始支持带有 HNSW 的 ANN 向量搜索。目前 Elasticsearch 已经是全球下载量最多的向量数据库。它允许使用密集向量和向量比较来搜索文档。 矢量搜索在人工智能和机器学习领域有许多重要的应用。 有效存储和检索向量的数据库…...

JOSEF约瑟 剩余电流继电器PFR-5 PFE-W-20 国产化改造ZLR-G81 ZCT-45

系列型号: PFR-003剩余电流继电器 PFR-03剩余电流继电器 PFR-5剩余电流继电器 PFR-W-105互感器 PFR-W-140互感器 PFR-W-20互感器 PFR-W-210互感器 PFR-W-30互感器 PFR-W-35互感器 PFR-W-70互感器 一、用途 PFR剩余电流继电器(以下简称继电器…...

分别用Python和Go实现对文件夹及其子文件夹里的文件进行批量重命名

文章目录 问题阐述上代码结果如何 问题阐述 最近在继续提高自己的go技术时,从网上一些平台获取到了一些学习资料,然后下载到本地后,文件的命名是真的像衣托答辩: 除了上述的文件,还有一mol多神奇的命名,害…...

redis深度历险 千帆竞发 —— 分布式锁

分布式应用进行逻辑处理时经常会遇到并发问题。 比如一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个…...

C#根据中文首字母排序

第一种方式&#xff1a; 这种方式会受制于服务器的区域和语言设置。 1.首先添加一个排序类ChineseNameComparer public class ChineseNameComparer : IComparer<string> {public int Compare(string x, string y){if (x null || y null)return 0;var xFirstChar x.Su…...

仪表基础知识培训

压力传感器:E+H PMX5x/FMX5x 一、安装:安装注意事项: 1、水平安装时仪表的呼吸孔(1)需要向下安装,并远离污染物。 2、请勿用坚硬的物体擦拭或接触膜片。 3、请勿安装在水泵的入口和搅拌叶附近 二、供电、接线、信号、:二线制,仪表输出4-20mA 三、量程:设置最大最小量程…...

无涯教程-JavaScript - PI函数

描述 PI函数返回数字3.14159265358979,数学常数pi,精确到15位数字。 语法 PI ()争论 PI函数语法没有参数。 适用性 Excel 2007,Excel 2010,Excel 2013,Excel 2016 Example JavaScript 中的 PI函数 - 无涯教程网无涯教程网提供描述PI函数返回数字3.14159265358979,数学常…...

前端防抖和节流

前端防抖和节流 概述 防抖&#xff1a; 防止抖动&#xff0c;个人字面理解此处防的不是页面的抖动&#xff0c;而是用户手抖。为了防止用户快速且频繁的触发事件而导致多次执行事件函数&#xff0c;这样的场景有很多&#xff0c;比如监听滚动、鼠标移动事件onmousemove、频繁…...

[pai-diffusion]pai的easynlp的clip模型训练

EasyNLP带你玩转CLIP图文检索 - 知乎作者&#xff1a;熊兮、章捷、岑鸣、临在导读随着自媒体的不断发展&#xff0c;多种模态数据例如图像、文本、语音、视频等不断增长&#xff0c;创造了互联网上丰富多彩的世界。为了准确建模用户的多模态内容&#xff0c;跨模态检索是跨模态…...

期权如何交易?期权如何做模拟交易?

买卖期权的第一步就是要有期权账户&#xff0c;国内的期权品种有商品期权和ETF期权以及股指期权&#xff0c;每种的开户方式和要求都不同&#xff0c;下文为大家介绍期权如何交易&#xff1f;期权如何做模拟交易&#xff1f; 一、期权交易需要开立一个期权账户&#xff0c;可以…...

【新书推荐】大模型赛道如何实现华丽的弯道超车 —— 《分布式统一大数据虚拟文件系统 Alluxio原理、技术与实践》

文章目录 大模型赛道如何实现华丽的弯道超车 —— AI/ML训练赋能解决方案01 具备对海量小文件的频繁数据访问的 I/O 效率02 提高 GPU 利用率&#xff0c;降低成本并提高投资回报率03 支持各种存储系统的原生接口04 支持单云、混合云和多云部署01 通过数据抽象化统一数据孤岛02 …...

Calendar对象获取当前周的bug

项目场景&#xff1a; 双周项目管理&#xff0c;需要获取当前周为一年之中的第几周&#xff0c;原先的代码是用Calendar对象&#xff0c;先用setTime&#xff08;&#xff09;把当前时间传入&#xff0c;再用get&#xff08;3&#xff09;获取一年中的第几周 问题描述 实际发…...

嵌入式环境buildroot的espeak配置与编译

1、在buildroot目录下输入make menuconfig 2、选择Target packages 3、选择Audio and video applications 4、选择espeak、选择alsa via portaudio &#xff08;新版嵌入式linux一般都是用alsa音频驱动&#xff09; 5、配置portaudio 选择Library 6、选择Audio/Sound 7、选择…...

物理机环境搭建-linux部署nginx

1、安装nginx部署所需依赖 yum install -y gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel2、安装nginx包 wget http://nginx.org/download/nginx-1.8.0.tar.gz 如果没有wget可以安装一下 yum install -y wget下载完成后可以在/usr/local/下放置tar包&#xf…...

删除安装Google Chrome浏览器时捆绑安装的Google 文档、表格、幻灯片、Gmail、Google 云端硬盘、YouTube网址链接(Mac)

删除安装Google Chrome浏览器时捆绑安装的Google 文档、表格、幻灯片、Gmail、Google 云端硬盘、YouTube网址链接(Mac) Mac mini操作系统&#xff0c;安装完 Google Chrome 浏览器以后&#xff0c;单击 启动台 桌面左下角的“显示应用程序”&#xff0c;我们发现捆绑安装了 Goo…...

硬件故障诊断:快速定位问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

IP代理与加速器:理解它们的区别与共同点

在网络使用过程中&#xff0c;我们经常会遇到需要提高访问速度或保护隐私的需求。IP代理和加速器都是常见的应对方案&#xff0c;但它们在工作原理和应用场景上存在一些区别。本文将为您深入探讨IP代理和加速器的异同&#xff0c;帮助您更好地理解它们的作用和适用情况&#xf…...

Java中List转字符串的方法

一、使用String.join方法 在Java 8之后&#xff0c;String类增加了一个静态方法join()&#xff0c;可以方便地将列表中的元素连接成字符串。 // 创建List List<String> list Arrays.asList("Google", "Baidu", "Taobao"); // 以逗号分隔…...

PyTorch实战:实现MNIST手写数字识别

前言 PyTorch可以说是三大主流框架中最适合初学者学习的了&#xff0c;相较于其他主流框架&#xff0c;PyTorch的简单易用性使其成为初学者们的首选。这样我想要强调的一点是&#xff0c;框架可以类比为编程语言&#xff0c;仅为我们实现项目效果的工具&#xff0c;也就是我们…...

【计算机网络】深入理解TCP协议二(连接管理机制、WAIT_TIME、滑动窗口、流量控制、拥塞控制)

TCP协议 1.连接管理机制2.再谈WAIT_TIME状态2.1理解WAIT_TIME状态2.2解决TIME_WAIT状态引起的bind失败的方法2.3监听套接字listen第二个参数介绍 3.滑动窗口3.1介绍3.2丢包情况分析 4.流量控制5.拥塞控制5.1介绍5.2慢启动 6.捎带应答、延时应答 1.连接管理机制 正常情况下&…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...