微软开发的 GraphRAG 是一种用于构建知识图谱的框架,主要用于增强大型语言模型(LLM)在处理私有数据时的推理能力。以下是 GraphRAG 构建知识图谱的详细全过程:
1. 数据准备与输入
- 输入数据 :GraphRAG 接收文本数据作为输入,这些数据可以是企业财报、研究文档、业务文档等。输入数据通常以文本文件(如 .txt 或 .csv)的形式存放在指定的输入目录中。
2. 索引阶段(Indexing)
2.1 文本分块(Chunking)
- 文档分块 :将输入的文档分割成较小的文本块(TextUnits),这些文本块的大小通常以 token 数来衡量,默认情况下每个块大约包含 300 个 token。较大的块可能会导致低质量的输出,但可以加快处理速度。
- 文本嵌入 :每个文本块会被转换为嵌入表示(embedding),这些嵌入向量将捕捉文本块的语义信息,并在后续阶段用于进一步的处理和图谱生成。
- 块与文档的映射 :系统会将文本块与文档边界对齐,即一个文档可以分成多个 TextUnits,每个 TextUnit 都与其源文档有一对多的关系。
2.2 实体与关系抽取
- 实体识别 :使用大型语言模型(LLM)从文本块中提取实体(entities)。每个实体具有四个主要属性:name(名称)、description&#x