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

Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)

作者:来自 Elastic Ranjana Devaji, Dana Juratoni

Elasticsearch 8.16 引入了 BBQ(Better Binary Quantization - 更好的二进制量化)—— 一种压缩向量化数据的创新方法,其性能优于传统方法,例如乘积量化 (Product Quantization - PQ)。Elastic 是第一家实施这种方法的向量数据库供应商,它使此功能可用于实际搜索工作负载,减少必要的计算资源,同时保持低查询延迟和高排名质量。

此版本还带来了倒数排名融合 (Reciprocal Rank Fusion - RRF)、检索器和开放推理 API 的正式发布,以及一套全面的工具,用于简化工作流程以构建基于混合搜索和检索增强生成 (retrieval augmented generation - RAG) 的应用程序。

Elasticsearch 8.16 现已在 Elastic Cloud 上提供 —— 这是唯一一款包含此最新版本所有新功能的托管 Elasticsearch 产品。这些功能也可在 Elastic Cloud 上完全托管的无服务器 Elasticsearch 项目中使用。你还可以下载 Elastic Stack 和我们的云编排产品 —— Elastic Cloud Enterprise 和 Elastic Cloud for Kubernetes —— 以获得自我管理体验。

要开始使用 Elasticsearch 进行本地开发运行,请查看我们的 start-local 脚本,以便在几分钟内在笔记本电脑上进行本地部署。

curl -fsSL https://elastic.co/start-local | sh

Elastic 8.16 还有哪些新功能?查看 8.16 公告帖子了解更多信息 >>

Elastic 实现了 BBQ

认识 Better Binary Quantization (BBQ),这是一种针对象量数据的尖端优化,可在不影响准确性的情况下将向量数据的压缩率提高 32 倍。Elastic 很自豪能够率先为分布式可扩展 Elasticsearch 向量数据库的用户提供此功能,以减少和扩展依赖于大型数据集的工作负载。

此功能最初仅供 Elastic 客户使用,但将迅速贡献给 Lucene 社区,以提升所有向量存储的潜在功能。

BBQ 保持了高排名质量,同时实现了与标量量化几乎相同的速度和存储效率。其高压缩级别使组织能够有效地管理大型数据集并以可承受的价格扩展其向量存储和搜索操作。此外,BBQ 可将内存使用量减少 95% 以上,同时在数据集扩展时仍能保持出色的召回率。它还可以轻松地与 Elasticsearch 中的其他量化方法结合使用,以最大限度地提高效益。

混合对话式搜索,更多工具,更简单

混合搜索是管理搜索体验相关性的关键技术。通过将词汇关键字搜索的精确度与语义搜索的上下文理解相结合,电子商务目录搜索可以在获得语义理解的同时保持精确度。此外,RAG 和对话式搜索体验可以减少 LLM 上下文带来的幻觉。

虽然有几种方法可以实现混合搜索,包括对分数进行加权,但在检索方法之间规范分数的最简单方法是 RRF。Elastic 首次在 8.8 中将 RRF 作为技术预览版进行集成,随后将可组合检索器(retrievers)抽象引入查询 DSL,从而简化了使用。这些功能的结合使构建混合搜索变得像对 /_search 进行一次查询调用一样简单。

以下是结合三种检索器的伪代码 —— 一种用于匹配查询,一种用于向量 (kNN) 查询,另一种用于简单的语义查询(使用推理 API 中指定的推理服务)。这三个检索器结果可以通过 RRF 快速规范化。另外,还有一个检索器,可轻松进行 semantic_reranking,以实现第二阶段检索并提高相关性。对于你的生产工作负载来说,完整的相关性功能堆栈可以如此简单!

"retriever": {"text_similarity_reranker": {// ... semantic reranking parameters"retriever": {"rrf": {"retrievers": [{"standard": {"query"."semantic": {"field": "a-semantic_text-field","query": "why are retrievers fun?"}}},{"knn": {// ... knn parameters // ... query_vector_builder parameters"model_text": "why are retrievers fun?" }}}},{"standard": {"query"."match": {"some-field": "why are retrievers fun?"
}}}}]}}}}

现在,这两项关键功能(检索器和倒数秩融合 (RRF))均已向企业许可客户正式开放,从而增强了可组合性和性能,以实现自信的生产部署。8.16 支持多级嵌套,每个级别都提供所有功能,为学习排序 (Learning to Rank - LTR) 和基于规则的检索器铺平了道路。

厌倦了不相关的搜索结果?使用排除查询规则( exclude Query Rules)轻松排除特定结果,确保你的用户获得更准确、更集中的搜索结果。

Elastic 的开放推理 API(open inference API - 现在也已普遍可用)使你能够创建端点并使用来自流行推理提供商的机器学习模型。这些端点可以在 semantic_text 中用于轻松检索,检索器可用于语义查询、kNN 查询和语义重新排序(semantic reranking)。我们的集成推理提供商目录包括 Anthropic、Mistral、Cohere 等!在 8.16 中,我们现在提供对 Watsonx.ai Slate 嵌入模型和阿里云 AI 嵌入模型的支持、重新排序功能以及对 Qwen LLM 系列的完成支持。

