使用 Elastic Learned Sparse Encoder 和混合评分的卓越相关性

news2025/2/26 5:04:07

作者:The Elastic Platform team

2023 年 5 月 25

今天,我们很高兴地宣布 Elasticsearch 8.8 正式发布。 此版本为矢量搜索带来了多项关键增强功能,让开发人员无需付出通常的努力和专业知识即可在搜索应用程序中利用一流的 AI 驱动技术。 使用 Elastic 专有的语义搜索转换器实现卓越的搜索性能,并使用 RRF 实现混合评分 —— 无需参数调整。

此外,对于 Elasticsearch 8.8,即使你在后台使用密集向量检索,也可以使用分面(facets),而新的 Radius 查询将进一步增强你客户的搜索体验!

最后,借助 Elasticsearch 8.8,你可以将生成式 AI 实现的显着创新与 Elasticsearch 的强大功能结合起来 —— 我们将以 Elasticsearch Relevance Engine™ 的形式推出这一切。

这些新功能使客户能够:

  • 使用 Elastic 专有的语义搜索转换器 Elastic Learned Sparse Encoder 实现开箱即用的一流语义搜索
  • 使用 Reciprocal Rank Fusion (RRF) 简化混合评分
  • 在带有半径查询的密集向量检索之上使用分面
  • 使用 reroute processor 更好地控制将日志分配给所需的索引或数据流
  • 当你的集群接近分片容量时接收警报
  • 在发布博客中了解有关 Elastic Learned Sparse Encoder 的更多信息。

 在发布博客中了解有关 Elastic Learned Sparse Encoder 的更多信息。 继续阅读下文以了解有关上面突出显示的其他功能的更多详细信息。

使用 Reciprocal Rank Fusion (RRF) 的简化混合搜索

通常,最好的排名是通过组合多种排名方法来实现的,例如 BM25 和生成密集向量嵌入的 ML 模型。 在实践中,将结果集组合成一个单一的组合相关性排名结果集被证明是非常具有挑战性的。 当然,理论上你可以将每个结果集的分数归一化(因为原始分数在完全不同的范围内),然后进行线性组合,根据每个排名的分数加权和排序最终结果集方法。 只要你提供正确的权重,Elasticsearch 就支持它并且运行良好。 为此,你需要了解环境中每种方法得分的统计分布,并有条不紊地优化权重。 实际上,这超出了绝大多数用户的能力。

另一种方法是 RRF 算法,它提供了出色的排序方法零样本混合,正如学术研究所证明的那样。 如果你不了解不同方法中排名分数的确切分布,这不仅是最好的混合方式,而且客观上也是混合排名方法的好方法 —— 即使你知道如何归一化及分数的分布情况,也很难被击败。 基本概念是结果的组合顺序由每个结果集中每个文档的位置(和存在)定义。 因此可以方便地忽略排名分数。

Elastic 8.8 支持具有多个密集向量查询和在倒排索引上运行的单个查询的 RRF。 在不久的将来,我们希望支持来自 BM25 和 Elastic 的检索模型(两者都是稀疏向量)的混合结果,从而产生同类最佳的零样本集(无域内训练)排名方法。

 

  • D - 文档集
  • R - 一组排名作为 1..|D| 的排列
  • K - 通常默认设置为 60

有向量相似性的分面

相关性排名中的误报会导致用户体验不佳。 看到排名靠前的不相关结果的用户很清楚,这很可能会将相关结果推到他们将查看的有限子集之外,这会降低对搜索结果的信任度。

在传统的基于词频(例如 BM25)的排名中,有一个固有的过滤器 —— 大多数文档将不包含查询中的任何词,并将被从结果集中过滤掉。 这消除了许多误报。 相比之下,在向量搜索中,索引中的每个向量都与查询向量有一个点积(dot product),因此即使是最不相关的文档仍然是候选者。 当使用分面时,这个问题会更加严重,因为过滤建议可能基于相当不相关的结果,并导致用户在使用分面值后将这些结果向上浮动。

相关性阈值解决了这个问题,补充了 Elasticsearch 业界领先的聚合结果集和有效过滤的能力,以支持向量搜索中的分面。

在 Elastic 中存储来自 OpenAI 模型的嵌入

