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

为 GraphRAG 准备语料库

经典 RAG 专注于找到正确的段落而 GraphRAG 帮助你看到段落、实体和主题在整个文档集合中是如何连接的。原始 GraphRAG 论文指出标准 RAG 常常在处理宽泛问题时遇到困难比如这个数据集中的主要主题是什么为了解决这个问题GraphRAG 从你的文档创建实体图并生成其中各组的摘要。这意味着你的语料库质量同时影响检索和图的结构。在处理分块器或嵌入模型之前先决定你的系统需要回答哪些类型的问题。Microsoft 的文档将 GraphRAG 分为 Local Search、Global Search、DRIFT Search 和 Basic Search。Local Search 同时使用图数据和原始文本块来回答关注特定实体的问题。Global Search 使用社区报告以 map-reduce 方法回答更宽泛的问题。DRIFT 在 local search 基础上增加社区上下文。Basic Search 类似标准的向量 RAG。因此你可能需要根据用户是对特定实体感兴趣、对跨文档模式感兴趣、还是对两者都感兴趣来不同地准备数据集。一个好的 GraphRAG 项目从语料库清单开始而不是仅仅上传文件。列出文档来源、所有者、语言、变更频率以及已有哪些可用的元数据。默认情况下GraphRAG 支持纯文本、CSV 和 JSON将它们加载到带有 id、text、title、creation_date 和可选元数据等字段的共享表中。如果你的数据在数据库或自定义平台中你可以使用 pandas DataFrame 或自定义输入读取器只要它匹配预期格式。这很重要因为大多数现实世界的数据集不只是干净的 .txt、.csv 或 .json 文件。PDF、幻灯片、Office 文档和 HTML 页面通常包含有用的结构如标题、章节分隔、说明文字和表格。Azure 关于结构感知分块的指导说明保留这种布局是有帮助的按标题、段落或有意义的章节分割通常比将所有内容展平为纯文本产生更好的块。在实践中最好在开始 GraphRAG 索引之前将富文件转换为带有元数据的规范化文本。清理数据是下一步的关键。Azure 的富集指导建议规范化文本以改善后续匹配。这包括在适当情况下使用小写、纠正拼写、清理 Unicode、展开缩写以及谨慎处理多语言内容。保留原始文本以防以后需要展示未修改版本也是好主意。一个重要的安全提示如果语言模型索引你的仓库永远不要将仓库文本视为指令因为有害或意外的 prompt 注入内容可能最终出现在你的数据中。去重同样重要但经常被忽视。GraphRAG 跟踪实体出现的频率并在匹配的连接上累加关系权重。这意味着重复或几乎相同的文件会使某些人、产品、问题或主题看起来比实际更重要。对于知识发现最好在索引之前删除重复的样板、重复的 PDF、镜像的 wiki 页面和模板密集的文档。元数据在 GraphRAG 中比在许多普通 RAG 管道中值得更多关注。GraphRAG 允许你在文档级元数据字段中保留选定的 CSV 或 JSON 列并且它可以在分块期间将选定的元数据值预置到每个块中。当文档前几行包含关键上下文如标题、作者、案件编号、司法管辖区、产品版本或事件日期时这是一个大问题。如果没有元数据预置该共享上下文可能只存在于第一个块中从后续块中消失即使这些后续块仍然被检索、总结和用于图提取。一个常见的错误是将分块仅仅视为嵌入问题。在 GraphRAG 中分块影响哪些实体一起出现、发现了哪些关系、形成了哪些社区以及 local search 可用的证据。Microsoft 的 GraphRAG 文档说默认块大小是 1200 token。更大的块处理更快但可能丢失细节。你可以按 token 或句子设置分块调整重叠并根据需要添加元数据。Azure 的通用 RAG 指导建议从 512-token 的块和约 25% 的重叠开始用于向量检索。它还指出按标题和段落分割可以使块更连贯。最近的研究表明语义分块并不总是值得额外成本最佳块大小取决于数据的结构和密度。主要收获在你自己的数据上测试不同的分块设置而不是依赖流行的默认值。实体质量是数据准备对图变得特别重要的地方。GraphRAG 从每个文本单元提取小子图然后如果标题和类型匹配则合并实体如果来源和目标匹配则合并关系。知识图研究表明这具有挑战性因为文档很少对概念使用相同的名称所以实体链接、共指消解和规范化是关键。简单来说你的准备过程应该决定如何处理别名和变体如IBM和International Business Machines、“NYC和New York City”、产品昵称、法律缩写以及包含大量代词的文本。这些提及越一致和标准化你的图就越不会碎片化。如果你已经有结构化数据有一个有用的中间选项。GraphRAG 可以在自带图模式下运行你提供实体、关系以及可选的文本单元GraphRAG 在此基础上构建社区、报告和嵌入。如果你的组织已经有整理好的本体、案件图、产品图或事件图而你不想用 LLM 提取从头重建它这是一个好选择。你的准备步骤应该适合你想支持的查询模式。Local Search 将图实体、关系、社区报告和相关文本块组合在一起。Global Search 在 map-reduce 过程中使用社区报告作为上下文。DRIFT 在 local search 中添加更广泛的社区上下文。索引后GraphRAG 为向量搜索创建嵌入默认包括文本单元、实体描述和社区报告文本。这意味着你的源语料库支持多种检索类型所以糟糕的准备会影响整个系统。最好单独规划声明提取而不是默认开启。GraphRAG 将声明定义为带有状态和时间限制的正面事实陈述将它们导出为协变量并默认关闭声明提取因为它通常需要 prompt 调优才能良好工作。文档还指出默认声明框架通常用于欺诈或恶意行为等领域所以许多通用知识数据集起初不会从中受益。如果你的数据涉及调查、合规、事件或风险声明提取可以有帮助。否则通常最好首先专注于使实体、关系和社区报告正确。Prompt 调优不仅仅是最后一步它是数据准备的一部分。Microsoft 的文档强烈建议为你的特定数据调优 prompt自动调优工作流被高度鼓励因为它在加载和分割输入后创建适合你领域的 prompt。这很重要因为 GraphRAG 的默认实体类型很广泛如组织、人、地理位置和事件除非你更改它们或使用自动调优。对于法律、生物医学、金融、工程、科学或企业数据集这些默认值通常过于通用。最好在运行完整索引过程之前决定哪些实体和关系对你重要。多语言和多模态数据集需要额外注意。Azure 建议在文档级本地化分别处理每种语言避免未验证的翻译并确保你的嵌入模型支持多种语言。FastGraphRAG 可以通过使用 NLP 而非 LLM 推理来降低成本但 Microsoft 说其默认的 NLTK-plus-regex 方法主要适用于英语也有基于 spaCy 的选项可用。对于 PDF、扫描件、演示文稿和混合格式在提取期间保留布局和章节结构否则你可能在 GraphRAG 甚至开始构建图之前就得到混乱的块。一个好的团队不会从完整索引开始。相反先构建质量检查。从样本开始并审查 GraphRAG 输出文档、文本单元、实体、关系、社区、社区报告和任何可选的协变量。检查重要元数据是否仍然存在、同一实体是否以不同名称出现、高度节点是否有意义而不仅仅是通用术语、以及社区报告对专家是否有意义。由于 GraphRAG 将文档链接到文本单元和图对象你可以在扩展之前使用这些表检查数据来源。一个实用的预索引工作流通常是这样的清点来源将它们转换为稳定的 schema清理和去重文本标准化元数据和别名在样本上基准测试两三种分块策略检查生成的图工件然后在扩展之前进行 prompt 调优和重新索引。这个序列不是从单一来源复制粘贴的规则它是当前 GraphRAG 文档、Azure 的 RAG 准备指导以及最近的分块和知识图文献的最可靠综合。常见问题GraphRAG 的最佳块大小是多少没有通用的最佳块大小。GraphRAG 的默认值是 1200 tokenAzure 建议 512 token 加约 25% 的重叠作为向量检索的合理起点最近的研究表明语义分块并不自动更好最佳粒度取决于语料库结构和信息密度。最安全的答案是在你的实际文档和问题集上测试几个设置。如果文本已经可搜索我真的需要元数据吗通常是的。GraphRAG 可以保留文档元数据并将选定的元数据预置到每个块这有助于后续块保留否则在分割后会丢失的上下文。标题、作者、日期、案件 ID、章节标题、司法管辖区、产品名称和文档版本在随块一起传输时都可以改善图提取和检索质量。我应该在索引前删除重复文档吗在大多数情况下是的。因为 GraphRAG 跟踪实体频率并在文本单元上累加关系权重重复或近似重复的文档可能夸大重复想法或实体的突出性。对于发现、分析和综合工作负载去重通常改善图的信噪比。GraphRAG 能处理 PDF 和 Office 文件吗不能直接开箱即用就像它支持纯文本、CSV 和 JSON 那样。通常的模式是将 PDF、幻灯片、HTML 和其他富文件预处理为规范化文本加元数据或将自定义 DataFrame 或输入读取器传递给 GraphRAG。当需要在分块之前保持标题、表格和章节边界完整时结构感知提取特别有帮助。结论为 GraphRAG 准备语料库不仅仅是一个设置任务。这是你决定图将捕获什么、社区将代表什么、搜索模式能找到什么以及你能多容易追溯答案到来源的时候。一个好的 GraphRAG 语料库是干净的、去重的、元数据丰富的、仔细分块的、支持实体规范化的并在完整索引前在小样本上测试过的。有了这个坚实的基础GraphRAG 管道的其余部分更有可能给你比基本片段检索更丰富和更可靠的答案。原文链接为 GraphRAG 准备语料库 - 汇智网