此外,semantic_text 现在支持新的可调整分块选项,使用户可以灵活地修改我们针对向量化数据的原生分块策略,从单词分块改为句子,并调整分块窗口大小。

客户还可以在其摄取管道中使用推理 API 中的 completion 任务类型来丰富文档处理和摘要存储。这与我们的 Elastic 集成目录(例如 Elastic Open Web Crawler 和连接器)特别匹配。

增强开发人员体验

出色的搜索体验由开发人员构建。Kibana 已更新,包括使 Kibana 体验更好的功能,可以迭代机器学习和调优的所有潜在组合。在代码和 Kibana 中快速执行此操作的能力可以加速对点击转化率产生积极影响的变化,或完善对组织的关键见解的总结。

首先从可自定义的导航(navigation)选项开始,开发人员可以直接访问重要的工具。

Playground 已增强会话持久性和支持后续问题的能力。使用 Playground 进行 PDF 或 Word 文档上传更加容易,使文件实验更快、更高效。结合将开发控制台请求导出到 Python 和 Javascript 的能力,迭代和合并到你首选的开发环境中只是一个复制命令。

利用 8.16 的开源创新,该版本具有 Elastic Open Web Crawler(目前为测试版),可通过 CLI 进行管理,以实现高效的网站数据采集并将向量数据存储在 Elasticsearch 的顶级向量数据库中。此外,使用新的 start-local 功能,几分钟内即可开始使用,只需一步即可在本地启动 Elasticsearch 和 Kibana,以进行快速试用和评估。

用于搜索的 Elastic AI 助手

使用内置的用于搜索的 Elastic AI 助手改善你使用 Elasticsearch 和 Kibana 的方式。你不仅可以利用 Elastic 的功能构建自己的基于 RAG 的对话代理或应用程序,还可以利用开箱即用的加速入门功能并在 Elastic 部署中获得帮助。

所有 Elastic AI 助手都受益于自定义知识 — 引入和导入你的知识库或使用现有索引来使用自定义的 AI 驱动帮助中心,让你的团队快速掌​​握 Elastic 的强大功能。Web 爬虫和连接器(connectors )可用于增强和同步存储你知识的第三方数据源并个性化你的 Elastic AI 助手体验。

试用

阅读发行说明,了解这些功能及其他信息。

现有的 Elastic Cloud 客户可以直接从 Elastic Cloud 控制台访问其中许多功能。还未在云端使用 Elastic?立即开始免费试用。

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

在这篇博文中,我们可能使用或提及了第三方生成式 AI 工具,这些工具由其各自的所有者拥有和运营。Elastic 无法控制第三方工具,我们对其内容、操作或使用不承担任何责任,也不对你使用此类工具可能产生的任何损失或损害承担任何责任。在使用 AI 工具处理个人、敏感或机密信息时,请谨慎行事。你提交的任何数据都可能用于 AI 培训或其他目的。我们无法保证你提供的信息将得到安全或保密。在使用任何生成式 AI 工具之前,你应该熟悉其隐私惯例和使用条款。

Elastic、Elasticsearch、ESRE、Elasticsearch Relevance Engine 和相关商标是 Elasticsearch N.V. 在美国和其他国家/地区的商标、徽标或注册商标。所有其他公司和产品名称均为其各自所有者的商标、徽标或注册商标。

原文:Elasticsearch 8.16: Better Binary Quantization (BBQ) — A better way to quantize vector data over Product Quantization (PQ) and production-ready hybrid conversational search | Elastic Blog

相关文章:

Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)