Elasticsearch 现在支持使用 HNSW 算法对高达 2048 维的向量执行 kNN 向量搜索。 输出超过 1024 维的向量在现实生产中有用的模型并不多,但最近用户请求支持 OpenAI 模型说服我们提高阈值。

重新路由摄取处理器:将日志定向到正确的索引或数据流

Elastic 集成可以轻松获取常见的现成日志类型,例如 Apache Nginx 日志、Kafka 指标或 Java 跟踪。 代理会将每种日志类型发送到正确的数据流并摄取管道以解析为可用字段。 当多种日志类型都来自一个混合源时,事情变得更具挑战性,例如容器日志或 firehose。 他们应该使用哪个数据流和管道? 你真的要将其添加到运输代理配置中吗?

使用新的重新路由摄取处理器,你可以集中控制每个文档的处理位置。 使用数据的已知属性(如文件路径或容器名称)来识别源并分配所需的索引或数据流。 重新路由处理器有两种模式:目的地和数据流。 在目标模式下,你明确指定目标索引名称:

{
  "reroute": {
    "description": "reroute to my errors index",
    "if": "ctx.message.indexOf('error') >= 0",
    "destination": "myerrorsindex"
  }
}

在数据流模式下,reroute 会根据日志的类型、数据集和命名空间构造目标数据流名称。 神奇的是它们将从文档中的字段派生,或者你可以自己在处理器中覆盖数据集和命名空间。 请注意,你必须遵循数据流命名方案。

例如,要根据文件路径重新路由 Nginx 日志,请将此处理器包含在你的摄取管道中:

{
  "reroute": {
    "description": "nginx router",
    "if" : "ctx?.log?.file?.path?.contains('nginx')",
    "dataset": "nginx"
  }
}

根据文档中的 service.name 字段重新路由:

{
  "reroute": {
    "dataset": [
        "{{service.name}}",
        "generic"
    ]
  }
}

如果你想从这些类型的来源之一载入日志,则重新路由处理器可能适合你:

  • Lambda 运输功能,包括我们自己的 functionbeat 和我们新的无服务器日志转发器
  • 来自我们的 docker 日志记录驱动程序的 Docker 日志
  • 来自 Filebeat、Agent 或 Fluentd/Fluentbit 的 Kubernetes pod 日志
  • Prometheus 指标:单个 Prometheus 收集器可能会从许多 Prometheus 端点收集指标
  • OpenTelemetry 指标:OTel 收集器从许多指标端点收集指标
  • Syslog/Journald:许多服务通过单个 syslog 输入发送数据
  • GCP 数据流集成
  • Azure MP 集成

重新路由处理器在 8.8 中处于技术预览状态。

time_series 索引的增强

time_series 模式下的索引针对指标数据进行了优化。 V8.8 包括对这些索引的多项增强:

  • 具有 Flattened 数据类型的字段现在可以用作 time_series 索引中的维度字段(即定义时间序列 id 的字段),从而更容易将现有数据流转换为 time_series 数据流,这通常会减少大约 70% 的索引大小( 这反过来又降低了 TCO)。
  • 添加了许多新的压缩方法,这些方法旨在有效压缩指标数据。 这些包括增量编码、XOR 编码、GCD 编码和偏移编码。 这些的影响因数据而异,但在某些情况下,它们可以将字段在索引中占用的大小减少 90% 以上。 这些压缩方法将根据度量类型和数据类型自动用于 time_series 索引。
  • 维度字段的数量限制从 16 增加到 21。

健康报告 API 现在指示分片容量

如果你的集群太接近其最大分片容量,重要的操作可能会停止。 如果不通过删除索引、添加节点或增加限制本身来解决分片容量问题,你将无法索引新数据、恢复快照、打开关闭的索引或升级 Elasticsearch。

为了帮助检测和防止这种情况,我们在新的 Health API 中添加了 Shards Capacity 指示器。 如果在当前配置的限制下可用分片少于 10 个,则该指示器将变为黄色,如果剩余分片少于 5 个,则该指示器将变为红色。

例如,如果你有一个包含 3 个数据节点的集群,并且每个非冻结数据节点的默认 cluster.max_shards_per_node 1,000 个分片,则总限制为 3,000 个分片。 如果你当前有 2,993 个分片打开,则运行状况报告将以黄色状态指示分片容量。

