我构建了一个开源知识图谱管道,结合混合检索以改进LLM多跳推理 [P]
摘要
一个开源的全栈管道,从原始文本构建知识图谱,使用混合搜索(密集向量+稀疏+图遍历)解决LLM中的多跳推理问题,并通过倒数排名融合和交叉编码器对结果进行重排序。
大家好,我构建了一个开源的全栈管道(Django + React),它从原始文本构建知识图谱,检测主题社区,并使用混合搜索解决标准向量检索中的“中间丢失”问题。**管道流程:** 1. **摄入与分块:** 对原始文本进行清洗、解析,并分割成重叠的块以保留局部上下文。 2. **图构建:** 使用`spaCy`从每个块中提取命名实体。利用`NetworkX`构建加权共现图,映射哪些实体共同出现,并将它们链接到源块。 3. **社区检测:** 使用`greedy_modularity_communities`将图划分为主题聚类。对于每个聚类,采样随机文本块并发送至LLM以生成高层摘要(避免“枢纽节点”偏差)。 4. **索引:** 将所有块嵌入到密集向量存储中,并在同一语料库上构建稀疏BM25索引。 5. **混合检索:** 查询时,系统执行双重搜索(密集向量 + BM25)。同时,从提示中提取实体,遍历图的一阶邻居,并检索其关联的块。 6. **融合与重排序:** 本地和全局(社区摘要)结果被合并、去重,并使用**倒数排名融合(RRF)**进行评分。然后,前K个候选由交叉编码器重新评分以获得最大精度。 7. **LLM合成:** 最终精心挑选的上下文被传递给LLM,并通过严格提示生成简洁、结构良好且附带引用的答案。 **为何有效:** 标准向量搜索在处理多跳查询时会失败,例如:>谁下令处决了Sansa的父亲,那个人最终是如何死的?通过遍历图(*Sansa -> Ned -> Joffrey -> Poisoning*),系统弥合了不连续文本块之间的差距,并综合出正确答案。 **GitHub:** [https://github.com/mohammad-majoony/graphrag-studio](https://github.com/mohammad-majoony/graphrag-studio) 欢迎反馈!谢谢。
相似文章
RSF-GLLM: 通过递归软流与解耦LLM生成弥合多跳知识图谱问答中的语义鸿沟
本文介绍了RSF-GLLM,一个将可微图推理与LLM生成解耦的框架,以解决多跳知识图谱问答中的语义鸿沟问题,在实现竞争性性能的同时,具有卓越的推理效率。
面向多讲座教育推理的基于证据的多模态知识图谱构建
提出了一种基于证据的多模态流水线,从讲座视频中构建富含溯源信息的知识图谱,结合ASR、OCR和视觉-语言模型,在神经网络讲座上实现了高检索准确率。
基于领域特定知识图谱的面向旅游的推理大语言模型
本文提出一个模块化流水线,使用领域特定知识图谱生成多跳问答对,并微调一个面向旅游领域的推理大语言模型 (Qwen3-4B),实现了82.4%的精确匹配准确率,显著优于基线模型。
基于外部子图生成的大语言模型逐步推理增强
本文提出了SGR框架,通过查询相关的子图生成将外部知识图谱与大语言模型相结合,融合基于Cypher的推理与协同推理集成,从而增强大语言模型的逐步推理能力。在CWQ、WebQSP、GrailQA和KQA Pro上的实验表明,该框架相比标准提示方法和知识增强基线具有更高的推理准确性。
@hxiao: 我不是知识图谱的粉丝,但最近出于一个令人惊讶的原因开始更频繁地使用它们:构建非平凡的…
作者描述使用基于Qwen模型构建的知识图谱提取器来生成具有挑战性的多跳问答对,用于评估智能体搜索系统。