graphrag学习总结
学习视频:b站链接
项目链接
GraphRAG 的基本概念
-
Document(文档):系统中的输入文档。这些文档要么代表CSV中的单独行,要么代表单独的txt文件。
-
TextUnit(文本块):要分析的文本块。这些块的大小、重量以及它们是否遵守任何数据边界可以在下面配置。一个常见的用例是设置
CHUNK_BY_COLUMNS
为 id,以便文档和TextUnits之间存在一对多关系,而不是多对多关系。 -
Entity(实体):从TextUnit中提取的实体。这些实体代表人物、地点、事件或您提供的其他实体模型。
-
Relationship(关系):两个实体之间的关系。这些关系由协变量生成。
-
Covariate(协变量):提取的声明信息,其中包含可能受时间限制的实体的陈述。
-
Claim(声明):代表具有评估状态和时间限制的积极事实陈述,以协变量(Covariates)的称呼在各处使用。
-
Community Report(社区报告):一旦生成实体,我们就对它们执行层次社区检测,并为该层次结构中的每个社区生成报告。
-
Node(节点):包含已被聚集的实体和文档的呈现图形视图的布局信息。
总体流程:
文档转换为 TextUnits
说明:
- 概念 -> 追溯原文
- 文档和文本单元之间存在严格的一对多关系
切换技巧:
- 切换大小 chunk size: 1200 token
- 较大的块会导致输出保真度较低,参考文本意义较小;使用较大的块可以大大缩短处理时间。
图表:
- 图表显示不同
chunk size
和gleanings
的数量对实体引用检测的影响。 - 600 token、1200 token、2400 token 的 chunk size 对比。
图提取
功能:
分析每个文本单元并提取图形基元:实体、关系和声明
实体和关系提取:
- 使用 LLM 从原始文本中提取实体和关系,包含具有名称、类型和描述的实体列表,以及具有源、目标和描述的关系列表。
实体和关系摘要:
- 通过 LLM 为每个实体和关系提供简短的摘要描述。
Claim Extraction & Emission:
- 声明代表具有评估状态和时间限制的积极事实陈述,以协变量(Covariates)的称呼在各处使用。
图增强(构建社区)
社区检测:
- 使用分层莱顿算法生成实体社区的层次结构,此方法将对我们的图应用递归社区聚类,直到达到社区规模阈值。
- 这将使我们能够了解图的社区结构,并提供一种在不同粒度级别上导航和总结图的方法。
图嵌入:
- 使用 Node2Vec 算法生成图的向量表示。
- 这将使我们能够理解图的隐式结构,并提供额外的向量空间,以便在查询阶段搜索相关概念。
社区总结
功能:
基于社区数据并为每个社区生成报告,这让我们可以从多个粒度点对图表有一个高层次的了解。例如,如果社区 A 是顶级社区,我们将获得有关整个图表的报告。如果社区是较低级别的,我们将获得有关地集群的报告。
生成社区报告:
使用 LLM 生成每个社区的摘要,引用社区子结构中的关键实体、关系和声明。
总结社区报告:
每个社区报告都会通过 LLM 进行总结,以供速记使用。
社区嵌入:
通过生成社区报告、社区报告摘要和社区报告标题的文本嵌入来生成我们的社区的向量表示。
文档处理
链接到 TextUnits:
将每个文档链接到第一阶段创建的文本单元,了解哪些文档与哪些文本单元相关。
文档嵌入:
文档切片的平均嵌入来生成文档的向量表示,能够理解文档之间的隐式关系。
local查询
Local 查询流程
流程描述:
- 用户查询(User Query):用户输入查询,进入流程的起点。
- 提取实体(Extracted Entities):从用户查询中提取出实体,包括实体描述和嵌入信息。
- 候选文本单元(Candidate Text Units):通过实体和文本单元的映射,生成候选文本单元。
- 候选社区报告(Candidate Community Reports):通过实体和社区报告的映射,生成候选社区报告。
- 候选实体(Candidate Entities):通过实体-实体关系映射,生成候选实体。
- 候选关系(Candidate Relationships):通过实体-实体关系映射,生成候选关系。
- 候选协变量(Candidate Covariates):通过实体-协变量映射,生成候选协变量。
排序和过滤:
每个候选单元经过排序与过滤(Ranking + Filtering),并输出优先级结果,包括:
- 优先级文本单元(Prioritized Text Units)
- 优先级社区报告(Prioritized Community Reports)
- 优先级实体(Prioritized Entities)
- 优先级关系(Prioritized Relationships)
- 优先级协变量(Prioritized Covariates)
响应(Response):
最终将所有优先级结果汇总,并生成响应(Response),提供给用户。
会话历史(Conversation History):
会话历史用来记录并辅助当前查询的处理,确保连续性和上下文的完整性。
Global查询流程
Global 查询流程
流程描述:
- 用户查询(User Query):用户输入查询,作为流程的起点。
- 会话历史(Conversation History):通过会话历史确保查询的上下文完整性。
- 社区报告批次(Shuffled Community Report Batch):将用户查询分配给不同的社区报告批次进行处理。每个批次会被洗牌处理,以确保多样性。
- Batch 1:第一批社区报告
- Batch 2:第二批社区报告
- Batch N:第N批社区报告
- 中间响应评分(Rated Intermediate Responses, RIR):每个社区报告批次会生成中间响应,并对其进行评分。
- 排序与过滤(Ranking + Filtering):对中间响应的评分结果进行排序与过滤,保留最佳结果。
- 聚合中间响应(Aggregated Intermediate Responses):将所有评分较高的中间响应聚合在一起,作为最终输出。
- 最终响应(Response):将聚合的结果返回给用户,作为最终的查询响应。
相关文章:

