OpenSearch的演进与语义检索技术革新

周末听了一场关于Open Search的技术分析,整理如下,供大家参考。OpenSearch,作为ElasticSearch的一个分支,不仅继承了其强大的搜索和分析能力,更在开源社区的驱动下,不断演进和创新。本文将介绍OpenSearch的最新进展,特别是其在语义检索技术方面的突破。

OpenSearch简介

OpenSearch是一个开源的搜索与分析套件,起源于ElasticSearch 7.10.2版本,坚持Apache-2.0开源协议,以开源优先和社区驱动为原则。OpenSearch项目不仅提供了强大的搜索功能,还包括了DataPrepper、Dashboard等组件,广泛应用于搜索、可观测性、安全分析、数据可视化和机器学习等领域。

向量搜索引擎从原始向量做写入、查询,OpenSearch做了很多运行速度、压缩量化方面的优化。到NeuralSearch语义搜索引擎,做的易用性升级,纯文本端到端的写入查询,做了其他的功能优化,比如Hybrid query.多模态、文本切分、rerank。现在:稀疏编码的语义搜索引擎,knn之外又多了一种选择,各自具备自己的优势,适配不同的应用场景
在这里插入图片描述

OpenSearch社区

OpenSearch的社区活跃度极高,拥有超过5亿的总下载量,版本更新频繁,合作伙伴和外部贡献者众多。在SlackWorkspace和OpenSearchForum上,有超过7000名成员参与讨论,月浏览量达到30万以上。这种活跃的社区氛围为OpenSearch的持续发展和创新提供了坚实的基础。

OpenSearch使用场景

OpenSearch平台的优势在于其检索功能的沉淀、分布式架构、安全性和数据分析能力。特别是k-NN索引的横向扩展能力,可以在集群中任意扩展数据节点,支持高达16K维度的向量,满足大规模数据集的搜索需求。

1.结合OpenSearch丰富的检索功能,与OpenSearch DSL结合完成复杂的查询过程

  • a. 比如加入复杂的过滤条件;
  • b. 与其他查询结合,e.g.BM25

2.基于OpenSearch分布式平台,高可靠性、高扩展性、高性能,平台确保分布式查询和写入 的负载均衡。
3.安全性:基于OpenSearch的安全插件,实现api级别鉴权,多用户访问控制,安全审计日志
4.数据分析:OpenSearch dashboards拥有丰富的数据可视化工具,数据进行可视化分析。dashboards上的搜索比较工具进行可视化的搜索效果比较,进行case
研究分析

使用场景:
在这里插入图片描述

OpenSearch向量数据库

在深度学习时代,万物皆可Embedding,无论是图像、文本、视频还是音乐,都可以通过向量化的方式进行高效的索引和检索。OpenSearch通过k-NN插件,实现了向量引擎的适配,支持NMSLiB、Faiss、Lucene等多种向量库,以及HNSW和IVF等索引结构,为用户提供了强大的向量搜索能力。
在这里插入图片描述

k-NN插件

OpenSearch支持Exact k-NN和Approximate k-NN (ANN)搜索,以及基于遍历和基于图的过滤方式。Exact k-NN适合前置过滤,而ANN适合后置过滤。OpenSearch还能够在搜索时进行过滤,打通了Lucene、JNI和向量引擎,智能决定k-NN类型,权衡代价与精度。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

数据评测:性能与召回率的平衡

在1亿数据集的评测中,OpenSearch展现出了稳定支持10亿数据的能力,以及优秀的召回率和低延迟。例如,在r5.12xlarge实例上,p90查询延迟仅为16.9毫秒,召回率达到0.99。这表明OpenSearch在处理大规模数据集时,能够保持良好的性能和高准确度。
在这里插入图片描述

端到端的文本语义检索

对于期望实现语义检索的用户,OpenSearch提供了neural-search插件,这是一个端到端的API,支持文本写入和检索。通过ingestion processor和neural query builder,用户可以轻松实现文本的语义检索。

在这里插入图片描述

ml-commons插件:模型全流程托管

ml-commons插件为语义检索提供了强大的支持,实现了模型的全流程托管,包括一键部署、节点级部署、负载均衡和GPU支持。此外,它还支持远程连接到SageMaker、Bedrock、Cohere、OpenAI等服务,以及通过AgentFramework连接大模型,助力RAG。

OpenSearch提供了可视化查询比较工具,允许用户使用相同的搜索测试不同的查询,比较结果的差异。这有助于用户更好地理解不同查询方式的效果,优化搜索策略。

k-NN算法中的性能取舍

在k-NN算法中,性能和召回率往往需要权衡。例如,HNSW算法虽然召回率高达99%,但延时和内存占用相对较高;而IVF+PQ算法虽然召回率较低,但延时和内存占用更优。OpenSearch通过智能选择算法,帮助用户在性能和精度之间找到最佳平衡。
在这里插入图片描述