作者:来自 Elastic Ranjana Devaji, Dana Juratoni Elasticsearch 8.16 引入了 BBQ(Better Binary Quantization - 更好的二进制量化)—— 一种压缩向量化数据的创新方法,其性能优于传统方法,例如乘积量化 (Product Qu…...

解决vscode不能像pycharm一样从其他同级文件夹导包

在vscode中选择:文件-首选项-设置-扩展-Python-settings.json 向setting.json添加如下代码: "terminal.integrated.env.osx": {"PYTHONPATH": "${workspaceFolder}/",},"terminal.integrated.env.linux": {"PYTHON…...

DAY24|回溯算法Part03|LeetCode:93.复原IP地址、78.子集、90.子集II

目录 LeetCode:93.复原IP地址 基本思路 C代码 LeetCode:78.子集 基本思路 C代码 LeetCode:90.子集II 基本思路 C代码 通过used实现去重 通过set实现去重 不使用used和set版本 LeetCode:93.复原IP地址 力扣代码链接 文字讲解:LeetCode:93.复原IP地…...

接口自动化测试做到什么程度的覆盖算是合格的

接口自动化测试的覆盖程度是一个衡量测试质量与效率的重要指标,其“好”的标准并非绝对,而是根据项目特性和团队需求动态调整的结果。然而,有几个原则和实践可以帮助我们确定一个相对合理的覆盖范围,以及为何这些覆盖是必要的。 1…...

Kubernetes-ArgoCD篇-01-简介

1、什么是Argo CD Argo CD 是针对 Kubernetes 的声明式 GitOps 持续交付工具。 Argo CD官方文档地址:https://argo-cd.readthedocs.io Argo CD源码地址:https://github.com/argoproj/argo-cd 1.1 关于Argo Argo是一个开源的项目,主要是扩…...

阿里云通义大模型团队开源Qwen2.5-Coder:AI编程新纪元

🚀 11月12日,阿里云通义大模型团队宣布开源通义千问代码模型全系列,共6款Qwen2.5-Coder模型。这些模型在同等尺寸下均取得了业界最佳效果,其中32B尺寸的旗舰代码模型在十余项基准评测中均取得开源最佳成绩,成为全球最强…...

【大数据学习 | HBASE高级】hbase的参数优化

Zookeeper 会话超时时间 属性:zookeeper.session.timeout 解释:默认值为 90000 毫秒(90s) hbase.client.pause(默认值 100ms)重试间隔 hbase.client.retries.number(默认 15 次)重试…...

两个链表求并集、交集、差集

两个链表求并集、交集、差集 两个链表求并集、交集、差集其实都是创建一个新链表然后遍历插入的题型,所以下边就举并集一个例子。 首先将l1里的所有节点遍历存储到新节点l中开始遍历l2,如果l中不存在l2中的节点就将其尾插到l中 下面是两个链表求并集、交集、差集的代…...

C++中的栈(Stack)和堆(Heap)

在C中,堆(heap)和栈(stack)是两种用于存储数据的内存区域。理解它们的原理和区别,对于优化代码性能和确保代码的安全性至关重要。以下是对C中堆栈的详细解析,包括它们的分配方式、优缺点、应用场…...

Linux系统编程学习 NO.11——进程的概念(2)

谈谈进程的性质 进程的竞争性 由于CPU资源是稀缺的,进程数量是众多的。不可避免需要造成进程排队等待CPU资源的动作,内核的设计者为了让操作系统合理的去调度这这些进程,就产生了进程优先级的概念。设置合理的进程优先级能让不同进程公平的去竞争CPU资…...

QT自定义控件封装

QT自定义控件封装 1.概述 这篇文章介绍如何创建UI文件,通过自定义方式将两个控件联动起来,实现自定义功能。 2.创建UI文件 新建一个widget的普通项目,然后在项目名称上右键选择And New... 新建文件,然后选择QT 再选择Qt Desig…...

【搜索结构】AVL树的学习与实现

目录 什么是AVL树 AVL树的定义 插入函数的实现 左单旋和右单旋 左右双旋与右左双旋 什么是AVL树 AVL树实际上就是二叉搜索树的一种变体,我们都知道二i叉搜索树可以将查找的时间复杂度提升到O(logn),极大提升搜索效率。但是在极端情况下,当…...

LeetCode40:组合总和II

原题地址:. - 力扣(LeetCode) 题目描述 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff…...

基于Python+Vue开发的旅游景区管理系统

项目简介 该项目是基于PythonVue开发的旅游景区管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的旅游景…...

嵌入式硬件杂谈(一)-推挽 开漏 高阻态 上拉电阻

引言:对于嵌入式硬件这个庞大的知识体系而言,太多离散的知识点很容易疏漏,因此对于这些容易忘记甚至不明白的知识点做成一个梳理,供大家参考以及学习,本文主要针对推挽、开漏、高阻态、上拉电阻这些知识点的学习。 目…...

在arm64架构下, Ubuntu 18.04.5 LTS 用命令安装和卸载qt4、qt5

问题:需要在 arm64下安装Qt,QT源码编译失败以后,选择在线安装! 最后安装的版本是Qt5.9.5 和QtCreator 4.5.2 。 一、ubuntu安装qt4的命令(亲测有效): sudo add-apt-repository ppa:rock-core/qt4 sudo apt updat…...

k8s笔记——核心概念

什么是K8s Kubernetes 也称为 K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。 Kubernetes 最初是由 Google 工程师作为 Borg 项目开发和设计的,后于 2015 年捐赠给 云原生计算基金会(CNCF)。 什么是 Kubernetes 集群…...

大数据新视界 -- 大数据大厂之 Impala 性能飞跃:动态分区调整的策略与方法(上)(21 / 30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-并行调用多个tools(五)

一、前言 Qwen-Agent 是一个利用开源语言模型Qwen的工具使用、规划和记忆功能的框架。其模块化设计允许开发人员创建具有特定功能的定制代理,为各种应用程序提供了坚实的基础。同时,开发者可以利用 Qwen-Agent 的原子组件构建智能代理,以理解和响应用户查询。 本篇将介绍如何…...

蓝桥杯每日真题 - 第8天

题目:(子2023) 题目描述(14届 C&C B组A题) 解题思路: 该代码通过动态计算包含数字 "2023" 的子序列出现次数。主要思路是: 拼接序列:将1到2023的所有数字按顺序拆分…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...