graphrag学习总结
学习视频:b站链接 项目链接 GraphRAG 的基本概念 Document(文档):系统中的输入文档。这些文档要么代表CSV中的单独行,要么代表单独的txt文件。 TextUnit(文本块):要分析的文本块。…...
专题:贪心算法(已完结)
1.分发饼干 方法一:用最大的胃口 找到最大的饼干(先遍历胃口) class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 主要思路 用最大的饼干找最大的胃口sort(g.begin(),g.end());so…...

Hadoop的三种运行模式:单机模式、伪分布式模式和完全分布式模式
单机模式 单机模式是Hadoop最简单的运行模式。在单机模式下,所有Hadoop组件都运行在单个机器上,包括HDFS、MapReduce等。由于只有一个节点参与计算,单机模式适用于开发和测试阶段,不适合用于处理大规模数据。在单机模式下…...

JavaScript将array数据下载到Excel中
具体代码如下: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widt…...
【前端】Bootstrap:快速开始
Bootstrap 是一个功能强大且易于使用的前端框架,专门用于创建响应式和移动优先的网页。学习Bootstrap不仅可以帮助你快速构建现代网页,还可以提升你对前端开发流程的理解。本教程将从基础概念开始,逐步引导你掌握Bootstrap,并通过…...

文献阅读(222) VVQ协议死锁
题目:VVQ: Virtualizing Virtual Channel for Cost-Efficient Protocol Deadlock Avoidance时间:2023会议:HPCA研究机构:KAIST request-reply协议死锁如下图所示,每个node收到request之后发送reply,但是想…...

Node.js管理工具NVM
nvm(Node Version Manager)是一个用于管理多个 Node.js 版本的工具。以下是 nvm 的使用方法和一些常见命令: 一、安装 nvm 下载 nvm: 地址:https://github.com/coreybutler/nvm-windows/releases访问 nvm 的 GitHub 仓…...
云原生后端
云原生后端(Cloud-Native Backend)是指在云计算环境中,利用云原生技术(如容器、微服务、服务网格等)构建和部署后端应用程序的一种方法。以下是对云原生后端的详细讲解: 1. 定义 云原生是一种设计和构建应…...

