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

devtools/2024/11/14 23:45:51/
aidu_pl">

作者:来自 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


http://www.ppmy.cn/devtools/134024.html

相关文章

Openstack7--安装消息队列服务RabbitMQ

只需要在控制节点安装 安装RabbitMQ yum -y install rabbitmq-server 启动RabbitMQ并设置开机自启 systemctl start rabbitmq-server;systemctl enable rabbitmq-server 创建 rabbitmq 用户 并设置密码为 000000 rabbitmqctl add_user rabbitmq 000000 如果你不慎创错了…

开源vs闭源:你更看好哪一方?

开源vs闭源:你更看好哪一方? 引言 你有没有想过,在当今人工智能(AI)蓬勃发展的时代,开源大模型与闭源大模型之间的竞争竟然如此激烈?这仿佛就像是两位骑士在同一片战场上,争夺你我…

iOS 18.2 六大新功能外媒實測|ChatGPT進化版SIRI、自製Genmoji

iOS 18.2 測試版再次帶來備受矚目的功能,當中包括 Image Playground、Genmoji,以及很多果迷都期待已久的 Siri與ChatGPT 的整合。外媒實測這些新功能的實際效果和操作體驗,發現當中有不少令人滿意的地方。 1)Image Playground-圖像…

SpringBoot中使用Thymeleaf模板引擎

和使用freemarker差不多的方式 1、导入thymeleaf的启动器 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 2、编写Controller类 3、编写模板页面 注…

linux 用C语言编写自己的myshell

学习完基本指令、开发环境、进程的概念和创建进程等内容&#xff0c;我们就可以写自己的shell了 文章目录 目录 文章目录 前言 一、myshell构思 二、前缀字符串的打印 三、获取命令行和分割命令 分割命令 四、调用指令 五、内建指令&#xff08;特殊指令&#xff09; …

Java:JVM

1.JVM内存区域的划分 一个Java写的程序跑起来,就得到了一个Java进程 JVM 上面运行的字节码指令; 进程:操作系统资源分配的基本单位; 内存区域的划分: 1.程序计数器 在内存空间里(比较小的空间),保存了下一个要执行的指令的内存地址(元数据区的地址); 这里的"下一条…

Spring Boot MySQL 分库分表

1.首先需要在 pom.xml 中配置相关依赖 <properties><java.version>17</java.version><shardingsphere.version>5.0.0</shardingsphere.version><sharding-jdbc-spring-boot-starter.version>4.1.1</sharding-jdbc-spring-boot-starter…

C++ 中的异常处理机制是怎样的?什么情况下应该使用异常处理?异常处理的优缺点是什么?

1) C 中的异常处理机制是怎样的&#xff1f; 异常是一种处理错误的方式&#xff0c;当一个函数发现自己无法处理的错误时就可以抛出异常&#xff0c;让函数的直接或间接的调用者处理这个错误 throw: 当问题出现时&#xff0c;程序会抛出一个异常。这是通过使用 throw 关键字来…