香港大学神作 LightRAG 横空出世!AI 检索生成系统革命,秒懂复杂信息,动态数据无所遁形!

news/2024/10/15 21:21:41/

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

微信订阅号|搜一搜:蚝油菜花

在这里插入图片描述

🚀 快速阅读

  1. LightRAG 是一种基于图结构索引和双层检索机制的检索增强生成系统,旨在提升大型语言模型在信息检索中的准确性和效率。
  2. 系统能捕捉实体间的复杂依赖关系,全面理解信息,处理具体和抽象查询,确保用户获得既相关又丰富的响应。
  3. LightRAG 具备快速适应新数据的能力,在动态环境中保持高效和准确,基于增量更新算法及时整合新数据,无需重建整个知识库。

正文(附运行示例)

RAG__15">LightRAG 是什么

LightRAG 是由香港大学研究团队开发的一种检索增强生成(Retrieval-Augmented Generation, RAG)系统。简单来说,这个系统通过结合图结构索引和双层检索机制,大大提高了大型语言模型在信息检索方面的准确性和效率。LightRAG 能很好地捕捉实体之间的复杂关系,全面理解信息,无论是具体还是抽象的查询都能处理,确保用户得到既相关又丰富的回答。此外,LightRAG 还能快速适应新数据,在动态环境中保持高效和准确,通过增量更新算法及时整合新数据,而无需重建整个知识库。

RAG__19">LightRAG 的主要功能

  • 增强信息检索: LightRAG 能结合外部知识源,提升大型语言模型在信息检索中的准确性和相关性。
  • 处理复杂查询: 系统能理解和处理涉及多个实体和复杂关系的查询。
  • 生成准确回答: 基于检索到的信息,生成与用户查询紧密相关的详细回答。
  • 适应动态数据: 快速整合新数据,确保系统在信息频繁更新的环境中保持准确性和时效性。
  • 提高检索效率: 通过优化的检索机制,减少检索时间和计算资源消耗。

RAG__27">LightRAG 的技术原理

  • 图结构索引: 使用图结构来索引文本数据,节点代表实体,边代表实体间的关系,这样可以更好地捕捉和表示复杂的依赖关系。
  • 双层检索系统: 结合低层次(具体实体和属性)和高层次(广泛主题和概念)的检索策略,满足不同类型的查询需求。
  • 增量更新算法: 当新数据到来时,系统会增量式地更新知识图谱,无需从头开始重建,提高了数据处理的效率。
  • 实体和关系提取: 利用大型语言模型识别文本中的实体和关系,生成键值对,优化检索过程。

RAG_34">如何运行 LightRAG

安装

  • 从源代码安装
cd LightRAG
pip install -e .
  • 从 PyPI 安装
pip install lightrag-hku

快速开始

  1. 设置 OpenAI API 密钥在环境变量中:export OPENAI_API_KEY="sk-...".
  2. 下载示例文本 “A Christmas Carol by Charles Dickens”
curl https://raw.githubusercontent.com/gusye1234/nano-graphrag/main/tests/mock_data.txt > ./book.txt
  1. 使用以下 Python 代码片段:
from lightrag import LightRAG, QueryParamrag = LightRAG(working_dir="./dickens")with open("./book.txt") as f:rag.insert(f.read())# 执行朴素搜索
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="naive")))# 执行本地搜索
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="local")))# 执行全局搜索
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="global")))# 执行混合搜索
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="hybird")))

四种搜索方式之间的区别

搜索方式描述适用场景
朴素搜索 (Naive)直接根据查询关键词进行搜索,不考虑实体间的关系。适用于简单、直接的查询,不需要深入理解实体间的关系。
本地搜索 (Local)在实体及其直接相邻的实体之间进行搜索,考虑实体间的基本关系。适用于需要理解实体间直接关系的查询,但不需要全局视角。
全局搜索 (Global)在整个知识图谱中进行搜索,考虑实体间的全局关系。适用于需要全局视角,理解实体间复杂关系的查询。
混合搜索 (Hybird)结合本地搜索和全局搜索的优点,既考虑实体间的直接关系,也考虑全局关系。适用于需要全面理解实体间关系的查询,适用于大多数场景。

批量插入

rag.insert(["TEXT1", "TEXT2",...])

增量插入

rag = LightRAG(working_dir="./dickens")with open("./newText.txt") as f:rag.insert(f.read())

资源

  • 项目官网:https://lightrag.github.io/?utm_source=ai-bot.cn
  • GitHub 仓库:https://github.com/HKUDS/LightRAG
  • arXiv 技术论文:https://arxiv.org/pdf/2410.05779

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

微信订阅号|搜一搜:蚝油菜花


http://www.ppmy.cn/news/1539621.html

相关文章

Python基础知识9

Python推导式 1.Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。 2.Python 支持各种数据结构的推导式: 列表(list)推导式字典(dict)推导式集合(set)推导式元组(tuple)推导式 列表推导式 1.列表推导式格…

PHP DateTime基础用法

PHP DateTime 的用法详解 一、引言 在开发 PHP 应用程序时,处理日期和时间是一个至关重要的任务。PHP 提供了强大的日期和时间处理功能,其中 DateTime 类是最常用的工具之一。DateTime 类提供了丰富的方法来创建、格式化、计算和比较日期时间&#xff…

QT QML 练习8-Simple Transformations

简单的转换(Simple Transformations) 转换操作改变了一个对象的几何状态。QML元素对象通常能够被平移,旋转,缩放。下面我们将讲解这些简单的操作和一些更高级的用法。 我们先从一个简单的转换开始。用下面的场景作为我们学习的开始…

C++20那些事之constexpr与comma expr

C20那些事之constexpr与comma expr C20 引入了多项新特性,进一步增强了编译时能力和代码安全性。本文将深入探讨两项重要的变更:constexpr 函数中的异常处理以及下标运算符中逗号运算符的弃用。 注:懒人版,本节的代码示例与相关文…

【氮化镓】低温对p-GaN HEMT迁移率、阈值电压和亚阈值摆幅的影响

本期分享一篇低温对p-GaN HEMT 迁移率、阈值电压和亚阈值摆幅影响进行表征和建模的研究论文。文章作者Shivendra Kumar Singh、Thien Sao Ngo、Tian-Li Wu(通讯作者)和Yogesh Singh Chauhan,分别来资源中国台湾阳明交通大学国际半导体技术学院、印度理工学院坎普尔分校电气工…

多层嵌套json字符串(jsonStr)写入redis

1、连接redis Jedis jedis new Jedis("localhost", 6379); 2、将字符串转为json格式 JSONObject jsJSONObject.fromObject(jsonStr); 3、对json格式进行解析 4、将json写入redis public static void RedisSet(JSONObject js,Jedis js01){ //获取json中的所有ke…

大模型推理框架选型调研

文章目录 背景选型评估指标推理性能推理优化支持程度易用性与学习成本可持续维护性技术兼容性 技术备选老牌新贵 分析TensorRT-LLMNvidia Triton Inference ServerTensorRT-LLM 与 vLLM 对比 建议与结论 背景 公司需要新增了 GPU 机器自部署大模型服务用于支撑 AI 业务。目前市…

边缘计算网关助力软件开发商轻松对接各类工业硬件设备

近年来,工业互联网蓬勃发展,软件开发商面临着如何快速、高效地对接种类繁多的工业硬件设备的巨大挑战。传统方法不仅开发周期长、成本高,而且维护难度大。OkEdge边缘计算网关的出现,为软件开发商提供了一种全新的解决方案&#xf…