LightRAG - 更快更便宜的GraphRAG

检索增强生成(Retrieval-Augmented Generation, RAG)已经成为提升大型语言模型(LLMs)能力的重要方法之一,通过整合外部知识,显著改善了生成内容的质量和相关性。

RAG 的局限性

传统的 RAG 系统虽然表现优异,但其局限性也不容忽视:

  1. 数据结构扁平化
    传统 RAG 系统往往依赖扁平化的数据结构,难以捕捉信息之间的复杂关系。这种缺陷导致生成的答案片段化,缺乏上下文的一致性。
  2. 有限的上下文意识
    系统在处理需要综合多个数据点的复杂问题时表现不佳,生成的答案缺乏对数据间相互关联的全面理解。

GraphRAG的局限性

GraphRAG 通过使用** 知识图谱** 对文本中的实体和关系进行结构化建模,从而能够捕捉信息间的复杂关联。GraphRAG 首先在整个私有数据集上创建实体和关系的引用,随后采用自底向上的聚类方法,将数据层次化地组织为语义簇。
然而,当数据集中加入新的知识时,GraphRAG 必须重新执行整个图构建流程。这种方式对于动态更新的数据集来说效率低下且成本高昂。

  1. 资源需求高:需要大量 API 调用(通常依赖昂贵的模型如 GPT-4o)。
  2. 数据更新昂贵:每次更新数据时,必须重建整个图谱。

file

LightRAG的创新点

file

相比之下,LightRAG 的增量更新机制大大简化了流程。它通过简单的 联合操作(union operation),将新的图节点和边直接添加到现有图谱中。这种方式避免了重复构建图谱的高昂开销,同时确保知识库实时更新,适应动态数据需求。
file

LightRAG

LightRAG 的核心卖点在于 基于图的索引 和 双层检索框架。以下是对这两个关键功能的深入解析:

Graph-based Indexing

file
以下是 LightRAG 进行基于图索引的步骤:

  1. 实体与关系(ER)提取
    实体与关系提取由图中的 R(.) 表示。此步骤确保从给定文档中首先提取简单的实体。例如,在上图的示例中,“蜜蜂”(bees)和“养蜂人”(beekeeper)是两个实体,它们通过“观察”(observe)关系相关联,即养蜂人观察蜜蜂。

  2. 使用 LLM 生成键值(KV)对
    使用简单的 LLM 生成键值对。LLM 的分析步骤为实体或关系提供了简要的说明或解释。例如,在所选示例中,LLM 解释了“养蜂人”是谁。此步骤在图中由 P(.) 表示。需要注意的是,此 LLM 不同于主 RAG 流程中使用的通用 LLM。

  3. 去重
    鉴于文档内容与蜜蜂相关,实体“养蜂人”可能从多个文档或文本块中被多次提取。因此,需要一个去重步骤,仅保留一个具有相同含义的实体,丢弃其他重复项。此步骤在图中由 D(.) 表示。

Dual-level Retrieval

file
对 RAG 系统的查询可以分为两种类型——具体的或抽象的。在同样的蜜蜂示例中,具体查询可能是:“一个蜂巢中可以有多少只蜂王?” 抽象查询可能是:“气候变化对蜜蜂有哪些影响?” 为了应对这种多样性,LightRAG 采用了两种检索方式:
file
低层检索:简单地提取精确的实体及其关系,如蜜蜂(bees)、观察(observe)和养蜂人(beekeepers)。
高层检索:通过使用 LLM,LightRAG 聚合信息并总结多个信息来源。

架构意义

进行这些操作并切换到 LightRAG 的确能改进执行时间。在索引过程中,每个文本块只需调用一次 LLM 来提取实体及其关系。

同样,在用户查询时,仅使用与索引相同的 LLM 从文本块中检索实体和关系。这大大减少了检索的开销,从而降低了计算成本。因此,最终拥有了一个“轻量”的 RAG!

将新知识整合到现有图谱中看起来是一个无缝的操作。与其在有新信息时重新索引整个数据,可以简单地将新知识附加到现有图谱中。

评估

