Elastic Search 8.14:更快且更具成本效益的向量搜索,使用 retrievers 和重新排序提升相关性,RAG 和开发工具

作者:来自 Elastic Yaru Lin, Ranjana Devaji

我们致力于突破搜索开发的界限,并专注于为搜索构建者提供强大的工具。通过我们的最新更新,Elastic 对于处理以向量表示的大量数据的客户来说变得更加强大。这些增强功能保证了更快的速度、降低的存储成本以及软件和硬件之间的无缝集成。

Elastic Search 8.14 现已在 Elastic Cloud 上推出,这是唯一包含最新版本中所有新功能的托管 Elasticsearch 产品。你还可以下载 Elastic Stack 和我们的云编排产品(Elastic Cloud Enterprise 和 Elastic Cloud for Kubernetes),以获得自我管理的体验。

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

带来极快的向量搜索

在我们的使命中,为搜索构建者提供最强大的开发平台,现在使用向量进行数十亿规模操作的客户可以在 Elastic 中获得更多的效益。我们的更新显著提升了向量索引和搜索速度,降低了存储成本,并提供了软件和硬件之间的协同作用。

我们对计算向量之间距离的代码库进行了改进,这使得处理向量数据时的二进制比较速度比 Lucene 的实现快了多达 6 倍。这一优化对向量搜索速度产生了显著影响。

Elasticsearch 的 Python 客户端现在支持 orjson,这是基准测试中最快的 Python JSON 库,可以使numpy向量的索引速度提高多达 10 倍。

标量量化允许以稍微降低的保真度编码向量,但能大幅节省空间。在创建带有向量的新索引时,不再需要先将索引类型设置为 int8_hnsw。相反,将默认使用 int8向量值,为用户提供成本效益高且准确的向量搜索。我们的系统评估发现,标量量化对检索性能的影响微乎其微。

在 Elastic Cloud 上使用向量搜索的客户,无论使用哪家云服务提供商,都可以利用为向量优化的硬件配置文件以获得最佳的软件性能。这些硬件配置文件现在不仅在 AWS 上可用,还在 Azure 和 GCP 上提供。

用检索器和重新排序使搜索相关性普及

检索器(retrievers)和重新排名(reranking)在提高搜索结果的相关性和准确性方面发挥着至关重要的作用。我们的更新对向量搜索用户和使用更传统模型(例如 BM25)的用户都有影响。

我们将检索器(retrievers)抽象添加到 _search API,以便使用 standard、knn 或 rrf 方法返回热门命中。这使用户能够更轻松地构建复杂的多阶段检索,而无需复杂的管道。

例如,要一起使用 KNN 和 BM25 检索方法,不再需要使用管道定义阶段来执行 KNN 搜索、检索结果的 ID,然后对所述 ID 执行 BM25 搜索。相反,检索器树可以直接构建到搜索查询中:

GET index/_search
{"retriever": {"rrf": {"window_size": 100,"retrievers": [{"knn": {"field": "vector","k": 3,"num_candidates": 10,"query_vector": [1, 2, 3]}},{"standard": {"query": {"match": {"message": {"query": "{{query_string}}"    }}}}}]}},"size": 5,"fields": ["message"]
}

对检索到的文档重新排序可以通过返回与搜索查询相关的文档的相关性排名来进一步提高相关性。重新排名有效地向所有用户提供语义搜索:RAG 系统将能够依赖于上下文最相关的顶部结果,而传统搜索(例如 BM25)将能够将最相关的结果显示在顶部。

Elastic 是唯一支持 Cohere Rerank 3 模型的向量数据库,并通过我们的 _inference API 无缝地使用该模型进行重新排名,无需复杂的多个查询或重新索引文档。要使用 Cohere 模型对检索结果重新排序,请首先配置推理端点:

PUT _inference/rerank/cohere_rerank {"service": "cohere","service_settings": {"api_key": <API-KEY>, "model_id": "rerank-english-v3.0"},"task_settings": {"top_n": 10,"return_documents": true}}

指定推理端点后,通过传入用于检索的原始查询以及搜索检索到的文档,使用它对结果进行重新排序。

POST _inference/rerank/cohere_rerank{"input": [{{query_results}}], "query": "{{query_string}}" }

提升 RAG 体验

我们最新的工具和增强功能旨在提升 RAG 体验。 Playground 和带有 Jupyter Notebook 的开发控制台都使用户能够快速实验、改进和迭代。

