当前位置: 首页 > news >正文

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 sizegleanings 的数量对实体引用检测的影响。
  • 600 token、1200 token、2400 token 的 chunk size 对比。
  • 在这里插入图片描述

图提取

功能:

分析每个文本单元并提取图形基元:实体、关系和声明

实体和关系提取:

  • 使用 LLM 从原始文本中提取实体和关系,包含具有名称、类型和描述的实体列表,以及具有源、目标和描述的关系列表。

实体和关系摘要:

  • 通过 LLM 为每个实体和关系提供简短的摘要描述。

Claim Extraction & Emission:

  • 声明代表具有评估状态和时间限制的积极事实陈述,以协变量(Covariates)的称呼在各处使用。

在这里插入图片描述

图增强(构建社区)

社区检测:

  • 使用分层莱顿算法生成实体社区的层次结构,此方法将对我们的图应用递归社区聚类,直到达到社区规模阈值。
  • 这将使我们能够了解图的社区结构,并提供一种在不同粒度级别上导航和总结图的方法。

图嵌入:

  • 使用 Node2Vec 算法生成图的向量表示。
  • 这将使我们能够理解图的隐式结构,并提供额外的向量空间,以便在查询阶段搜索相关概念。

在这里插入图片描述

社区总结

功能:

基于社区数据并为每个社区生成报告,这让我们可以从多个粒度点对图表有一个高层次的了解。例如,如果社区 A 是顶级社区,我们将获得有关整个图表的报告。如果社区是较低级别的,我们将获得有关地集群的报告。

生成社区报告:

使用 LLM 生成每个社区的摘要,引用社区子结构中的关键实体、关系和声明。

总结社区报告:

每个社区报告都会通过 LLM 进行总结,以供速记使用。

社区嵌入:

通过生成社区报告、社区报告摘要和社区报告标题的文本嵌入来生成我们的社区的向量表示。

在这里插入图片描述

文档处理

链接到 TextUnits:

将每个文档链接到第一阶段创建的文本单元,了解哪些文档与哪些文本单元相关。

文档嵌入:

文档切片的平均嵌入来生成文档的向量表示,能够理解文档之间的隐式关系。

在这里插入图片描述

local查询

在这里插入图片描述

Local 查询流程

流程描述:

  1. 用户查询(User Query):用户输入查询,进入流程的起点。
  2. 提取实体(Extracted Entities):从用户查询中提取出实体,包括实体描述和嵌入信息。
  3. 候选文本单元(Candidate Text Units):通过实体和文本单元的映射,生成候选文本单元。
  4. 候选社区报告(Candidate Community Reports):通过实体和社区报告的映射,生成候选社区报告。
  5. 候选实体(Candidate Entities):通过实体-实体关系映射,生成候选实体。
  6. 候选关系(Candidate Relationships):通过实体-实体关系映射,生成候选关系。
  7. 候选协变量(Candidate Covariates):通过实体-协变量映射,生成候选协变量。

排序和过滤:

每个候选单元经过排序与过滤(Ranking + Filtering),并输出优先级结果,包括:

  • 优先级文本单元(Prioritized Text Units)
  • 优先级社区报告(Prioritized Community Reports)
  • 优先级实体(Prioritized Entities)
  • 优先级关系(Prioritized Relationships)
  • 优先级协变量(Prioritized Covariates)

响应(Response):

最终将所有优先级结果汇总,并生成响应(Response),提供给用户。

会话历史(Conversation History):

会话历史用来记录并辅助当前查询的处理,确保连续性和上下文的完整性。

Global查询流程

Global 查询流程

流程描述:

  1. 用户查询(User Query):用户输入查询,作为流程的起点。
  2. 会话历史(Conversation History):通过会话历史确保查询的上下文完整性。
  3. 社区报告批次(Shuffled Community Report Batch):将用户查询分配给不同的社区报告批次进行处理。每个批次会被洗牌处理,以确保多样性。
    • Batch 1:第一批社区报告
    • Batch 2:第二批社区报告
    • Batch N:第N批社区报告
  4. 中间响应评分(Rated Intermediate Responses, RIR):每个社区报告批次会生成中间响应,并对其进行评分。
  5. 排序与过滤(Ranking + Filtering):对中间响应的评分结果进行排序与过滤,保留最佳结果。
  6. 聚合中间响应(Aggregated Intermediate Responses):将所有评分较高的中间响应聚合在一起,作为最终输出。
  7. 最终响应(Response):将聚合的结果返回给用户,作为最终的查询响应。

相关文章:

graphrag学习总结

学习视频:b站链接 项目链接 GraphRAG 的基本概念 Document(文档):系统中的输入文档。这些文档要么代表CSV中的单独行,要么代表单独的txt文件。 TextUnit(文本块):要分析的文本块。…...

专题:贪心算法(已完结)

1.分发饼干 方法一&#xff1a;用最大的胃口 找到最大的饼干&#xff08;先遍历胃口&#xff09; class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {// 主要思路 用最大的饼干找最大的胃口sort(g.begin(),g.end());so…...