相关文章:

为 GraphRAG 准备语料库

经典 RAG 专注于找到正确的段落,而 GraphRAG 帮助你看到段落、实体和主题在整个文档集合中是如何连接的。原始 GraphRAG 论文指出,标准 RAG 常常在处理宽泛问题时遇到困难,比如"这个数据集中的主要主题是什么?"为了解决…...

别再只盯着顶刊了!这5本AI领域的SCI期刊,投稿友好、审稿快,适合你的第一篇论文

5本AI领域高性价比SCI期刊:避开顶刊内卷的投稿策略 在人工智能研究领域,发表SCI论文是衡量学术成果的重要指标。然而,Nature Machine Intelligence、IEEE TPAMI等顶刊的投稿竞争异常激烈,审稿周期动辄半年以上,对创新性…...

眼图原理与信号完整性分析技术详解

眼图原理与信号完整性分析技术 1. 眼图基础概念 1.1 眼图定义与形成机制 眼图是通过示波器余辉作用将扫描所得的每个码元波形重叠形成的图形。当使用示波器跨接在接收滤波器输出端,并调整扫描周期与接收码元周期同步时,屏幕上显示的图形因其形似人眼而…...

OpenClaw新手入门:Qwen3.5-9B镜像一键部署与基础配置

OpenClaw新手入门:Qwen3.5-9B镜像一键部署与基础配置 1. 为什么选择Qwen3.5-9B作为OpenClaw的"大脑"? 去年冬天,当我第一次尝试用OpenClaw自动化处理周报时,发现默认的小模型经常把"会议纪要"理解成"会…...

