2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

更快、更强、更经济!超越GraphRAG的大模型RAG系统LightRAG开源啦!

发布日期:2024-10-31 12:28:16 浏览次数: 3458
作者:AI 博物院

微信搜一搜,关注“AI 博物院”

在这个信息爆炸的时代,我们每天都被大量的数据和信息所包围。对于企业和研究人员来说,如何从这海量的信息中迅速地找到自己需要的针对性数据,已经成为了一个亟待解决的问题。幸运的是,香港大学的研究团队最近推出的LightRAG系统,为我们提供了一个新的解决方案。

LightRAG系统是基于RAG(Retrieval-Augmented Generation)的开源技术,它通过引入先进的双层检索范式和基于图的数据结构,大大提升了信息检索的全面性和效率。更为重要的是,它能够快速适应新数据,这在今天这个信息快速更新换代的时代尤为关键。

核心创新:基于图的数据结构

与传统的RAG系统相比,LightRAG的一个显著优势在于其基于图的数据结构。这种结构能够有效地捕捉数据中实体之间的复杂关系,从而使检索结果更加精确。举个例子,在医学领域,LightRAG能够识别“心脏病”与“心内科医生”之间的关系,这种精准度是传统方法难以实现的。

LightRAG 增强了分段检索系统 将文档转换为更小、更易于管理的片段。此策略允许快速 识别和访问相关 信息,而无需分析整个文档。接下来,我们利用LLMs 来识别和 提取各种实体(例如 名称、日期、位置和事件)以及它们之间的关系。这通过此收集的信息进程将用于创建一个全面的知识图谱,该图谱突出显示跨整个文档集合。基于图形的文本索引中使用的函数 paradigm 的描述如下:

高效与经济兼备

在检索效率和资源消耗上,LightRAG同样表现出色。它通过减少不必要的计算和API调用,有效应对大量的信息查询请求,同时保持资源使用的经济性。在实际应用场景中,这意味着LightRAG能够快速更新并保持高效,即使是在资源受限的情况下也能够稳定运行。

灵活适应动态数据

LightRAG的设计还巧妙地解决了如何适应快速变化的外部数据库的问题。通过增量更新机制,系统只需对新增数据进行索引和合并,避免了对整个数据库的重新处理。这一策略不仅提升了系统的灵活性,也使得LightRAG能够在各种动态环境中稳定运行。

实验验证:超越现有模型

研究团队对LightRAG进行了详尽的实验评估,结果显示,在全面性和多样性等多个维度上,LightRAG显著优于目前主流的RAG模型。这一结果不仅验证了图结构在信息检索中的有效性,也为未来开发更多强大的AI模型提供了有力的参考。

Agriculture
CS
Legal
Mix


NaiveRAGLightRAGNaiveRAGLightRAGNaiveRAGLightRAGNaiveRAGLightRAG
Comprehensiveness32.69%67.31%35.44%64.56%19.05%80.95%36.36%63.64%
Diversity24.09%75.91%35.24%64.76%10.98%89.02%30.76%69.24%
Empowerment31.35%68.65%35.48%64.52%17.59%82.41%40.95%59.05%
Overall33.30%66.70%34.76%65.24%17.46%82.54%37.59%62.40%

RQ-RAGLightRAGRQ-RAGLightRAGRQ-RAGLightRAGRQ-RAGLightRAG
Comprehensiveness32.05%67.95%39.30%60.70%18.57%81.43%38.89%61.11%
Diversity29.44%70.56%38.71%61.29%15.14%84.86%28.50%71.50%
Empowerment32.51%67.49%37.52%62.48%17.80%82.20%43.96%56.04%
Overall33.29%66.71%39.03%60.97%17.80%82.20%39.61%60.39%

HyDELightRAGHyDELightRAGHyDELightRAGHyDELightRAG
Comprehensiveness24.39%75.61%36.49%63.51%27.68%72.32%42.17%57.83%
Diversity24.96%75.34%37.41%62.59%18.79%81.21%30.88%69.12%
Empowerment24.89%75.11%34.99%65.01%26.99%73.01%45.61%54.39%
Overall23.17%76.83%35.67%64.33%27.68%72.32%42.72%57.28%

GraphRAGLightRAGGraphRAGLightRAGGraphRAGLightRAGGraphRAGLightRAG
Comprehensiveness45.56%54.44%45.98%54.02%47.13%52.87%51.86%48.14%
Diversity19.65%80.35%39.64%60.36%25.55%74.45%35.87%64.13%
Empowerment36.69%63.31%45.09%54.91%42.81%57.19%52.94%47.06%
Overall43.62%56.38%45.98%54.02%45.70%54.30%51.86%48.14%

