专栏名称: 张铁蕾
老程序猿,全栈攻城狮,CTO,与你一起讨论技术干货和个人成长。
51好读  ›  专栏  ›  张铁蕾

从GraphRAG看信息的重新组织

张铁蕾  · 公众号  · 互联网短视频 科技自媒体  · 2024-09-01 09:00

主要观点总结

文章讨论了GraphRAG作为一种新技术路线的优势和不足,介绍了其在LLM时代信息重新组织的方式,以及GraphRAG的建模方式对传统方式的改进和其对信息组织的细粒度处理方式。文章还讨论了GraphRAG目前面临的技术问题及其发展前景。

关键观点总结

关键观点1: GraphRAG已经成为了一种新的技术路线,改变了信息处理的传统方式。

文章首先介绍了GraphRAG的出现和重要性。

关键观点2: 在LLM时代,信息可以以更细粒度的方式被重新组织。

GraphRAG通过将数据压缩进模型,可以更精细地组织信息。

关键观点3: GraphRAG将重点放在LLM外部的信息重组,提高了对信息的控制能力并使其成为人可以理解的形式。

这是GraphRAG的一个重要创新点。

关键观点4: GraphRAG面临一些关键问题,如建模的合理性、图谱规模和人为可控的建图方式等。

这些关键问题仍需要未来研究和解决。

关键观点5: 文章还提供了GraphRAG的一些技术细节,如Indexer模块的数据处理流程等。

这些技术细节有助于读者深入理解GraphRAG的实现方式。


正文

GraphRAG俨然已经成为了一种新的技术路线;虽然类似的技术还有很多不成熟的地方。前几天发现,学术界已经有关于GraphRAG的综述出现了[1],链接在文末,供大家参考。

不过今天我们要讨论的重点不是这个。我想跟大家聊一聊:沿着GraphRAG的思路,在LLM的时代,信息可能以什么样的方式被重新组织?

数据的两种类型及处理路径

在一个数字化的世界里,数据有两种:一种是给人看的,一种是给机器看的。

给人看的数据,比如新闻、网页、论文、专利文本。这些数据是由人生产的,生产出来的目的也是给人看的,用于传递信息或知识。所以,它们天然就是无结构的free text。在LLM出现之前,计算机系统对这些信息进行直接处理,是很困难的。

至于另一种给机器看的数据,指的是传统计算机程序可以直接处理的结构化数据,比如xml、json、关系表格,等等。它们在计算机程序之间传递信息或指令,支撑整个系统的运转。这些数据通常有严格的schema的约束,大部分由机器产生,也由机器消费。

现在,我们把关注点放在前一类数据上。由于这部分数据是为了给人看的,所以如果涉及到对信息进行处理,就需要大量的人力参与其中。

具体需要做什么处理呢?对于一个严肃的信息获取场景来说,抽象来看,人们通常需要对数据进行三个阶段的处理:

  • 检索;

  • 提取;

  • 整合。

举个例子,假设你的主管布置了一项任务,要求你针对某项技术调研一下业界方案。第一步,你肯定会去互联网上 检索 各种相关资料,查阅业界各大公司的官网、技术博客,查阅相关论文,以及检索行业会议的信息。第二步,从这些资料中 提取 当前关注的技术方案在各个维度的 关键信息 ,比如各个方案的技术原理、适用范围、核心难点、优势、局限性,等等。第三步,对所有这些关键信息进行 整合 ,得到最终结论。这个「最终结论」,一般来说是简短的、高度概括的,而且是自然语言的,给人看了用于进一步决策的。

以前的信息系统,只能辅助完成第一步的检索工作。后面的提取、整合,仍然主要是人的工作。但是LLM出现之后,后面这两步也有希望由计算机程序来处理了。

信息的组织形式

为了对海量的信息进行检索和处理,信息系统需要对数据做某种形式的提前组织。

搜索引擎算是一种传统的技术,它出于检索的目的,基于关键词将文本数据组织成倒排索引的形式。这种数据组织形式,简单可解释。

但是,这种关键词索引的数据组织形式,只能支撑粗粒度的「检索」任务。数据的存储单元,是一个完整的document。比如,一个网页是一个document,一篇新闻报道是一个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模块则负责利用建好的图谱执行问答任务。

这里隐含着一些思路的转变。







请到「今天看啥」查看全文