什么是分块?RAG的文档拆分解释
无抓取的通用抓取API返回渲染的公共网络内容,可以供检索、索引和语言模型管道使用。
TL;DR
- 分块具有精确的操作意义。 这是将文档或数据流划分为更小的单位的过程,这些单位可以被索引、检索、处理或提供给模型。
- 输入和比较框架是重要的。 有用的结果始于干净的源内容、文档结构、分词器限制、检索目标、元数据规则和代表性用户问题。
- 输出需要来源。 带有标识符、源引用、位置、标题和其他必要元数据的有序文本单元应与生成它们的配置和源保持连接。
- 常见的捷径是错误的。 分块定义了检索单元;它不仅仅是将每个文档裁剪到相同的字符数。
- 评估属于实际任务。 测试代表性问题,检查失败案例并衡量结果是否支持下游决策。
什么是分块?
分块是将文档或数据流划分为更小单位的过程,这些单位可以被索引、检索、处理或提供给模型。这个定义是有用的,因为它描述了一个可观察的工作,而不是一个营销标签。您可以检查进入系统的内容、发生的转变、离开的内容以及哪些边界阻止结果被过于宽泛地解释。
分块定义了检索单元;它不仅仅是将每个文档裁剪到相同的字符数。实际单元是一个适合嵌入和生成管道的连贯可检索段落。这个单元保持分析的诚实性:一个输出可以在其记录条件下是有效的,而不是普遍的、永久的或适合不同的决策。
这个概念位于渲染、解析、主内容提取、标准化、去重、文档类型检测和嵌入、词汇索引、向量搜索、重新排序、上下文组装、引用和答案生成之间。这个位置解释了为何项目经常误诊失败。一个弱的上游来源不能通过复杂的下游组件得到修复,而一个强的中间结果仍然可能被丢弃其上下文的工作流滥用。
最有用的起始问题不是“哪个工具的功能列表最长?”而是“在什么条件下,系统必须返回什么证据,以便其他人或组件可以做出有根据的决策?”一旦这个问题明确化,分块的意义便变得具体。
分块器如何选择边界
分块始于干净的源内容、文档结构、分词器限制、检索目标、元数据规则和代表性用户问题。每个输入都会改变系统解决的问题,因此应记录默认值,而不是让它们保持不可见。缺失的上下文并不是中立的;它默默选择了一个可能与用户真正问题不同的范围。
在处理过程中,分块器识别边界,组合附近的内容,在有正当理由时添加受控重叠,保持层级和来源,并拒绝空的或模板化的段落。转换应当足够可分解以便进行检查。如果最终结果是错误的,审查者需要区分源问题与解析问题、检索或决策问题以及输出解释问题。
系统返回带有标识符、源引用、位置、标题和其他必要元数据的有序文本单元,用于索引和重建。生产记录应将这些输出与标识符、源信息、配置和相关的时间配对。来源将答案变成可以检查、更新、比较或删除的证据。
自然测量单元是适合嵌入和生成管道的连贯可检索段落,而结果并不是一个通用固定的标记计数,不应替代提取质量,也不应证明段落包含足够的证据以回答问题。当一个抛光的界面使条件观察看起来是决定性时,这个边界最为重要。好的系统保留了生成输出时的条件,并暴露不确定性,而不是隐藏它。
主要指导强化了这种学科。 原始RAG研究论文 定义相关的来源或技术表面, 斯坦福基于检索的模型章节 增加实现或测量上下文,以及 谷歌机器学习词汇表 提供治理、标准或研究框架。这些参考是有用的,因为它们描述了底层机制,而不是简单重复产品比较。
| 层 | 待回答的问题 | 需要保留的证据 |
|---|---|---|
| 输入 | 什么进入了分块工作流? | 来源、范围、配置、身份和权限。 |
| 转化 | 系统如何将输入转化为结果? | 模型或方法、版本、参数、中间记录和验证。 |
| 输出 | 消费者究竟可以依赖什么? | 架构、来源、分数或限制和完成状态。 |
| 评估 | 输出是否解决了预期任务? | 代表性案例、预期结果、错误、成本和延迟。 |
固定的、递归的、语义的和结构感知的分块
分块是全文索引、句子检索、段落检索、层次节点、表格感知解析和晚期交互方法中的一种选择。正确的选择取决于源的形状、新鲜度的需求、错误结果的成本、预期的更新率以及审核人员必须看到多少证据。当输入和规则稳定时,更简单的确定性方法通常是更好的选择。
组合通常比替换更重要。当任务的不同部分需要不同的保证时,团队可以将全文索引、句子检索、段落检索、层次节点、表格感知解析和晚期交互方法与分块一起使用。精确过滤器可以缩小候选集,学习方法可以对模糊情况进行排序,而人工审批可以保护重要的行动。
一个有用的架构在每个边界上命名所有权。渲染、解析、主内容提取、规范化、去重和文档类型检测在核心转换之前拥有条件。分块层拥有其定义的转换和记录。嵌入、词汇索引、向量搜索、重新排序、上下文组装、引用和答案生成则拥有结果对用户或系统的影响。当所有权明确时,评估结果指向一个可修复的阶段。
证明复杂性的常见用途
当分块减少现实信息或行动缺口时,并且其输出可以被审核时,它就赢得了一个位置。以下用途展示了不同形状的价值,而不假设一种配置适合每个组织。
叙述性文档
在可能的情况下将标题和段落放在一起,仅在重要参考经常跨越边界时才使用适度重叠。
有用的输出是与原始目标相关的可审查记录,而不是一个分离的分数或段落。团队应该记录塑造结果的配置,并在扩大工作流程之前与一小组具有代表性的案例进行比较。
API文档
将端点名称、参数表、示例和版本元数据保留为一致的单元,而不是合并不相关的方法。
有用的输出是与原始目标相关的可审查记录,而不是一个分离的分数或段落。团队应该记录塑造结果的配置,并在扩大工作流程之前与一小组具有代表性的案例进行比较。
政策和合同
保留章节层次和资格条款,以确保检索不会将规则与其例外或范围分开。
有用的输出是与原始目标相关的可审查记录,而不是一个分离的分数或段落。团队应该记录塑造结果的配置,并在扩大工作流程之前与一小组具有代表性的案例进行比较。
表格和混合布局
使用结构感知提取器,使表头与行保持一致,并记录一个稳定的回源链接。
有用的输出是与原始目标相关的可审查记录,而不是一个分离的分数或段落。团队应该记录塑造结果的配置,并在扩大工作流程之前与一小组具有代表性的案例进行比较。
失败模式和误导性捷径
大多数与分块相关的失败是边界失败,而不是神秘的模型行为。源可能不完整,范围可能是隐含的,转换可能会丢弃必要的上下文,或者输出可能被视为比实际更强的证据。仅记录最终响应会抹去区分那些情况下所需的信息。
- 在原始HTML提取后,拆分并嵌入导航、脚本、 cookie通知或重复的页脚文本。
- 由于习惯而不是通过测量对代表性问题的检索来选择块大小。
- 添加大型重叠,复制证据,增加存储,和在最终上下文中挤压重复文本。
- 丢弃标题和源位置,这使得检索的片段更难解释和引用。
不要盲目地通过添加更多数据来解决这些问题。额外输入可以增加噪音,复制证据,增加成本,并使审查变得更加困难。仅在测试证明它能修复代表性案例中的命名失败时,才添加源、参数、模型或工具。
安全和隐私也需要相同的具体性。将凭证限制为所需操作,将不可信内容与指令分开,最小化保留数据,并定义谁可以批准或撤销重要行动。一个技术上正确的结果仍然可能不可接受,如果收集或行动超出了其授权目的。
实用评估检查表
可信的评估在供应商选择之前开始。从真实任务中构建一个小的测试集,包括普通案例和困难的边界,并用另一位审核者可以应用的语言定义可接受的结果。目标是可重复的判断,而不是看起来令人信服的演示。
- 先写下决定。 说明谁消耗输出,它告知什么选择,以及当系统不确定时会发生什么。
- 冻结代表性输入。 包括真实工作中出现的不同源形状、语言、长度、边缘条件和权限范围。
- 测量中间阶段。 分别检查源质量、转换准确性、缺失字段、来源和最终任务结果。
- 测试负面案例。 包括缺少证据、冲突来源、格式错误的输入、无关内容和超出授权范围的请求。
- 记录操作成本。 测量延迟、计算或请求成本、存储、维护、审查时间,以及误报和漏报的后果。
- 定义发布边界。 决定哪些失败阻碍了启动,哪些需要人工审查,哪些可以在部署后监控。
评估应该在启动后继续,因为来源、用户问题、模型、接口和组织规则都会发生变化。示例生产轨迹、审核争议结果、刷新测试集,并保留版本信息,以便可以追踪更改。改进意味着在相同或更明确的约束下提供更好的任务证据,而不仅仅是更高的仪表盘数字。
Scrapeless 如何适应工作流程
Scrapeless Universal Scraping API 返回可以用于检索、索引和语言模型管道的呈现公共网页内容。它适用于必须从当前公共网页收集的信息的分块情况。该产品并不替代上述定义、评估、治理或下游决策逻辑。
实际集成边界很简单:通过适当的 Scrapeless 界面收集经过批准的公共来源,保留来源网址和收集上下文,清理或构建响应,并仅将所需证据传递到下一阶段。此分离使网络访问与应用推理独立,并使故障更易于检查。
在实施之前,请使用最后的参考部分中的产品文档确认当前请求界面。产品能力可能会发生变化,因此代码、参数和定量声明应来自实时文档和受控验证运行,而不是来自记忆中的示例。
结论
分块被最好理解为将文档或数据流划分为更小单位的过程,这些单位可以被索引、检索、处理或提供给模型。它的价值来自于明确定义的输入、可检查的转换、有界的输出,以及对真实下游决策的评估。与结果保持来源关联,选择满足要求的最简单方法,并将不确定性或缺乏权威视为停止或升级的理由。
准备构建一个扎实的 web 数据工作流程吗?
将分块项目与当前公共网络数据连接,并使用 Scrapeless Universal Scraping API,将收集层与您的应用逻辑分开。
今天注册并获得 $5 的免费信用 — 无需信用卡.
领取您的 $5 信用 →常见问题
RAG 的最佳分块大小是什么?
没有普遍适用的最佳分块大小。正确的范围取决于文档结构、嵌入限制、查询粒度、检索方法以及回答所需的上下文量。测试几种策略以应对标记问题。
以审核人员可以测试的术语记录选择:输入、预期行为、允许的范围和确认完成的证据。该学科防止方便的标签掩盖未经过审查的系统假设。
分块应该重叠吗?
重叠可以保留跨越边界的想法,但它也会重复内容并减少上下文多样性。添加可以改善测量检索或目标语料库答复支持的最小重叠。
以审核人员可以测试的术语记录选择:输入、预期行为、允许的范围和确认完成的证据。该学科防止方便的标签掩盖未经过审查的系统假设。
什么是语义分块?
语义分块将边界放置在意义变化附近,而不仅仅是在固定长度处。它可以帮助不均匀的散文,但会增加模型成本和复杂性,仍需与更简单的结构感知方法进行评估。
以审核人员可以测试的术语记录选择:输入、预期行为、允许的范围和确认完成的证据。该学科防止方便的标签掩盖未经过审查的系统假设。
如何评估分块?
衡量检索器是否为真实问题返回足够连贯的证据,然后检查引文边界、重复检索、上下文覆盖、索引大小、延迟和答复支持。端到端评估以及在检索时评估。
以审核人员可以测试的术语记录选择:输入、预期行为、允许的范围和确认完成的证据。该学科防止方便的标签掩盖未经过审查的系统假设。