LightRAG 是一种基于 GraphRAG 的创新方法,它将知识图谱的属性与基于嵌入的检索系统相结合,使其既快速又高效,并取得了 SOTA 结果。LightRAG 是由香港大学的 Zirui Guo 等人开发,它通过图形基础索引和双层检索框架,提高了检索效率并简化了知识更新过程。相较于微软的 GraphRAG,它减轻了 GraphRAG 中基于社区的索引和遍历所带来的计算开销和运行缓慢的挑战。
尤其是最近更新更是带来了一些非常实用的功能:
可以说这些功能是非常实用了
我们之前已经介绍了很多关于微软 GraphRAG 的博客,感兴趣的同学可以翻一翻。那么微软 GraphRAG 的缺点是什么呢?
与 Naive RAG 相比,LightRAG 提供:
LightRAG 解决了 GraphRAG 的两个主要痛点,
如下图所示,它采用提取、P、去重三步索引。
image-20241127115108159
更具体的代码索引流程如下图所示。
LightRAG Indexing Flowchart
为支持多样化查询类型,LightRAG 管道采用了双层检索策略,能够同时满足具体查询和抽象查询的需求,为用户提供精准且相关的定制化响应:
通过将图结构与向量表示相结合,LightRAG 能够深入理解实体间的相互关系。这种协同方式让检索算法能有效利用局部和全局关键词,从而简化搜索流程并提升结果的相关性。
这种方法不仅优化了检索效率,还能兼顾细节信息和宏观视角,为用户提供更全面的答案。
关键词提取,LightRAG 中有 Prompts 示例。
示例 1:
查询:"国际贸易如何影响全球经济稳定?"
################
输出:
Output:
{{
"high_level_keywords": ["国际贸易", "全球经济稳定", "经济影响"],
"low_level_keywords": ["贸易协定", "关税", "货币汇率", "进口", "出口"]
}}
更为具体的代码流程如下图所示。
LightRAG Retrieval and Querying Flowchart
第三方基于 Streamlit 实现了一版开源的 LightRAG GUI,代码地址:https://github.com/aiproductguy/lightrag-gui/blob/demo2/notebooks/streamlit-app-lightrag.py。
[1]
LightRAG Gui: https://lightrag-gui.streamlit.app/
[2]
源码开源: https://github.com/aiproductguy/lightrag-gui/blob/main/notebooks/streamlit-app-lightrag.py