简单尝鲜

安装

源码安装(推荐)

cd LightRAG
pip install -e .

通过PyPI安装

pip install lightrag-hku

准备工作

因为我使用的是OpenAI, 所以设置对应的环境变量export OPENAI_API_KEY="sk-...",

这里我的测试集用的是西游记的节选,地址是:https://libart.lyu.edu.cn/2010/1202/c1449a24647/page.htm

样例代码

lightrag目前支持4种查询模式:

  1. naive
  2. local
  3. global
  4. hybrid
import os
from lightrag import LightRAG, QueryParam
from lightrag.llm import gpt_4o_mini_complete, gpt_4o_complete

#########
# Uncomment the below two lines if running in a jupyter notebook to handle the async nature of rag.insert()
# import nest_asyncio
# nest_asyncio.apply()
#########

WORKING_DIR = "./books"


if not os.path.exists(WORKING_DIR):
os.mkdir(WORKING_DIR)

rag = LightRAG(
working_dir=WORKING_DIR,
llm_model_func=gpt_4o_mini_complete# Use gpt_4o_mini_complete LLM model
# llm_model_func=gpt_4o_complete# Optionally, use a stronger model
)

with open("./book.txt") as f:
rag.insert(f.read())

# Perform naive search
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="naive")))

# Perform local search
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="local")))

# Perform global search
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="global")))

# Perform hybrid search
print(rag.query("What are the top themes in this story?", param=QueryParam(mode="hybrid")))

当然,你也可以选择本地model, 比如使用Hugging Face的模型:

from lightrag.llm import hf_model_complete, hf_embedding
from transformers import AutoModel, AutoTokenizer

# Initialize LightRAG with Hugging Face model
rag = LightRAG(
working_dir=WORKING_DIR,
llm_model_func=hf_model_complete,# Use Hugging Face model for text generation
llm_model_name='meta-llama/Llama-3.1-8B-Instruct',# Model name from Hugging Face
# Use Hugging Face embedding function
embedding_func=EmbeddingFunc(
embedding_dim=384,
max_token_size=5000,
func=lambda texts: hf_embedding(
texts,
tokenizer=AutoTokenizer.from_pretrained("sentence-transformers/all-MiniLM-L6-v2"),
embed_model=AutoModel.from_pretrained("sentence-transformers/all-MiniLM-L6-v2")
)
),
)

或者使用Ollama模型:

from lightrag.llm import ollama_model_complete, ollama_embedding

# Initialize LightRAG with Ollama model
rag = LightRAG(
working_dir=WORKING_DIR,
llm_model_func=ollama_model_complete,# Use Ollama model for text generation
llm_model_name='your_model_name', # Your model name
# Use Ollama embedding function
embedding_func=EmbeddingFunc(
embedding_dim=768,
max_token_size=8192,
func=lambda texts: ollama_embedding(
texts,
embed_model="nomic-embed-text"
)
),
)

LightRAG的优缺点

1、解决的问题:

  • 全面信息理解:通过多跳子图的全局信息提取,能在多领域复杂查询中表现出色。

  • 检索效率高:相比传统文本分块遍历方法,利用图和向量的集成,大幅减少检索时间和计算开销。

  • 快速适应新信息:增量更新算法使系统能及时整合新数据,保持实时性和有效性。

2、缺点:

  • 检索方式:无法自动判断query为细节问题或抽象性问题,只有使用LLM才能做出自动化判断。

3、与GraphRAG的不同点:

    • 架构设计:LightRAG专注于图结构的向量化实现,避免了GraphRAG的社区遍历。
    • 检索方式:LightRAG采用双层检索框架,通过向量化的关键词匹配,实现局部和全局信息的高效整合,降低了计算和存储开销。

总结

LightRAG和GraphRAG都利用图结构来增强RAG的效果,但它们在实现方式检索策略适用场景上有显著差异。GraphRAG采用模块化社区结构分层回答策略,更适合于全局性理解和多层次的复杂问题分析;而LightRAG则侧重于向量化图索引增量更新机制,适用于高效、动态的数据环境。用户可以根据具体的应用需求选择合适的架构,以实现最优的检索和回答效果。

在实验中,微软开源的GraphRAG表现出较低的效率,正如论文中所提到的,它需要大量资源,难以支持大型知识库的工程应用,且检索速度较慢。而LightRAG的资源消耗较少,检索效率相对更高,尽管两者的检索效果可能相差不大,但LightRAG在实际工程中更具实用性。

但是个人觉得,RAG在实际应用中仍需根据情况不断优化,完全依赖LightRAG也存在局限性。关键在于借鉴LightRAG的优化思路,并将其灵活应用于实际场景。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