该指示器还将显示在 Elastic Cloud Deployments 控制台中。 与健康报告的其余部分一样,我们将指出可能的影响并包括指向相关故障排除指南的链接。

等待 。 . . 还有更多!

Elastic 8.8 包括许多其他增强功能! 你不仅可以从 Elasticsearch 8.8 中的新增功能中了解 Elasticsearch 的其他增强功能,还可以使用你的自定义徽标自定义 Kibana 体验,并在较大工作流中自然需要的地方访问机器学习,从 Discover 开始 —— 查看 Kibana 8.8 中新增功能了解更多详情。 发行说明将为你提供完整的增强功能列表。

试试看

现有的 Elastic Cloud 客户可以直接从 Elastic Cloud 控制台访问其中的许多功能。 还没有使用过 Elastic on Cloud? 开始免费试用。

本博文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。

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

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

相关文章

06- AOP(实现案例:记录日志操作)

目录 1. 通知类型 2. 通知顺序 3. 切入点表达式 execution() annotation() 4. 连接点(JoinPoint) 5. 案例:将CRUD接口的相关操作记录到数据库中 AOP: Aspect Oriented Programming (面向切面编程、面向方面编程),其实就是…

Zookeeper学习---2、客户端API操作、客户端向服务端写数据流程

1、客户端API操作 1.1 IDEA 环境搭建 前提&#xff1a;保证 hadoop102、hadoop103、hadoop104 服务器上 Zookeeper 集群服务端启动。 1、创建一个工程&#xff1a;Zookeeper 2、添加pom文件 <?xml version"1.0" encoding"UTF-8"?> <project …

JavaEE进阶5/24(Spring入门)

1.IOC 控制反转 把对象的生命周期的控制权由程序员反转给其他人。 控制反转减少了代码的耦合性。 哪里发生了反转&#xff1f;f 1.对象生命周期的控制权由程序员转交给Spring 2.对象创建的顺序反转了&#xff0c;原本程序员通过new来创建的是从外层到内层的&#xff0c;控制反转…

原型设计工具Quant-UX

什么是 Quant-UX &#xff1f; Quant UX 是一种研究、可用性和原型设计工具&#xff0c;可快速测试您的设计并获得数据驱动的洞察力。Quant-UX 使验证您的想法变得简单。使用 Quant UX 的可视化编辑器可在几分钟内创建一个交互式原型&#xff0c;感觉就像真正的应用程序一样。 …

使用Windbg静态分析dump文件的一般步骤详解

目录 1、概述 2、静态分析dump文件的一般步骤 2.1、查看异常类型 2.2、使用.ecxr命令切换到发生异常的线程上下文&#xff0c;查看发生异常的那条汇编指令 2.3、使用kn/kv/kp命令查看异常发生时的函数调用堆栈 2.4、使用lm命令查看模块的时间戳&#xff0c;找到对应的pdb…

基于变形模板的弱监督体图像分割

文章目录 Weakly Supervised Volumetric Image Segmentation with Deformed Templates摘要本文方法实验结果 Weakly Supervised Volumetric Image Segmentation with Deformed Templates 摘要 背景 有许多方法可以对网络进行弱监督训练来分割2D图像。依赖于对3D图像的2D切片的…

python之SSTI漏洞介绍

SSTI模板注入 Python类 类&#xff08;class&#xff09;是Python中的一种基本的程序组织结构。它们允许定义一种新的数据类型&#xff0c;称为对象&#xff08;object&#xff09;&#xff0c;并为该类型定义行为&#xff08;即方法&#xff09;。 Python中的类由关键字cla…

Zabbix监控系统超详细操作配置

一、Zabbix概述 1、使用zabbix的原因 作为一个运维&#xff0c;需要会使用监控系统查看服务器状态以及网站流量指标&#xff0c;利用监控系统的数据去了解上线发布的结果&#xff0c;和网站的健康状态。 利用一个优秀的监控软件&#xff0c;我们可以: ●通过一个友好的界面进…

多元回归预测 | Matlab阿基米德算法(AOA)优化最小二乘支持向量机回归预测,AOA-LSSVM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab阿基米德算法(AOA)优化最小二乘支持向量机回归预测,AOA-LSSVM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码…

使用uniapp开发国际化---app,vue,nvue