Hadoop的三种运行模式:单机模式、伪分布式模式和完全分布式模式

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

JavaScript将array数据下载到Excel中

具体代码如下&#xff1a; <!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 是一个功能强大且易于使用的前端框架&#xff0c;专门用于创建响应式和移动优先的网页。学习Bootstrap不仅可以帮助你快速构建现代网页&#xff0c;还可以提升你对前端开发流程的理解。本教程将从基础概念开始&#xff0c;逐步引导你掌握Bootstrap&#xff0c;并通过…...

文献阅读(222) VVQ协议死锁

题目&#xff1a;VVQ: Virtualizing Virtual Channel for Cost-Efficient Protocol Deadlock Avoidance时间&#xff1a;2023会议&#xff1a;HPCA研究机构&#xff1a;KAIST request-reply协议死锁如下图所示&#xff0c;每个node收到request之后发送reply&#xff0c;但是想…...

Node.js管理工具NVM

nvm&#xff08;Node Version Manager&#xff09;是一个用于管理多个 Node.js 版本的工具。以下是 nvm 的使用方法和一些常见命令&#xff1a; 一、安装 nvm 下载 nvm&#xff1a; 地址&#xff1a;https://github.com/coreybutler/nvm-windows/releases访问 nvm 的 GitHub 仓…...

云原生后端

云原生后端&#xff08;Cloud-Native Backend&#xff09;是指在云计算环境中&#xff0c;利用云原生技术&#xff08;如容器、微服务、服务网格等&#xff09;构建和部署后端应用程序的一种方法。以下是对云原生后端的详细讲解&#xff1a; 1. 定义 云原生是一种设计和构建应…...

充电宝哪个品牌值得买?2024年五款靠谱充电宝推荐

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

YOLOv11对比YOLOV8网络结构变化分析,帮助你真正的理解和学习yolo框架

本文在大佬的文章YOLOv11 | 一文带你深入理解ultralytics最新作品yolov11的创新 | 训练、推理、验证、导出 &#xff08;附网络结构图&#xff09;基础上做了一些补充。 一、YOLOv11和YOLOv8对比 二、YOLOv11的网络结构图 下面的图片为YOLOv11的网络结构图。 三、YOLOv11…...

弃用RestTemplate,RestClient真香!

在Spring框架的发展历程中&#xff0c;RestTemplate作为发起HTTP请求的同步API&#xff0c;曾经扮演着举足轻重的角色。然而&#xff0c;随着技术的不断进步和微服务架构的普及&#xff0c;RestTemplate的局限性逐渐显现&#xff0c;尤其是在处理高并发和异步请求时。因此&…...

electron-vite_10electron-updater软件更新

网很多electron-updater更新文章&#xff0c;这里只简单写一下演示代码&#xff1b; 为什么选择 electron-updater插件可以自动更新应用程序,同时支持多个平台;比官方要强; 官方的autoUpdater仅支持macOS 和 Windows 自动更新; 注意是自动&#xff0c;直接更新那种; 脚手架中是…...

React native之全局变量存储AsyncStorage

AsyncStorage是React native中对变量&#xff0c;对象进行全局存储&#xff0c;读取的异步使用对象。以key值进行存储。但是只能存储字符串数据&#xff0c;想存储对象&#xff0c;可把对象JSON进行序列化存储&#xff0c;读取的时候再转成JSON对象。 AsyncStorage.getItem()-…...

获取vue实例

需要注意的是&#xff0c;无论通过哪种方式获取元素&#xff0c;如果元素为 vue 组件&#xff0c;则需要在子组件中使用 defineExpose 进行暴露。 在父组件中&#xff0c;我们静态绑定 childRef&#xff1a; 在子组件中&#xff0c;我们需要通过defineExpose函数&#xff0c;手…...

基于Python实现电影推荐系统

电影推荐系统 标签&#xff1a;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】进程理解

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.进程的基本概念进程的组成部分进程的特性进程的状态 02.PCBPCB的组成部分task_structtask_struct 的主要组成部分 03.进程属性查看进程 04.通过系统调用创建进程-fork初识工作…...

文件IO练习1

题目一&#xff1a; 1、使用fread和fwrite完成两个文件的拷贝&#xff0c;要求源文件和目标文件由外界输入 实现代码&#xff1a; #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 的实现工作原理&#xff0c;我们可以创建一个简化的版本。这包括共享状态、Promise 设置值、Future 获取值的核心机制。我们的示例代码将实现 SimplePromise 和 SimpleFuture 两个类&#xff0c;二者通过一个共享状态实现线程间的通信…...

MATLAB(Octave)混电动力能耗评估

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

opencv学习:人脸识别器特征提取BPHFaceRecognizer_create算法的使用

BPHFaceRecognizer_create算法 在OpenCV中&#xff0c;cv2.face.LBPHFaceRecognizer_create()函数用于创建一个局部二值模式直方图&#xff08;Local Binary Patterns Histograms&#xff0c;简称LBPH&#xff09;人脸识别器。LBPH是一种用于人脸识别的特征提取方法&#xff0…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...