在 Playground 中,开发人员可以选择从多个第三方数据源提取的多个索引来试验和完善语义文本查询、导出生成的代码,并最终设计会话式搜索体验。这简化了 RAG 实施,并允许使用 Elasticsearch 数据快速构建聊天体验原型,以支持 LLM 响应。

可嵌入开发控制台(Dev Console)现在在 Kibana 中随处可见,可通过预先填充的上下文代码片段以及 Jupyter Notebook 来快速启动查询开发。

我们增加了对从 Azure OpenAI 获取嵌入的支持,解锁高级 AI 功能并丰富 RAG 的功能和见解。 OpenAI 完成任务现已在推理处理器中可用,简化了生成智能响应的工作流程并提高了 RAG 交互的整体效率。

工具增强可更有效地处理数据

高效地将数据加载到 Elastic 中并在其中处理数据的能力对于维护有效的搜索应用程序至关重要。这些增强功能允许用户根据其特定需求定制服务并简化开发和运营流程:

  • 使用 ES|QL 轻松执行查询并将结果自动转换为 Java 对象和 PHP 对象。
  • 数据提取服务是开放代码。
  • GraphQL 连接器现已处于技术预览阶段。 GraphQL 支持声明式数据获取,客户端可以从 API 中准确指定所需的数据。
  • Connector API 现已处于测试阶段。
  • 支持 GitHub Connector 的 GitHub App 身份验证。

试试看

请阅读发行说明中了解这些功能以及更多信息。

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

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

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

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

原文:Elastic Search 8.14: Faster and more cost-effective vector search, improved relevance with retrievers and reranking, RAG and developer tooling | Elastic Blog

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

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

相关文章

Activity->Activity中动态添加Fragment->add和replace方式添加的区别

XML文件 Activity布局文件R.layout.activity_main <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:id"id/root_ll"android:orientation"v…

Linux本地搭建DataEase并发布公网远程访问进行数据分析

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具&#xff0c;帮助用户快速分析数据并洞察业务趋势&#xff0c;从而实现业务…

【RAG入门教程01】Langchian框架 v0.2介绍

LangChain 是一个开源框架&#xff0c;旨在简化使用大型语言模型 (LLM) 创建应用程序的过程。可以将其想象成一套使用高级语言工具进行搭建的乐高积木。 它对于想要构建复杂的基于语言的应用程序而又不必管理直接与语言模型交互的复杂性的开发人员特别有用。它简化了将这些模型…

我已经入驻@面包多平台

大学常见的Javaswing 图书管理系统已经真实发布&#xff0c;使用MySQL作为数据支撑&#xff0c;欢迎点击下面的链接随时购买。 面包多-JavaSwing MySQL图书管理系统

数据库之PostgreSQL详解

一、PostgreSQL介绍 PostgreSQL是一个功能强大的 开源 的关系型数据库。底层基于C实现。 PostgreSQL的开源协议和Linux内核版本的开源协议是一样的。。BDS协议&#xff0c;这个协议基本和MIT开源协议一样&#xff0c;说人话&#xff0c;就是你可以对PostgreSQL进行一些封装&a…

如何在本地和远程删除 Git 分支

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;目前是武汉城市开发者社区主理人 擅长.net、C、python开发&#xff0c; 如果遇…

【人工智能】ChatGPT基本工作原理

ChatGPT 是由 OpenAI 开发的一种基于深度学习技术的自然语言处理模型&#xff0c;它使用了名为 GPT&#xff08;Generative Pre-trained Transformer&#xff09;的架构。GPT 模型是一种基于 Transformer 架构的预训练语言模型&#xff0c;它通过大量的文本数据进行预训练&…

SpringBoot之Mybatis-plus实战

文章目录 MybatisPlus 介绍一、MyBatisPlus 集成步骤第一步、引入依赖第二步、定义mapper 二、注解TableNameTableldTableField 加解密实现步骤 在SpringBoot项目中使用Mybatis-plus&#xff0c;记录下来&#xff0c;方便备查。 MybatisPlus 介绍 为简化开发而生&#xff0c;官…

CSAPP Lab01——Data Lab完成思路

陪你把想念的酸拥抱成温暖 陪你把彷徨写出情节来 未来多漫长再漫长还有期待 陪伴你 一直到 故事给说完 ——陪你度过漫长岁月 完整代码见&#xff1a;CSAPP/datalab-handout at main SnowLegend-star/CSAPP (github.com) 01 bitXor 这道题是用~和&计算x^y。 异或是两个…

红黑树的介绍与实现

