Elasticsearch:智能 RAG,获取周围分块(一)

作者:来自 Elastic Sunile Manjee

在检索增强生成 (RAG) 领域,一个持续存在的挑战是找到输入大型语言模型 (LLM) 的最佳数据量。数据太少会导致响应不足或不准确,而数据太多会导致答案模糊。这种微妙的平衡启发我开发了一个专注于智能分块和利用 Elasticsearch 向量数据库的 notebook。

动机

构建此 notebook 的主要动机是通过解决数据分块的挑战来展示一种改进的 RAG 方法。传统方法通常无法动态调整输入到 LLM 的数据大小,要么因过多上下文而使模型不堪重负,要么因太少而使其不足。此笔记本旨在达到适当的平衡,为 LLM 提供足够的信息以生成精确且与上下文相关的响应。但是,必须注意的是,没有一刀切的解决方案。

此方法特别适用于内容在较长部分或章节中流动的书籍和类似文本。但是,它可能需要适应结构化为较短、不同部分的文本,例如研究论文或文章,其中每个部分可能涵盖不同的主题。在这种情况下,可能需要额外的策略来有效地分块和检索相关内容。

方法

获取周围块

核心思想是将源文本划分为可管理的块,确保每个块包含适量的信息。为了进行演示,我使用了《哈利波特与魔法石》中的文本。文本被划分为章节,每个章节进一步划分为更小的块。这些块及其密集和稀疏 (ELSER) 向量表示都被编入 Elasticsearch 向量数据库的索引中。

为区块分配编号

章节中的每个区块都被分配了一个连续的整数,使我们能够识别其位置。当找到匹配的区块时,章节编号和区块编号用于检索周围的区块,为 LLM 提供额外的上下文。

Elasticsearch 中的向量数据库

这些块及其向量表示被提取到 Elasticsearch Cloud 实例中。Elasticsearch 强大的向量搜索功能使其成为托管这些块的理想选择,允许根据用户查询的语义内容或文本匹配高效地检索最相关的块。

AI 搜索

为了检索相关块,我采用了一种混合搜索策略,同时使用密集向量比较、稀疏向量比较和文本搜索。这种多方面的方法可确保搜索结果在语义上丰富且在上下文上准确。发出查询以查找匹配的块,该查询返回块编号和章节。然后根据匹配的块获取该章节的周围块。

RAG 模式

当进行查询时,搜索流程执行以下步骤:

  1. 查询分析:将用户的查询转换为密集和稀疏向量,以从 Elasticsearch 索引中检索最相关的块。
  2. 块检索:使用 AI 搜索策略,系统检索最相关的块。
  3. 上下文扩展:还会检索相邻块(n-1 和 n+1),以提供更全面的上下文。如果该块是章节中的最后一块,则获取 n-1 和 n-2;如果它是第一块,则获取 n+1 和 n+2。
  4. LLM 响应:然后将这些智能选择的块输入到 LLM 中,确保它接收最佳信息量以生成精确且上下文相关的响应。

为什么这很重要

这种方法通过优化输入到 LLM 的输入数据来解决 RAG 的一个关键方面。通过利用智能分块和混合语义搜索,该方法提高了 LLM 生成的响应的准确性和相关性。它展示了一种可以广泛应用于 RAG 领域内各种应用的模式,从客户支持到内容生成等等。

结论

本 notebook 强调了 RAG 框架中智能数据分块的重要性,并演示了如何利用 Elasticsearch 矢量数据库来实现最佳结果。通过确保 LLM 接收到适量的信息,这种方法为更准确、上下文更丰富的响应铺平了道路,从而提高了 RAG 系统的整体效率。

准备好自己尝试了吗?开始免费试用。
希望将 RAG 构建到你的应用程序中?想要尝试使用向量数据库的不同 LLMs?
查看 Github 上针对 LangChain、Cohere 等的示例笔记本,并立即加入 Elasticsearch Relevance Engine 培训。

