重磅,微软LazyGraphRAG正式开源及实现细节剖析!

微软GraphRAG自提出,已历时快一年,PaperAgent对其发展历程进行了专门梳理与总结:
  • 去年4月,为解决传统RAG在全局性的查询总结任务上表现不佳,微软多部门联合提出Project GraphRAG(大模型驱动的KG);
  • 去年7月,微软正式开源GraphRAG项目,引起极大关注,至今23.2k star,但落地时却面临巨大成本痛点(具体:LLM用于实体关系抽取+描述,社区总结);
  • 去年11月,为了上述痛点,微软发布了LazyGraphRAG,将数据索引成本降低1000倍,只有GraphRAG的0.1%(使用 NLP 名词短语提取来识别概念及其共现,再利用图形统计来优化概念图并提取分层社区结构);
  • 时隔3月,微软GraphRAG项目迎来2.0.0版本,正式开源LazyGraphRAG,即NLP graph extraction功能。
LazyGraphRAG代码解读
  • NLP图谱抽取
    graphrag/index/workflows/extract_graph_nlp.py
  • 建立名词短语图
graphrag/index/operations/build_noun_graph/build_noun_graph.py
nodes:
  • 使用text_analyzer.extract方法从每个文本单元中提取名词短语
  • 去重
edges(共现关系):
  • 将节点数据框中的text_unit_ids展开,得到每个文本单元中出现的名词短语列表
  • 对每个文本单元中的名词短语列表,生成所有可能的边(即名词短语对)
edge_weights
  • 按source和target分组,统计边的权重(即边出现的文本单元数量)
  • 使用点互信息(PMI)对边的权重进行归一化
    LazyGraphRAG技术原理
    • 使用 NLP 名词短语提取来提取概念及其共现

    • 使用图形统计来优化概念图并提取分层社区结构

    效果对比,LazyGraphRAG答案更加丰富,Query:描述 2024 年健康保险计划开放注册期间,美国个人在选择健康保险计划时应考虑哪些因素。
    微软LazyGraphRAG:新一代超低成本RAG
    https://github.com/microsoft/graphrag/blob/main/CHANGELOG.md

    (文:PaperAgent)

    欢迎分享

    发表评论