Dify工作流实战:5步打造个性化英语单词口语练习工具(附完整配置)

Dify工作流实战:5步打造个性化英语单词口语练习工具(附完整配置) 在数字化学习浪潮中,AI技术正重塑语言学习的边界。对于开发者而言,如何将前沿的大模型能力转化为实际可用的学习工具,成为技术落地的关键挑…...

MDK分散加载文件(.sct)解析与嵌入式内存管理

MDK分散加载文件(.sct)剖析及应用1. 项目概述1.1 分散加载概念分散加载(Scatter Loading)是一种允许开发者精确控制代码和数据在存储器中布局的技术。通过分散加载文件,我们可以指定程序的特定部分(如代码段、数据段)在存储器的特定地址空间运…...

避坑指南:Python 3.9与Transformers 3.0不兼容?手把手解决BERT环境搭建中的版本冲突

深度解析Python与Transformers版本冲突:从报错到BERT环境完美搭建 当你在深夜调试代码时,突然遭遇"module signal has no attribute SIGKILL"的红色报错——这可能是Python 3.9与Transformers 3.0不兼容的典型症状。本文将带你深入理解版本冲突…...

深入HAL库:拆解STM32的UART DMA空闲中断接收机制,如何自己实现双缓冲与数据帧管理

STM32 HAL库UART DMA双缓冲机制深度解析与实战优化 在嵌入式开发领域,高效可靠的串口通信是实现设备间数据交互的基础能力。面对实时性要求严苛的工业场景或需要处理大量不定长数据的物联网应用,传统的轮询或中断接收方式往往力不从心。本文将深入剖析ST…...