充电宝哪个品牌值得买?2024年五款靠谱充电宝推荐
哪个品牌充电宝值得买?用过这么多款充电宝,个人还是觉得充电快、小巧便携的充电宝使用会更加的方便!在当今快节奏的生活中,手机已成为我们不可或缺的伙伴。然而,随着智能手机功能的日益强大,电池续航问题也…...

YOLOv11对比YOLOV8网络结构变化分析,帮助你真正的理解和学习yolo框架
本文在大佬的文章YOLOv11 | 一文带你深入理解ultralytics最新作品yolov11的创新 | 训练、推理、验证、导出 (附网络结构图)基础上做了一些补充。 一、YOLOv11和YOLOv8对比 二、YOLOv11的网络结构图 下面的图片为YOLOv11的网络结构图。 三、YOLOv11…...
弃用RestTemplate,RestClient真香!
在Spring框架的发展历程中,RestTemplate作为发起HTTP请求的同步API,曾经扮演着举足轻重的角色。然而,随着技术的不断进步和微服务架构的普及,RestTemplate的局限性逐渐显现,尤其是在处理高并发和异步请求时。因此&…...
electron-vite_10electron-updater软件更新
网很多electron-updater更新文章,这里只简单写一下演示代码; 为什么选择 electron-updater插件可以自动更新应用程序,同时支持多个平台;比官方要强; 官方的autoUpdater仅支持macOS 和 Windows 自动更新; 注意是自动,直接更新那种; 脚手架中是…...
React native之全局变量存储AsyncStorage
AsyncStorage是React native中对变量,对象进行全局存储,读取的异步使用对象。以key值进行存储。但是只能存储字符串数据,想存储对象,可把对象JSON进行序列化存储,读取的时候再转成JSON对象。 AsyncStorage.getItem()-…...

获取vue实例
需要注意的是,无论通过哪种方式获取元素,如果元素为 vue 组件,则需要在子组件中使用 defineExpose 进行暴露。 在父组件中,我们静态绑定 childRef: 在子组件中,我们需要通过defineExpose函数,手…...
基于Python实现电影推荐系统
电影推荐系统 标签:Tensorflow、矩阵分解、Surprise、PySpark 1、用Tensorflow实现矩阵分解 1.1、定义one_batch模块 import numpy as np import pandas as pddef read_and_process(filename, sep ::):col_names [user, item, rate, timestamp]df pd.read_cs…...

【linux】进程理解
🔥个人主页:Quitecoder 🔥专栏:linux笔记仓 目录 01.进程的基本概念进程的组成部分进程的特性进程的状态 02.PCBPCB的组成部分task_structtask_struct 的主要组成部分 03.进程属性查看进程 04.通过系统调用创建进程-fork初识工作…...
文件IO练习1
题目一: 1、使用fread和fwrite完成两个文件的拷贝,要求源文件和目标文件由外界输入 实现代码: #define LEN_BUF 256int main(int argc, const char *argv[]) {if(argc ! 3){fprintf(stderr,"程序入参输入有误\n");return -1;}FILE…...
c++ std::future 和 std::promise 的实现工作原理简介
为了便于理解 std::future 和 std::promise 的实现工作原理,我们可以创建一个简化的版本。这包括共享状态、Promise 设置值、Future 获取值的核心机制。我们的示例代码将实现 SimplePromise 和 SimpleFuture 两个类,二者通过一个共享状态实现线程间的通信…...

MATLAB(Octave)混电动力能耗评估
🎯要点 处理电动和混动汽车能耗的后向和前向算法模型(simulink),以及图形函数、后处理函数等实现。构建储能元数据信息:电池标称特性、电池标识符等以及静止、恒定电流和恒定电压等特征阶段。使用电流脉冲或要识别的等效电路模型类型配置阻抗…...

opencv学习:人脸识别器特征提取BPHFaceRecognizer_create算法的使用
BPHFaceRecognizer_create算法 在OpenCV中,cv2.face.LBPHFaceRecognizer_create()函数用于创建一个局部二值模式直方图(Local Binary Patterns Histograms,简称LBPH)人脸识别器。LBPH是一种用于人脸识别的特征提取方法࿰…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...