## 本质 1. 为什么要这么设计: - LLM 很强大,但直接让它读长文档太浪费算力 - 而且 LLM 的上下文窗口有限,一次性塞不进太多内容 - 所以需要先找到最相关的内容再提供给 LLM 1. 具体做法: - 提前把文档切块并向量化(类似给书做索引) - 用向量相似度快速找到相关内容(就像在图书馆用目录快速定位) - 只把最相关的内容交给 LLM 处理(相当于让 LLM 只看重点章节) 1. 好处是: - 速度快(不用 LLM 读完全部内容) - 成本低(LLM 调用次数少) - 质量好(回答基于相关事实,不是想象) 这就像是: - 先用简单但快速的方法(向量检索)找到可能相关的内容 - 再用"专家"(LLM)来仔细分析这些内容并给出答案 相当于把"找信息"和"理解信息"这两件事分开做,各自用最合适的工具。这就是为什么这种方法既快速又准确。 1. 将非结构化文档转换为结构化数据 2. 提取和保存实体与关系信息 3. 构建知识图谱 4. 保持数据的一致性和去重 5. 通过向量化支持后续的检索和匹配 ## 构建阶段 1. 就像你在读一本书: - 先把书分成一页一页的(Text Chunks) - 给每页做个摘要(Embedding) - 把摘要存起来方便以后查找 2. 然后你会: - 找出书中提到的重要概念(Entities)比如人物、地点 - 找出这些概念之间的关系(Relations)比如谁认识谁 - 去掉重复的内容(Dedupe) - 整理一下描述(Update Description) 3. 最后把所有信息存在三个地方: - 像图书馆的索引卡片(Vector DB)向量数据库 - 像目录一样的快速查找表(KV Storage)KV 存储 - 像思维导图一样的关系网(Knowledge Graph)知识图谱 ## 查找阶段 1. 当你想找什么信息时: - 系统会去查那些"索引卡片" - 找到相关的概念和它们之间的关系 - 就像在图书馆找书,先看目录,再顺着相关的主题找 2. 然后: - 系统会理解你具体想问什么 - 找到相关的信息 - 把这些信息组织成一个合理的回答 简单来说: - 第一个图是在"整理笔记" - 第二个图是在"查找笔记并回答问题" - 整个系统就像一个非常聪明的图书管理员,不仅会整理书籍,还能帮你找到信息并回答问题 这个系统的特别之处在于它不仅记住了信息,还理解了信息之间的联系,所以可以回答比较复杂的问题。就像一个既记性好又理解力强的助手。 ## 更新阶段 如果您选择了LightRAG并且数据源更新了,您可以利用LightRAG的增量更新功能来高效地处理新数据。LightRAG的增量更新算法具有以下优点: 1. 快速适应新数据:LightRAG能够在不需要重建整个索引的情况下,快速整合新的信息[2]。 2. 高效处理:增量更新算法使用与之前相同的基于图的索引步骤来处理新文档。然后,模型将新图与现有知识图谱合并,确保信息的连贯性和一致性[3]。 3. 最小化重新索引:与其他RAG系统相比,LightRAG在更新数据时显著减少了重新索引的需求[1]。 4. 降低API调用成本:相较于GraphRAG,LightRAG在处理增量数据更新时需要的API调用次数更少,从而降低了成本[1]。 5. 保持实时准确性:通过增量更新,LightRAG能够在实时应用中保持准确性和相关性,特别适用于数据不断变化的环境[2]。 要更新您的LightRAG系统,您只需要: 1. 准备新的数据文件(例如新的PDF文档)。 2. 使用LightRAG的API或函数来添加新文档。 3. 系统会自动处理新数据,更新知识图谱和向量存储,而无需重建整个索引。 这种方法确保了您的LightRAG系统能够始终保持最新状态,同时最大限度地减少了更新过程中的计算开销和时间消耗。 ## 亮点 - LLM 用于理解和提取 - Embedding 用于向量化 - 知识图谱用于关系存储 - 向量数据库用于相似性搜索