稀疏编码:鱼和熊掌兼得

稀疏编码(neural sparse)是一种既能保证高相关性,又能节省存储空间、保证速度的语义检索方法。通过深度学习模型,稀疏编码能够将文档和查询转换为稀疏向量,实现高效的语义匹配。
在这里插入图片描述

稀疏编码的鲁棒性

稀疏编码在真实数据服从训练数据分布时表现出色,模型能够使用稀疏准确的向量表征,产出精确的结果。即使在支持论据不足的情况下,稀疏编码也能保持较高的搜索相关性。
在这里插入图片描述

稀疏编码语义检索的计算方法

稀疏编码通过点积计算查询和文档之间的分数,结合权重和语义模型,实现高效的语义匹配。
在这里插入图片描述

稀疏编码与Lucene的结合

OpenSearch将稀疏编码与Lucene结合,构建了倒排索引和FeatureField,实现了高效的检索。
在这里插入图片描述

Doc-only模式:极致速度

OpenSearch的Doc-only模式通过减少模型推理和索引遍历,实现了极致的搜索速度,同时保持了较高的搜索精度。
在这里插入图片描述

稀疏编码性能测试结果

OpenSearch的稀疏编码模型在性能测试中表现出色,无论是搜索精度还是速度,都远超传统的BM25模型。

在这里插入图片描述
在这里插入图片描述

稀疏编码资源消耗

稀疏编码模型在资源消耗方面也具有优势,索引大小和峰值内存占用都远低于稠密索引模型。
在这里插入图片描述

稀疏编码持续优化

OpenSearch团队持续优化稀疏编码模型,通过预训练和知识蒸馏,减小模型尺寸,提高搜索精度,降低ingestion代价。
在这里插入图片描述

集成多路召回

OpenSearch还支持集成多路召回,通过BM25与k-NN的集成,以及更复杂的查询组合,进一步提升搜索精度。
在这里插入图片描述


结语

OpenSearch作为一个活跃的开源项目,其在语义检索技术方面的创新和优化,提供了一个高效、准确、可扩展的搜索平台。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode-21-回溯-全排列及其去重

一、[46]全排列 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3]输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 其中,不需要使用startIndex used数组,其实就是记录此时path里都有哪些元素…

第十一章 Nest 创建动态模块

在 NestJS 中,动态模块允许在运行时动态添加和删除模块。这对于创建可扩展的和灵活的应用程序非常有用。 新建一个项目: nest new dynamic-module -p npm创建一个crud的模块: nest g resource test启动项目 浏览器访问 可以发现模块生效了 …

Python酷库之旅-第三方库openpyxl(20)

目录 一、 openpyxl库的由来 1、背景 2、起源 3、发展 4、特点 4-1、支持.xlsx格式 4-2、读写Excel文件 4-3、操作单元格 4-4、创建和修改工作表 4-5、样式设置 4-6、图表和公式 4-7、支持数字和日期格式 二、openpyxl库的优缺点 1、优点 1-1、支持现代Excel格式…

【技术杂谈】如何访问Github | 解决无法连接Github的问题

访问网页的过程 什么是域名?什么是IP地址?- 域名是网站的名称。 - IP地址是服务器在互联网上的逻辑地址。域名往往是固定的,但是IP地址很有可能是会改变的。计算机通过Host文件检查本地缓存是否有域名对应IP地址 Host文件路径 C:\Windows\Sy…

6.The hardest part about learing hard things(学一件难的事,难在哪里)

I’ve been recording a lot of podcast interviews for my upcoming book, Ultralearning.One of the reurring themes I’ve noticed in our conversations is that how people feel about learning is the overwhelming cause of the results they experience. 我为我的新书…

解决VSCode无法用ssh连接远程服务器的问题

原因: 因为windows自带的ssh无法连接远程服务器,需要用git底下的ssh.exe。 搜了很久,试过很多方法,包括替换掉环境变量中的ssh,但是都无效,最后发现是要在VSCode中配置需要使用哪个ssh.exe。 步骤&#…

11.优化算法之栈