评估中,LightRAG 与 Naive RAG、RQ-RAG、HyDE 和 GraphRAG 进行了比较。为了保持比较的公平性,统一使用了 GPT-4o-mini 作为 LLM,并在所有数据集上采用固定的分块大小(1200)。答案的评估标准包括全面性、多样性以及回答用户问题的有效性。

file

正如下划线结果所示,LightRAG 超越了当前所有最先进的方法。

总体而言,得出了以下结论:
• 使用基于图的方法(如 GraphRAG 或 LightRAG)相比基础的 Naive RAG 有显著改进。
• LightRAG 通过双层检索范式生成了相当多样化的答案。
• LightRAG 能够更好地处理复杂查询。

结论

尽管 RAG 是一种相对较新的技术,但这一领域正在快速发展。像 LightRAG 这样的技术可以将 RAG 流程引入廉价的通用硬件,这是非常受欢迎的。尽管硬件领域不断进步,但始终需要在计算受限的硬件上实时运行 LLM 和 RAG 流程。

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

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

相关文章

TCP/IP协议攻击与防范

一、TCP/IP协议攻击介绍 1.1 Internet的结构​ LAN:局域网 WAN:广域网 WLAN:无线局域网 私有IP地址与公有IP地址? 私有地址:A类:10.0.0.0~10.255.255.255 B类:172.16.0.0~172.31.255.255…

机器学习模型——线性回归

文章目录 前言1.基础概念2.代价函数3.单变量线性回归3.1加载数据3.2初始化超参数3.3梯度下降算法3.3.1初次梯度下降3.3.2 多次梯度下降3.3.3结果可视化 前言 随着互联网数据不断累积,硬件不断升级迭代,在这个信息爆炸的时代,机器学习已被应用…

Flink CDC 使用实践以及遇到的问题

背景 最近公司在做一些业务上的架构调整,有一部分是数据从mysql采集到Starrocks,之前的一套方法是走 debezium 到 puslar 到 starrocks,这一套下来比较需要配置很多东西,而且出现问题以后,需要修改很多配置,而且现阶段…

Pgsql:json字段查询与更新