前言 前面我们介绍了AVL树&#xff0c;AVL树是一棵非常自律的树&#xff0c;有着严格的高度可控制&#xff01;但是正它的自律给他带来了另一个问题&#xff0c;即虽然他的查找效率很高&#xff0c;但是插入和删除由于旋转而导致效率没有那么高。我们上一期的结尾说过经常修改…

C语言:双链表

一、什么是双链表&#xff1f; 双链表&#xff0c;顾名思义&#xff0c;是一种每个节点都包含两个链接的链表&#xff1a;一个指向下一个节点&#xff0c;另一个指向前一个节点。这种结构使得双链表在遍历、插入和删除操作上都表现出色。与单链表相比&#xff0c;双链表不仅可以…

【机器学习】【遗传算法】【项目实战】药品分拣的优化策略【附Python源码】

仅供学习、参考使用 一、遗传算法简介 遗传算法&#xff08;Genetic Algorithm, GA&#xff09;是机器学习领域中常见的一类算法&#xff0c;其基本思想可以用下述流程图简要表示&#xff1a; &#xff08;图参考论文&#xff1a;Optimization of Worker Scheduling at Logi…

DVB-S系统发射端Matlab仿真及FPGA实现

DVB标准 Digital Video Broadcasting&#xff08;数字视频广播&#xff09;是一个完整的数字电视解决方案&#xff0c;其中包括DVB-C&#xff08;数字电视有线传输标准&#xff09;&#xff0c; DVB-T&#xff08;数字电视地面传输标准&#xff09;&#xff0c;DVB-S&#xff…

正确理解iOS中的同步锁

在 iOS 开发中&#xff0c;同步锁&#xff08;synchronized lock&#xff09;是一种用于管理多线程访问共享资源的机制&#xff0c;而不是某一种特定类型的锁。它涵盖了多种具体实现和技术&#xff0c;用于确保同一时间只有一个线程能够访问某个共享资源&#xff0c;从而避免数…

在 Linux 使用 cron 定时执行任务的注意事项

在 Linux 下想通过 cron 设置自动镜像备份文件&#xff0c;遇到很多挫折&#xff0c;最后成功&#xff0c;记录下几点注意事项。 尝试过程&#xff1a; 系统默认自带 cron&#xff0c;执行 crontab -e 添加开机启动任务。类似如下语句。 reboot rsync -a --delete /home/use…

使用`LD_PRELOAD`和`jemalloc`实现C/C++信号的内存堆栈信息收集

文章目录 0. 概要1. 编译jemalloc2. 编译钩子共享库liballoc_hook.so3. 使用LD_PRELOAD加载钩子库liballoc_hook.so测试3.1 设置环境变量3.2 使用LD_PRELOAD加载钩子库并运行程序3.3 发送SIGUSR1信号以触发堆栈信息打印3.4 使用jeprof解析heap堆栈信息文件 4. 示例程序example.…

详细说说机器学习在医疗领域的应用

机器学习在医疗领域的应用广泛而深入&#xff0c;为医疗行业带来了显著的变革。以下是机器学习在医疗领域的主要应用方面&#xff1a; 个性化治疗&#xff1a; 机器学习能够根据病人的个体差异和基因组信息&#xff0c;帮助医生制定个性化的治疗方案。通过分析大规模的基因组数…

探地雷达正演模拟,基于时域有限差分方法,一

声明&#xff1a;本博客中的公式均是在Word中使用AxMath写好后截图使用的&#xff0c;欢迎引用&#xff0c;但请标注来源。 本系列会有四篇博客&#xff1a; 第一篇内容&#xff1a; 1、基础知识掌握 2、Maxwell方法差分求解原理 第二篇内容&#xff1a; 1、基于C的TE波波…

docker——基础知识

简介 一、什么是虚拟化和容器化 ​ 实体计算机叫做物理机&#xff0c;又时也称为寄主机&#xff1b; ​ 虚拟化&#xff1a;将一台计算机虚拟化为多态逻辑计算机&#xff1b; ​ 容器化&#xff1a;一种虚拟化技术&#xff0c;操作系统的虚拟化&#xff1b;将用户空间软件实…

mongodb总概

一、mongodb概述 mongodb是最流行的nosql数据库&#xff0c;由C语言编写。其功能非常丰富&#xff0c;包括: 面向集合文档的存储:适合存储Bson(json的扩展)形式的数据;格式自由&#xff0c;数据格式不固定&#xff0c;生产环境下修改结构都可以不影响程序运行;强大的查询语句…