1. 项目概述:当RAG遇上图结构
在信息检索领域,检索增强生成(Retrieval-Augmented Generation, RAG)已经成为连接大规模知识库与语言模型的关键桥梁。传统RAG框架通过向量相似度检索相关文档片段,但这种方式存在明显的上下文割裂问题——返回的文本块之间缺乏语义关联性,就像把一本百科全书撕成碎片后随机抽取几页交给大模型处理。
GraphRAG的创新之处在于将文档集构建为知识图谱,利用图结构的拓扑关系捕捉概念间的深层联系。但原生GraphRAG在实际部署时会遇到两个痛点:一是图谱构建的计算开销呈指数级增长,二是多跳检索可能引入噪声。这正是LinearRAG试图解决的问题——在保留图结构优势的同时,通过线性化处理实现工业级可扩展性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心架构解析
2.1 知识图谱的轻量化改造
传统GraphRAG使用完整的图神经网络(GNN)进行节点嵌入,而LinearRAG采用了更巧妙的处理方式:
- 关键路径提取:通过TF-IDF和PageRank的混合算法识别文档集中的核心实体和关系路径
- 线性编码:使用带位置编码的BiLSTM将图结构序列化,保留拓扑特征的同时降低维度
- 动态剪枝:在检索阶段根据查询语义自动修剪次要分支,减少计算量
python复制# 关键路径提取示例代码
def extract_key_paths(docs, alpha=0.85):
entity_graph = build_entity_graph(docs) # 构建初始实体图
pr_scores = pagerank(entity_graph, alpha)
paths = []
for entity in top_entities(pr_scores, top_k=10):
paths.extend(beam_search(entity_graph, entity, width=3))
return deduplicate_paths(paths)
2.2 混合检索策略
LinearRAG的检索流程分为三个阶段:
- 向量初筛:用标准的稠密检索(Dense Retrieval)快速定位相关文档区域
- **
