港大开源大模型 RAG 系统 LightRAG 技术解析
随着大语言模型(LLM)自身能力的日趋完善,很多学者的目光聚焦于如何帮助大模型处理和感知大规模的私有数据库。RAG(Retrieval-Augmented Generation)系统采用检索方法,从私有数据库中高效、准确地召回与查询高度相关的信息内容,用以增强通用大模型处理查询的语境知识和生成效果。
现有 RAG 方法基于信息索引和检索算法,在整合外部知识源方面已经取得了一定的成效,然而这些方法普遍存在以下问题亟待解决:
- 当前方法大多采用扁平的向量化表示方法,这限制了模型对外部数据的理解和检索的准确性,影响了检索的效果。
- 现有工作缺乏对实体间相互联系的充分探索,导致面对复杂的高级问题时无法有效结合多个方面的信息进行联系和总结。
为了应对这些问题,北京邮电大学、香港大学的研究人员提出了一种使用图结构数据进行增强的 RAG 系统——LightRAG,利用图结构对复杂关系的准确描绘,LightRAG 能够有效地解决上述问题。
论文地址:https://arxiv.org/abs/2410.05779
项目地址:https://github.com/HKUDS/LightRAG
为了实现系统的性能和效率,LightRAG 的设计聚焦于解决以下挑战:
- 信息检索的全面性:RAG 系统应当能够全面考虑查询和外部知识在不同层级的语义,既能够感知具体的实体,也能够理解抽象概念。
- 信息检索的效率:在保证检索准确性的情况下,能够进行高效的信息检索,是 RAG 系统面对海量查询请求时的关键能力。
- 对新数据的快速适应能力:在实际使用过程中,外部数据库常常发生持续不断的演化,如何让 RAG 系统保持灵活的更新能力,是一个重要问题。
为了解决上述挑战,LightRAG 系统具有以下关键设计。
基于图数据结构的文本索引
LightRAG 首先对外部数据库进行预处理,以利于处理查询时的高效性和准确性,这一过程被称为文本索引。为了充分理解数据库中实体间的相互联系,这一过程采用了图的数据结构进行增强。
总体来说,这一过程包含以下几个重要阶段:
1. 实体和关系抽取
为了获取索引图中的基本元素,LightRAG 首先使用大语言模型处理原始文本数据,识别出其中具有固定语义的实体、以及它们之间的关系。例如在一篇医学文章中识别出「心脏病」以及「心内科医生」这两种实体,并指出两者之间的治疗关系。
通过这一过程,首先可以很好地提取出数据中关键的细粒度语义元素,方便之后的信息检索;其次,这种关系结构可以很好地将原始数据中的信息联系起来,加强 RAG 系统对实体间联系的理解和感知,提升检索的全面性。
2. 用于检索的键值对生成
通过上述步骤获得了图数据的骨架后,LightRAG 继续使用大语言模型方法,生成每个实体和关系的检索键和检索值。其中检索键是较短的文本,用于与查询文本的语义进行匹配。
节点的检索键通常是他的文本名称本身,而关系的检索键则通过提示大语言模型的方法生成,反应了该关系对关联的抽象语义。检索值则为相对大段的文本描述,是检索后用于增强通用大模型回答查询的细节信息。通过这种方法,LightRAG 的检索既能够感知丰富具体的语义信息以提升准确性,又可以通过键值进行快速索引和数据获取。
3. 实体和关系去重
对较长的外部文本数据,上述过程会重复提取一些相同或者高度相似的实体和关系。为了进一步提升 RAG 系统的效率,接下来通过提示大语言模型来进行实体和关系的去重,得到最终的图结构索引。
4. 增量更新
为了应对外部数据库体量的不断扩大,LightRAG 基于上述过程设计了增量方法。通过采用同样的实体和关系抽取、键值对生成、图结构元素的去重和合并过程,LightRAG 可以避免对全部数据进行重新处理,而只进行增量式的信息索引和合并,大大提升了 RAG 系统的适应能力。
LightRAG 的双层检索范式
为了提升模型的全面性,LightRAG 充分考虑到了具体查询和抽象查询这两类查询请求的不同。前者通常明确关联于实际的实体,需要检索回相关的实体并结合问题进行总结。而后者主要设计抽象的概念,需要准确识别出具象实体和抽象概念之间的联系,才能得到需要的信息进行回答。
对应这两类查询请求,LightRAG 采用了一种双层检索范式:在底层检索中,LightRAG 基于实体包含具象语义的键值进行检索和召回;而在高层检索中,LightRAG 首先识别出查询请求所涉及的抽象概念,以将其与关系中的抽象检索键进行匹配。
这种双层检索范式的优势在于,它通过结合特定查询和抽象查询的处理方式以及低级别检索和高级别检索策略,并整合图和向量进行检索,从而能够有效适应多样化的查询类型。这使得它不仅可以精确检索到与特定实体相关的详细信息,还能获取更广泛主题的相关知识,进而确保系统能够为用户提供全面且相关的回答,满足不同用户的需求。


