游乐游手机版
首页/AI热点日报/热点详情

结合GraphRAG与Ollama的上市公司知识图谱LLM分析实战教程

类型:热点整理2026-05-30
微软开源GraphRAG,将基于图谱的检索增强生成从局部匹配升级到全局理解。该方法通过构建实体知识图谱与社区摘要,处理全局性查询聚焦摘要任务,流程包括文本块提取、元素实例识别、社区检测与摘要生成,可结合本地Ollama分析上市公司数据。

首先,我们来关注一项最新动态——微软再次开源了GraphRAG。从DeepSpeed到Autogen,再到现在的GraphRAG,微软在工具层面几乎已经集齐了模型训练、智能体以及RAG这三大核心组件。此次开源的核心思路,是将基于知识图谱的检索增强生成能力,从局部匹配提升至全局理解,这一技术方向颇具深意。

这篇论文重点探讨了一个核心问题:人类在处理复杂任务时,通常需要阅读并理解大量文档,而大语言模型(LLM)在自动化这类场景中其实拥有巨大潜力。然而,现有的RAG方法在面对需要覆盖整个语料库的全局性问题时,往往显得力不从心。这类问题本质上属于查询聚焦摘要(QFS)任务,而不仅仅是简单的局部文本检索。因此,作者提出了一种基于图的RAG方法,通过构建实体知识图谱和社区摘要,使RAG系统能够处理更广泛的问题,并消化更大规模的源文本。

GraphRAG+Ollama 结合上市公司知识图谱的LLM分析

那么,GraphRAG具体是如何运作的?让我们一步步梳理它的处理流程。

源文档到文本块

第一步,是将源文档切分为适合处理的文本块。文本块的粒度是一个关键设计因素——块过大,能减少LLM调用次数,但可能因上下文窗口的召回率下降而影响提取效果;块过小,则可能增加不必要的计算开销。作者通过实验展示了不同文本块大小对实体引用检测的影响,这一平衡值得仔细权衡。

文本块到元素实例

接下来,利用多部分LLM提示,从文本块中识别并提取图节点和边的实例。具体而言,需要识别所有实体及其名称、类型、描述,以及实体之间的关系——包括源实体、目标实体和关系描述。这里有一个亮点:通过向LLM提供少量领域示例,可以定制提取过程,以适应科学、医学或法律等特定领域的知识。为了提高准确性,作者还采用了多轮“gleanings”方法——先让LLM评估是否所有实体都已提取,若发现遗漏则继续补充,这样就能在不引入噪声的前提下使用较大的文本块。

元素实例到元素摘要

提取出实体、关系和主张的实例后,下一步是将这些实例转化为每个图元素的描述性文本块。简单来说,就是对LLM生成的摘要再做一次精炼,确保每个图元素都拥有统一的描述。需要注意的是,尽管LLM可能以不同格式提取同一实体的引用,但通过后续的社区检测和总结,可以在图索引中对这些实体形成一致的表示。

元素摘要到图社区

到了这一步,之前构建好的索引被建模为一个同质无向加权图——实体节点通过关系边连接,边的权重表示检测到的关系实例的归一化计数。随后,使用社区检测算法(如Leiden算法)将图划分为不同的社区,社区内的节点连接更为紧密。这种层次化的社区结构,为全局摘要提供了一种分而治之的思路。

图社区到社区摘要

接下来,为Leiden算法生成的每个社区创建报告式的摘要。这些摘要不仅能帮助理解数据集的全局结构和语义,还能直接用于回答全局查询。具体做法是:对于叶级社区,元素摘要按优先级顺序依次填入LLM上下文窗口,直到达到标记限制;对于更高级别的社区,如果所有元素摘要都能塞进上下文窗口,就直接进行总结,否则用较短的社区摘要替换较长的元素摘要。

社区摘要到社区答案再到全局答案

最后一步,在收到用户查询后,进入多阶段生成过程:先准备社区摘要,生成中间答案,再汇总这些答案以产生最终的全局答案。由于社区结构是分层的,不同层次的社区摘要可用于回答不同粒度的查询,作者也评估了各层次的回答效果。

GraphRAG公司分析实战

理论部分讲解完毕,接下来看看如何用GraphRAG配合本地Ollama分析上市公司数据。下面以达梦数据的招股说明书为例进行演示。

首先下载GraphRAG代码:

git clone https://github.com/microsoft/graphrag.git

同时可以下载GraphRAG的UI工具:

git clone https://github.com/severian42/GraphRAG-Ollama-UI.git

按照教程安装好所需包后,在settings.yaml中设置好ollama的api_base和model,就可以将GPT-4替换成本地LLM。如果运行效率较慢,也可以换成qwen、deepseek这些性价比较高的国产模型。

将文本材料放在./ragtest/input目录下——这里使用的是达梦数据的招股说明书。然后运行以下命令构建知识图谱:

python -m graphrag.index --init --root ./ragtest

运行时间较长,用本地4090跑llama3:8b模型大约需要一小时左右。这里有一个需要注意的坑点:GraphRAG-Ollama-UI在UI端也可以执行indexing命令,但在Windows下会遇到编码问题,建议直接在命令行运行。

运行结束后,会生成知识图谱文件,可以直接在前端查看。系统已自动构建好达梦数据的知识图谱,在与大模型对话时,可以结合图谱内容和RAG机制来提升模型效果。

GraphRAG+Ollama 结合上市公司知识图谱的LLM分析

大模型对话展示:

来源:https://www.53ai.com/news/RAG/2024071947315.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。