在家用电脑跑AI大模型?Unsloth开源项目让普通用户也能轻松实现,算力民主化时代即将来临!

你有没有想过,在自己的电脑上跑一个属于自己的AI大模型? 很多人觉得这是不可能的——毕竟大模型需要强大的GPU、昂贵的算力,一般人根本玩不起。但现在,情况变了。 当AI从云端走进本地最近,一个叫Unsloth的开源项目在Gi…...

人机协作新范式:盘点2026年全网爆红的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具横空出世,覆盖选题构思、文献综述、数据整理、格式排版等全流程,真正帮你高效搞定论文,告别熬夜与焦虑。 一、全流程王者:一站式搞定论文…...

Multisim新手必看:5分钟搞定稳压二极管仿真实验(附限流电阻计算技巧)

Multisim新手必看:5分钟搞定稳压二极管仿真实验(附限流电阻计算技巧) 在电子工程的学习和实践中,稳压二极管是一个基础但至关重要的元件。它能将电压稳定在特定值,广泛应用于电源电路、保护电路等场景。对于初学者来说…...

政务大模型微调全攻略,打造高效智能政务AI系统!

在数字化、智能化成为新质生产力核心驱动力,十五五政务数字化转型加速推进的背景下,智慧政务建设成为各地政府提升治理能力的关键。但当前政务领域普遍面临数据处理效率低、AI 模型适配性差、服务自动化水平不足、敏感数据管理难等痛点,通用大…...

ngx_create_pidfile