1.查询json字段的值 SELECT attribute_data->>设施类别 mycol, * FROM gis_coord_data WHERE attribute_data->>设施类别阀门井 查询结果如下: 2.更新json字段中的某个属性值 UPDATE gis_coord_data SET attribute_data(attribute_data::jsonb ||{&quo…

DAMODEL丹摩 | 关于我部署与使用FLUX.1+ComfyUI生成了一位三只手的jk美少女这回事

DAMODEL丹摩 | 关于我部署与使用FLUX.1ComfyUI生成了一位三只手的jk美少女这回事 最终效果图FLUX.1简介部署流程1. 创建资源2. 登录实例3. 部署ComfyUI4. 部署FLUX.1 使用流程1. 运行FLUX.1 导入工作流 声明:非广告,为用户使用体验分享 最终效果图 FLUX.…

d3-contour 生成等高线图

D3.js 是一个强大的 JavaScript 库,用于创建动态、交互式数据可视化。d3-contour 是 D3.js 的一个扩展模块,用于生成等高线图(contour plots)。 属性和方法 属性 x: 一个函数,用于从数据点中提取 x 坐标。y: 一个函…

微信小程序 城市点击后跳转 并首页显示被点击城市

在微信小程序中,渲染出城市列表后,如何点击城市,就跳转回到首页,并在首页显示所点击的城市呢? 目录 一、定义点击城市的事件 二、首页的处理 首页:点击成都市会跳转到城市列表 城市列表:点击…

Web 学习笔记 - 网络安全

前言 作为 前端开发者,了解一点 Web 安全方面的基本知识是有很必要的,未必就要深入理解。本文主要介绍常见的网络攻击类型,不作深入探讨。 正文 网络攻击的形式种类繁多,从简单的网站敏感文件扫描、弱口令暴力破解,…

JavaEE---计算机是如何工作的?

1.了解冯诺依曼体系结构 2.CPU的核心概念,CPU的两个重要指标(核心数和频率) 3.CPU执行指令的流程(指令表,一条一条指令,取指令,解析指令,执行指令) 4.操作系统核心概念(管理硬件,给软件提供稳定的运行环境) 5.进程的概念(运行起来的程序和可执行文件的区别) 6.进程的管理(…

【pyspark学习从入门到精通21】机器学习库_4

目录 评估模型的性能 保存模型 参数超参数调整 网格搜索 评估模型的性能 显然,我们现在想测试我们的模型表现得如何。PySpark 在包的 .evaluation 部分提供了一些分类和回归的评估方法: import pyspark.ml.evaluation as ev 我们将使用 BinaryClas…

788页页大型集团财务集中管控平台项目总体规划方案全文深入解读

“大型集团公司财务集中管控平台项目”的总体规划方案,内容全面且详细,主要涵盖以下几个方面: 1. 项目概述:介绍了项目的背景、目标、预期收益、设计思路与方法及原则。项目旨在全面提升财务集中管控能力,提高财务价值…

mac下安装Ollama + Open WebUI + Llama3.1

本文介绍mac下安装Ollama Open WebUI Llama3.1 8b具体步骤。 目录 推荐配置Ollama Open WebUI Llama3.1简介安装Ollama安装Open WebUI 推荐配置 m1以上芯片,16g内存,20g以上硬盘空间 Ollama Open WebUI Llama3.1简介 Ollama: 下载,管理…

C 语言函数递归探秘:从基础概念到复杂问题求解的进阶之路

我的个人主页 我的专栏:C语言,希望能帮助到大家!!!点赞❤ 收藏❤ 目录 什么是函数递归递归的基本组成递归的工作原理递归的优缺点递归的经典案例 5.1 阶乘计算5.2 斐波那契数列5.3 汉诺塔问题5.4 二分查找 递归的高级…

Rust语言俄罗斯方块(漂亮的界面案例+详细的代码解说+完美运行)

tetris-demo A Tetris example written in Rust using Piston in under 500 lines of code 项目地址: https://gitcode.com/gh_mirrors/te/tetris-demo 项目介绍 "Tetris Example in Rust, v2" 是一个用Rust语言编写的俄罗斯方块游戏示例。这个项目不仅是一个简单…

Web开发:使用stackexchange.redis库对redis进行增删改查

一、安装第三方库 二、官网 StackExchange.Redis |通用型 redis 客户端 三、连接示例 private static string redisConnectionString "localhost:6379,passwordyourpassword,defaultDatabase0,syncTimeout10000";private static string redisConnectionString &q…

3分钟快速掌握—— 进制转换,二进制计算【零基础】

1、计算机中的进制 1.1进制的三要素 进制 数码 基数 位权 十进制 0 1 2 3 4 5 6 7 8 9 10 .......10^2 10^1 10^0 10^-1 10^-2 10^-3..... 二进制 0 1 2 .......2^2 2^1 2^0 2^-1 2^-2 2^-3..... 八进制 0 1 2 3 4 5 6 7 8 .......8^2 8^1 8^0 8^-1 8^-2 8^-3.…

HDMI转VGA方案 LT8612UX(HDMI2.0) LT8612SX LT8511EX LT8522EX LT8612EX_e(HDMI1.4)

一、产品概述 LT8612UX是一款高性能的HDMI至HDMI&VGA转换器,由龙迅半导体公司推出。它能够将HDMI2.0数据流转换为HDMI2.0信号和模拟RGB信号,同时输出8通道I2S和SPDIF信号,实现高质量的7.1声道音频。该转换器采用最新的ClearEdge技术&…

华三(HCL)和华为(eNSP)模拟器共存安装手册

接上章叙述,解决同一台PC上同时部署华三(HCL)和华为(eNSP)模拟器。原因就是华三HCL 的老版本如v2及以下使用VirtualBox v5版本,可以直接和eNSP兼容Oracle VirtualBox,而其他版本均使用Oracle VirtualBox v6以上的版本,…

滚动的轮胎css3动画案例

目录 一、介绍 二、思路分析 三、轮胎制作 1.HTML代码 2.css 3.运行结果 四、轮胎动画 五、路的制作 1.HTML 2.css 六、运行结果 七、结束语 一、介绍 本节内容我们来制作一个轮胎滚动的案例,可以当作一个loading,其中我们的轮胎是纯css完成的,…

PointNet++论文复现

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…