插件市场下载示例 hello-i18n 示例工程 - DCloud 插件市场 项目使用 main.js引入 // 国际化 json 文件&#xff0c;文件内容详见下面的示例 import en from ./en.json import zhHans from ./zh-Hans.json import zhHant from ./zh-Hant.json const messages {en,zh-Hans: …

【Spring】 ——初识Spring

Spring学习思维导图&#xff08;仅供参考&#xff09;&#xff0c;如有需要可以到我的资源自行下载 目录 一、为什么学Spring&#x1f36d; 官方解释&#x1f9c1; 解释&#x1f9c1; 二、Spring是什么&#x1f36d; 1、核心特点&#x1f9c1; Ⅰ、控制反转&#xff08;Io…

15-Vue技术栈之创建Vue3.0工程

目录 1.使用 vue-cli 创建2.使用 vite 创建 1.使用 vue-cli 创建 官方文档&#xff1a;https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create ## 查看vue/cli版本&#xff0c;确保vue/cli版本在4.5.0以上 vue --version ## 安装或者升级你的vue/cli npm insta…

DAY 70 WEB缓存——squid代理服务器应用

正向代理&#xff1a;代替客户端向服务端发送请求。 反向代理&#xff1a;代理服务端&#xff0c;将请求转发给多个服务端。 Squid代理服务器介绍 Squid 主要提供缓存加速、应用层过滤控制的功能。 代理的工作机制&#xff08;缓存网页对象&#xff0c;减少重复请求&#x…

深度学习常用名词解析

深度学习&#xff1a; 英文DL(Deep Learning),指多层的人工神经网络和训练它的方法。一层大量的神经网络会把大量的矩阵数字作为输入&#xff0c;通过非线性激活方法获取权重&#xff0c;再产生另一个数据集和作为输出。 Epoch&#xff1a; 在模型训练的时候含义是训练集中的…

数据结构——实现双向链表

文章目录 :cool:前言:smile:带头双向循环链表的结构体搭建和初始化的操作:bear:创造一个哨兵位头结点:monkey:申请一个节点:dog:初始化:cat:打印:potato:判空:tomato:销毁:cow:尾插:strawberry:头插:banana:尾删:orange:头删:pear:查找:watermelon:在pos位置之前插入:apple:删除…

electron-vue 运行报错 Object.fromEntries is not a function

文章目录 1. 背景2. 解决方案2.1 第一步&#xff1a;安装依赖2.2 第二步&#xff1a;项目中引入 3. 组件详解 1. 背景 最近研究一款桌面端应用的开发框架electron-vue&#xff0c;在按照 electron-vue官方文档 操作之后操作如下&#xff0c;Object.fromEntries is not a funct…

抖音seo源码搭建,抖音矩阵系统源码分发,抖音矩阵同步分发

前言&#xff1a;抖音seo源码&#xff0c;抖音矩阵系统源码搭建&#xff0c;抖音矩阵同步分发。抖音seo源码部署是需要对接到这些正规接口再来做开发的&#xff0c;目前账号矩阵程序开发的功能&#xff0c;围绕一键管理多个账号&#xff0c;做到定时投放&#xff0c;关键词自动…

腾讯云服务器端口怎么全开?教程来了

腾讯云服务器端口怎么全开&#xff1f;云服务器CVM在安全组中设置开通&#xff0c;轻量应用服务器在防火墙中设置&#xff0c;腾讯云百科来详细说下腾讯云服务器端口全开放教程&#xff1a; 目录 腾讯云服务器端口全部开通教程 云服务器CVM端口全开放教程 轻量应用服务器开…

一文学会TypeScript

TypeScript笔记 文章目录 TypeScript笔记[toc]第一章 TypeScript简介1.1、TypeScript简介1.2、TypeScript安装1.3、TypeScript项目初始化1.4、Hello TypeScript 第二章 TypeScript数据类型2.1、TypeScript的类型2.2、字面量类型2.3、联合类型2.4、any 与 unknown2.5、类型断言2…

5.1 因特网概述

5.1 因特网概述 我们知道因特网是一个很大的互联网&#xff0c;它由大量的通过路由器互联起来的物理网络构成&#xff0c;我们下思考几个问题 为什么因特网要考虑包容多种物理网络技术呢&#xff1f; 因为价格低廉的局域网只能够提供短距离的高速通信&#xff0c;而能够跨越长…