1 定义 ngx_create_pidfile 函数 定义在 ./nginx-1.24.0/src/core/ngx_cycle.cngx_int_t ngx_create_pidfile(ngx_str_t *name, ngx_log_t *log) {size_t len;ngx_int_t rc;ngx_uint_t create;ngx_file_t file;u_char pid[NGX_INT64_LEN 2];if (ngx_process >…...

Windows 11界面自定义终极指南:使用ExplorerPatcher恢复经典体验

Windows 11界面自定义终极指南:使用ExplorerPatcher恢复经典体验 【免费下载链接】ExplorerPatcher 提升Windows操作系统下的工作环境 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher 还在为Windows 11 24H2的新界面感到不适&#xff1f…...

ProDino MKR Zero工业RS-485与LoRaWAN开发指南

1. ProDino MKR Zero 硬件平台与配套库深度解析ProDino MKR Zero 是 KMP(KMP Electronics)面向工业物联网边缘节点推出的紧凑型 ARM Cortex-M0 开发平台,基于 Microchip SAMD21G18A 微控制器(48MHz 主频、256KB Flash、32KB SRAM&…...

Qwen3-ForcedAligner-0.6B效果实测:不同方言口音(潮汕/客家/闽南)识别对比

Qwen3-ForcedAligner-0.6B效果实测:不同方言口音(潮汕/客家/闽南)识别对比 1. 引言:当AI语音识别遇上“十里不同音” 你有没有遇到过这样的尴尬?用手机语音转文字,自己明明说的是普通话,结果出…...

Instagram数据提取完全指南:Toutatis实战揭秘与高效应用

Instagram数据提取完全指南:Toutatis实战揭秘与高效应用 【免费下载链接】toutatis Toutatis is a tool that allows you to extract information from instagrams accounts such as e-mails, phone numbers and more 项目地址: https://gitcode.com/GitHub_Trend…...

X-NUCLEO-IHM02A1双步进电机驱动开发与L6470嵌入式控制实践

1. X-NUCLEO-IHM02A1 电机控制扩展板技术解析与嵌入式驱动开发实践X-NUCLEO-IHM02A1 是意法半导体(STMicroelectronics)推出的高性能双通道步进电机驱动扩展板,专为 STM32 Nucleo 开发平台设计。该板基于 L6470 智能功率级芯片构建&#xff0…...

嵌入式硬件工程师如何转型管理者

嵌入式硬件工程师的职业发展路径:从技术专家到管理者的转型指南1. 职业发展概述1.1 技术与管理双轨发展在嵌入式硬件工程领域,职业发展通常呈现两条路径:技术专家路线和管理路线。对于希望转向管理岗位的工程师,需要理解技术能力与…...

【2026年小红书春招- 3月25日 -第三题- 字符置换】(题目+思路+JavaC++Python解析+在线测试)

题目内容 为了提升小红书笔记标签的可读性,我们计划对标签字符串进行一次双向字符置换操作,以获得更小的字典序结果。 具体地,给定一个长度为 nnn 的字符串 sss(下标从 $1 开始),你可以进行一次如下操作:选取三个整数开始),你可以进行一次如下操作: 选取三个整数...

【2026年小红书春招- 3月25日 -第二题- 互评操作】(题目+思路+JavaC++Python解析+在线测试)

题目内容 现在有 n n n 条$ Plog$ 在首页上排成一列,队尾在下侧,队头在上侧。 用长度为 n n n 的$ 01 $串 s = s 1 , s 2 , … , s n s=s_1,s_2,…,s_n...

【2026年小红书春招- 3月25日 -第一题- 数据库】(题目+思路+JavaC++Python解析+在线测试)

题目内容 小红书数据库中有用户编号、用户名称和用户经验三个字段,其中: 用户编号为 111 到 10910^910...

分布式能力不是功能,而是一种架构约束

网罗开发(小红书、快手、视频号同名)大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方…...

Au新手入门指南:从零开始掌握音频编辑基础

1. 认识Adobe Audition:你的第一把音频手术刀 第一次打开Adobe Audition(简称Au)时,满屏的波形图和专业术语可能会让你头皮发麻。别担心,这就像第一次拿手术刀的外科实习生——工具看起来很专业,但基础操作…...

保姆级教程:用Qt搞定蓝牙串口通信,从连接云台到指令队列完整流程

保姆级教程:用Qt实现蓝牙串口通信全流程实战 在智能硬件开发领域,蓝牙串口通信就像一座连接数字世界与物理世界的桥梁。想象一下,你手中的Qt程序能够通过简单的指令让云台精准转动,或者让智能小车按照预定路线行驶——这种"软…...

叠层母排市场洞察:至2032年将攀升至近101.7亿元

据恒州诚思调研统计,2025年全球叠层母排收入规模约34.63亿元,至2032年将攀升至近101.7亿元,2026-2032年复合增长率(CAGR)达14.2%。这一增长受新能源汽车电驱系统、风光储变流器等电力电子领域需求爆发驱动,…...

新概念英语第一册083_Going on holiday

Lesson 83: Going on holiday Watch the story and answer the question Where did Sam go for his holiday this year? He stayed at home.Key words and expressions mess n. 杂乱,pack v. 包装,打包,装箱suitcase …...

【数据结构与算法】第5篇:线性表(一):顺序表(ArrayList)的实现与应用

一、什么是顺序表顺序表是最简单的一种线性结构。用一段地址连续的存储单元依次存储数据元素。你可以把它理解为一个可以自动扩容的数组。C语言的原生数组长度是固定的,不够用的时候只能重新申请更大的数组,把数据搬过去。顺序表封装了这个过程&#xff…...

告别WSL1!手把手教你将WSL升级到WSL2,并更新Linux内核到最新版(2024保姆级教程)

2024终极指南:从WSL1无缝迁移至WSL2并升级Linux内核 如果你还在使用WSL1,可能会遇到Docker运行缓慢、文件系统操作卡顿等问题。WSL2带来了完整的Linux内核支持,性能提升显著。本文将带你完成从WSL1到WSL2的完整迁移,并确保你的Li…...

RT-Thread线程管理与调度机制详解

RT-Thread线程管理深度解析1. 嵌入式实时操作系统中的线程概念在嵌入式实时操作系统(RTOS)中,线程是最基本的调度单位,也被称为任务。与裸机编程的单线程模式不同,RTOS通过多线程机制实现了任务的并发执行。裸机系统通常采用一个无限循环结构…...