文章讨论了GraphRAG作为一种新技术路线的优势和不足,介绍了其在LLM时代信息重新组织的方式,以及GraphRAG的建模方式对传统方式的改进和其对信息组织的细粒度处理方式。文章还讨论了GraphRAG目前面临的技术问题及其发展前景。
这些技术细节有助于读者深入理解GraphRAG的实现方式。
GraphRAG俨然已经成为了一种新的技术路线;虽然类似的技术还有很多不成熟的地方。前几天发现,学术界已经有关于GraphRAG的综述出现了[1],链接在文末,供大家参考。
不过今天我们要讨论的重点不是这个。我想跟大家聊一聊:沿着GraphRAG的思路,在LLM的时代,信息可能以什么样的方式被重新组织?
数据的两种类型及处理路径
在一个数字化的世界里,数据有两种:一种是给人看的,一种是给机器看的。
给人看的数据,比如新闻、网页、论文、专利文本。这些数据是由人生产的,生产出来的目的也是给人看的,用于传递信息或知识。所以,它们天然就是无结构的free text。在LLM出现之前,计算机系统对这些信息进行直接处理,是很困难的。
至于另一种给机器看的数据,指的是传统计算机程序可以直接处理的结构化数据,比如xml、json、关系表格,等等。它们在计算机程序之间传递信息或指令,支撑整个系统的运转。这些数据通常有严格的schema的约束,大部分由机器产生,也由机器消费。
现在,我们把关注点放在前一类数据上。由于这部分数据是为了给人看的,所以如果涉及到对信息进行处理,就需要大量的人力参与其中。
具体需要做什么处理呢?对于一个严肃的信息获取场景来说,抽象来看,人们通常需要对数据进行三个阶段的处理:
举个例子,假设你的主管布置了一项任务,要求你针对某项技术调研一下业界方案。第一步,你肯定会去互联网上
检索
各种相关资料,查阅业界各大公司的官网、技术博客,查阅相关论文,以及检索行业会议的信息。第二步,从这些资料中
提取
当前关注的技术方案在各个维度的
关键信息
,比如各个方案的技术原理、适用范围、核心难点、优势、局限性,等等。第三步,对所有这些关键信息进行
整合
,得到最终结论。这个「最终结论」,一般来说是简短的、高度概括的,而且是自然语言的,给人看了用于进一步决策的。
以前的信息系统,只能辅助完成第一步的检索工作。后面的提取、整合,仍然主要是人的工作。但是LLM出现之后,后面这两步也有希望由计算机程序来处理了。
信息的组织形式
为了对海量的信息进行检索和处理,信息系统需要对数据做某种形式的提前组织。
搜索引擎算是一种传统的技术,它出于检索的目的,基于关键词将文本数据组织成倒排索引的形式。这种数据组织形式,简单可解释。
但是,这种关键词索引的数据组织形式,只能支撑粗粒度的「检索」任务。数据的存储单元,是一个完整的document。比如,一个网页是一个document,一篇新闻报道是一个document,一篇论文是一个document。我们可以根据关键词,定位到若干个document。但有两个遗留问题没有解决:
于是,有些人尝试从document中预先把有用的信息提取出来,做成结构化的数据。一般有两种形式:一种是知识图谱,按照实体和实体关系来组织信息,类似企查查、天眼查组织企业数据的形式;另一种是表格形式,常见的例子是金融领域的一些应用,把各个公司的历史财务信息(营业额、利润、资产负债、现金流量等)、分红派息行为、机构持股变动等信息,汇总成表格呈现给投资者。
不管是知识图谱,还是表格数据,它们都属于「给人看」的结构化数据。把这些数据生产出来,需要耗费大量的人力(机器可以辅助一部分),因此,这种人工组织信息的方式,只能在商业价值高的一些领域内小范围使用。
LLM的出现,改变了这一切。它把整个互联网上公开可访问的文本信息,压缩进了模型当中。可以想象一下,LLM把信息重新组织、重新打散,按照某种难以理解的方式,存储在了数十亿甚至数百亿个参数中。它组织信息的粒度更细。前面讲的倒排索引,组织信息的粒度是document;知识图谱和表格,组织信息的粒度是人能够理解的实体概念和实体关系;而LLM组织信息的粒度,则是一个个的token。
已经有不少研究人员在研究LLM内部的数据表示了,而且取得了一些进展。比如,Anthropic的一个研究表明,他们从Claude 3 Sonnet模型中,提取出了数百万个特征[2]。但是,LLM内部对于信息的组织形式,整体上看仍然是个黑盒。
GraphRAG带来的启示
本来人们对LLM的期望是很高的,认为它可能会颠覆知识产业。从逻辑上讲,这么想是有些道理的。既然LLM已经吃进去了互联网上所有的公开数据,将信息在内部做了重新组织,相当于学到了数据里面所表示的知识,自然可以解答信息或知识层面的「任何」问题。我们前面提到的检索、提取、整合,这三个阶段的信息处理过程,理论上LLM似乎是能端到端地做掉的。
但是,LLM在能力上目前还有两个关键的不足:一个是推理能力 (reasoning) 还达不到真实业务场景的要求;另一个是幻觉问题,这是一个顽疾。这些不足让LLM难以单独成为端到端的解决方案。
微软提出的GraphRAG方案[3],提供了一个新的思路。GraphRAG整个系统可以分成两个大的模块:Indexer和Query。Indexer负责从非结构化的文本中提取实体和实体关系,形成结构化的图谱,并支持层次化建图;Query模块则负责利用建好的图谱执行问答任务。
这里隐含着一些思路的转变。