1.删除字符串中的所有相邻重复项 可以用数组模拟栈结构 class Solution {public String removeDuplicates(String s) {if(s.length()<1){return s;}StringBuffer retnew StringBuffer();for(int i0;i<s.length();i){if(ret.length()<1){ret.append(s.charAt(i));}els…

字符编码-unicode码表

unicode在线码表&#xff1a;https://www.tamasoft.co.jp/en/general-info/unicode.html Unicode Table

Stable Diffusion中放大图像的3种方法

前言 要执行 ControlNet tile upscale&#xff1a; 您想使用 Stable Diffusion 创建包含大量细节的大型图像吗&#xff1f;您将需要使用升频器。在本文中&#xff0c;您将学习 3 种放大图像的方法。 人工智能升级器标清高档ControlNet瓷砖高档 您将看到比较并了解这些方法的优…

【Arduino】小飞鱼通达二开实验ESP32使用红外寻迹传感器 (图文)

在智能小车项目中都会有一个功能就是自动巡线&#xff0c;今天小飞鱼通达来实验的就是这个红外寻迹传感器。 红外寻迹传感器的原理就是有一个小灯发出红外光&#xff0c;光线照到物体后进行反射&#xff0c;有一个接收器进行接收&#xff0c;当在一定距离内会导通电路&#xf…

【AI绘画Stable Diffusion】教你制作 SD 光影文字,保姆级教程建议收藏!(附模型下载)

大家好&#xff0c;我是设计师阿威 最近光影文字又开始火起来了。今天讲讲怎么利用 Stable Diffusion 的 ControlNet 插件来制作光影图片。 1.下载光影模型组件 1.SD主模型&#xff1a;majicMIX realistic V6、xxmix9realistic_v26 2. ControlNet 的模型&#xff1a;Bright…

3、加密算法-AES和RSA

前两节博客主要是针对MD5和哈希算法&#xff0c;数字签名算法做了阐述和总结&#xff1b; 这篇文章主要是针对AES和RSA做一个概况和比较&#xff0c;以及相关的一些概念&#xff1b; 一、对称加密算法 对称加密算法是指加密和解密采用相同的密钥口&#xff0c;是可逆的(即可解…

高等数学在Android开发中的应用:函数极限与算法优化

高等数学在Android开发中的应用:函数极限与算法优化 在Android开发中,高等数学中的许多概念和技术都能够显著提高应用程序的性能和功能。这篇博客将探讨一些具体的数学原理,特别是函数极限在Android中的实际应用。 函数极限的基本概念 函数极限是微积分的基础,广泛应用于…

R可视化:好看的气泡图

加载R包 library(tidyverse) library(camcorder)gg_record(dir "tidytuesday-temp", device "png", width 8, height 8, units "in", dpi 320)导入数据 team_results <- readr::read_csv(https://raw.githubusercontent.com/rfordata…

有手就行,轻松本地部署 Llama、Qwen 大模型,无需 GPU

用 CPU 也能部署私有化大模型&#xff1f; 对&#xff0c;没错&#xff0c;只要你的电脑有个 8G 内存&#xff0c;你就可以轻松部署 Llama、Gemma、Qwen 等多种开源大模型。 非技术人员&#xff0c;安装 Docker、Docker-compose 很费劲&#xff1f; 不用&#xff0c;这些都不…

vue中路由来回切换页面直接卡死

今天发现一个很严重的问题&#xff0c;项目好不容易做好了&#xff0c;结果页面多了&#xff0c;切换之后卡死。页面所有的交互效果都失效了。 排查了许久的错误原因最后发现原来是路由名称重复了。 如上图当页面跳转到riskdetails详细页面之后&#xff0c;框架则被这个详情页…

SSE代替轮询?

什么是 SSE SSE&#xff08;Server-Sent Events&#xff0c;服务器发送事件&#xff09;&#xff0c;为特定目的而扩展的 HTTP 协议&#xff0c;用于实现服务器向客户端推送实时数据的单向通信。如果连接断开&#xff0c;浏览器会自动重连&#xff0c;传输的数据基于文本格式。…

高温下的稳定选择 —— PP消解管,耐化学更耐用

PP消解管&#xff0c;即聚丙烯材质的消解管&#xff0c;是一种常用于化学分析中的实验室设备&#xff0c;主要用于样品的消解处理。以下是PP消解管的一些主要特性和应用&#xff1a; 主要特性&#xff1a; 1. 耐化学腐蚀&#xff1a;PP材料对多数酸、碱和有机溶剂具有良好的耐…

Vue笔记-vue中使用JS创建的函数

主要是公司对前端要求不高&#xff0c;能解决问题就行了&#xff0c;前端不太熟&#xff0c;用js这种处理起来方便&#xff0c;在此记录下。 在src中创建一个api目录&#xff0c;新建custom.js export const getDivHeightByClass (className) > {let divElements docume…

MySQL数据库中文乱码处理

出现中文乱码之后处理方式 1、执行下面语句查看一下关于编码方式 show variables like %char%结果展示&#xff1a;【你应该和我的不一样】 2、如果你的和我查询结果不一致请设置成一致语句&#xff0c;根据自己需要复制语句 如下&#xff1a;【除了最后一条记录哈】 SET G…