原文:Intelligent RAG, Fetch Surrounding Chunks — Elastic Search Labs

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

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

相关文章

服务器远程桌面连接不上,服务器远程桌面连接不上的有效的解决方法

服务器远程桌面连接不上是一个常见的问题,可能由多种因素引起。为了解决这一问题,我们需要采取一系列专业的步骤进行排查和修复。 首先,确保本地网络连接正常。检查计算机与网络连接设备(如路由器)之间的物理连接&…

Linux ubuntu安装pl2303USB转串口驱动

文章目录 1.绿联PL2303串口驱动下载2.驱动安装3.验证方法 1.绿联PL2303串口驱动下载 下载地址:https://www.lulian.cn/download/16-cn.html 也可以直接通过CSDN下载:https://download.csdn.net/download/Axugo/89447539 2.驱动安装 下载后解压找到Lin…

Arcgis投影问题

今天下载数据,右键查看属性,发现只有地理坐标系,在arcgis里面进行展示有点丑 怎么变成下面的? 步骤1:加载数据 打开ArcGIS Pro或ArcMap。在目录窗口中,右键点击“文件夹连接”或“文件夹”选项&#xff0c…

【html】如何利用id选择器实现主题切换

今天给大家介绍一种方法来实现主题切换的效果 效果图&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initia…

【软件测试】软件测试入门

软件测试入门 一、什么是软件测试二、软件测试和软件开发的区别三、软件测试在不同类型公司的定位1. 无组织性2. 专职 OR 兼职3. 项目性VS.职能性4.综合型 四、一个优秀的软件测试人员具备的素质1. 技能相关2. 非技能相关 一、什么是软件测试 最常见的理解是&#xff1a;软件测…

货代小白快来收藏‼️普货与非普货的区别

普货是指不属于以下类别的普通货物 危险品 冷冻/冷藏品 违禁品 仿牌货 敏感货 危险品 危险品具体分为九类&#xff1a; 爆炸品 压缩气体 易燃液体 易燃固体、易燃物品和遇湿易燃物品 氧化剂和有机氧化物 有毒和感染性物品 放射性 腐蚀性 杂类 冷冻/冷藏品 主要是指以食品为主的…

初探工厂抽象模式

设计模式的-工厂模式 1.定义一个约定的规则抽象类 class ETFactory {createStore() {throw new Error(抽象方法&#xff0c;不允许直接调用&#xff0c;需重写)}createUser(){throw new Error(抽象方法&#xff0c;不允许直接调用&#xff0c;需重写)} } 案例&#xff1a;…

【ARMv8/ARMv9 硬件加速系列 3.4 -- SVE 复制指令CPY 使用介绍】

文章目录 SVE 复制指令CPYSVE 指令格式SVE 使用语法SVE CPY 使用示例SVE CPY 小结SVE 复制指令CPY CPY <Zd>.<T>, <Pg>/M, #<imm>{, <shift>}cpy 指令在 ARMv9 的

【Qt 学习笔记】Qt系统相关 | Qt事件 | 事件的介绍及基本概念

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt系统相关 | Qt事件 | 事件的介绍及基本概念 文章编号&#xff1a;Qt…

JPS(Jump Point Search)跳点搜索路径规划算法回顾

本篇文章主要回顾一下几年前学的JPS跳点搜索规划算法的相关内容&#xff0c;之前学的时候没有进行概括总结&#xff0c;现在补上 一、A*算法简单回顾 – 1、基本介绍和原理 A*&#xff08;A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法&#xff0c;也是解决许多…

【Java】Math、System、RunTime、BigDecimal类常用方法

目录 1.Math2.System3.RunTime4.BigDecimal 1.Math 数学类&#xff0c;对数据提供数学相关操作的工具类。 常见操作方法如下&#xff1a; 2.System System代表程序所在的系统&#xff0c;也是一个工具类。 拓展&#xff1a;系统起始时间的确定&#xff1a;1970.1.1 3…

【日常记录】【插件】prisma 链接MySQL数据库 简单入门

文章目录 1、新建项目&#xff0c;使用prisma链接数据库1.1、先创建一个项目1.2、初始化 npm 配置文件及下载依赖1.3、初始化TS配置文件1.4、初始化 prisma1.5、更改 prisma/schema.prisma1.6 更改.env 文件1.7 编写 prisma/schema.prisma1.8 将编写的 prisma/schema.prisma 映…

【Nvidia+AI摄像头】面向机器人双目视觉相机

随着人工智能和机器人技术的不断发展&#xff0c;双目深度相机作为一种重要的传感器&#xff0c;正在被广泛应用于各种机器人系统中。双目深度相机作为机器人不可或缺的感知器件&#xff0c;其高精度深度信息为机器人提供环境感知、立体视觉、姿态识别等功能&#xff0c;让机器…

Stable Diffusion 3 Medium 正式开源

Stable Diffusion 3 Medium 正式开源 Stability AI宣布Stable Diffusion 3 Medium现已开源&#xff0c;这是最新的文本生成图像AI模型&#xff0c;被官方声称为“迄今为止最先进的开源模型”&#xff0c;其性能超过了Midjourney 6。 这款Stable Diffusion 3 Medium模型拥有2…

【中学教资科目二】01教育基础

01教育基础 前言第一节 教育的产生与发展1.1 教育的起源 第二节 教育学的产生和发展2.1 中国教育学的发展2.2 西方教育学的发展2.3 独立及多样化阶段2.4 马克思教育学2.5 现代教育发展 第三节 教育与社会的发展3.1 教育与文化的关系 第四节 教育与人的发展、4.1 个体身心发展的…

[Python学习篇] Python字典

字典是一种可变的、无序的键值对&#xff08;key-value&#xff09;集合。字典在许多编程&#xff08;Java中的HashMap&#xff09;任务中非常有用&#xff0c;因为它们允许快速查找、添加和删除元素。字典使用花括号 {} 表示。字典是可变类型。 语法&#xff1a; 变量 {key1…

html入门综合练习

综合练习 通过实际项目练习可以更好地理解和掌握HTML、CSS和JavaScript。以下是几个综合练习项目的建议&#xff1a; 项目1&#xff1a;个人简历网页 创建一个包含以下内容的个人简历网页&#xff1a; 个人简介&#xff08;姓名、照片、联系方式&#xff09;教育背景工作经…

Excel文件损坏怎么修复?这2个方法要学会

当你的excel文件不可读&#xff0c;或者出现提示“文件已经被损坏&#xff0c;无法打开”&#xff0c;这种情况时&#xff0c;会给我们正常的工作带来很多麻烦&#xff0c;文件损坏打不开怎么办&#xff1f;来看看这2招&#xff0c;详细的图文教程&#xff0c;小白也能轻松恢复…

解禁日大涨,爱玛科技的投资前景值得信任吗?

6月17日&#xff0c;爱玛迎来6.28亿股、金额超190亿元的解禁&#xff0c;占总股本72.91%。不过&#xff0c;爱玛股价在巨量解禁中反而迎来涨势&#xff0c;因为这部分股票中&#xff0c;创始人张剑持有的限售股数量几乎就占了爱玛总股本的七成。某种意义上&#xff0c;市场认为…

国货骄傲精亿内存条颠覆游戏战场,推出超强DDR5 7200玄武系列电竞内存

随着科技的迅猛发展,对高性能电脑的需求不断增长,特别是在电竞领域。认识到这一点,国货知名品牌精亿(JINGYI)推出了其全新一代DDR5 7200 RGB电竞内存条,并命名系列为象征中国上古四大神兽的玄武-系列。这款产品凭借其卓越性能和令人印象深刻的海力士A-DIE颗粒配置,正在迅速成为…