什么是分块?
Scrapeless Web Unlocker 会获取网页内容,你的应用程序可以对其进行规范化并拆分成用于检索的片段。
分块是将源材料划分为检索系统可以索引和返回的单元的过程。在检索增强生成中,这些单元会成为答案的候选证据。目标是在保留足够上下文以使一段文本有用的同时,使检索到的材料尽可能聚焦于问题本身。
“Chunk”(块)是一种设计选择,而不是通用的文档格式。一个段落、一个完整的小节、一个带有标签的表格,或一个结构化的代码单元,都可以是合适的块。仅凭块的大小无法判断该单元是否包含一个完整的答案。需要检查它的边界、所附带的上下文,以及它与原始来源之间的关系。
为什么在检索之前要拆分文档?
文档通常包含多个主题,而用户只会询问一个特定问题。通过切分,检索可以选择相关部分,而无需将整个源文档提供给回答模型。这也让索引能够获得更聚焦的表示。将整本手册作为一条记录进行嵌入,可能会模糊彼此无关章节之间的区别。
The 检索增强生成架构 使用检索到的外部信息来支持生成。分块有助于确定这些外部信息在实际语料库中的呈现方式。它不会凭空创造缺失的证据。如果原始页面从未包含该答案,或者在抽取过程中被丢弃了,那么更改分块器也无法恢复这些缺失的内容。
固定拆分与结构感知拆分有何不同?
固定大小的切分器会根据配置的长度来划分文本。结构感知型切分器会使用诸如标题、段落、列表、表格或代码块之类的边界,通常还会带有大小限制。递归策略可以优先选择较大的结构边界,当某个部分超过允许的输入大小时再退回到较小的边界。
对于一个假设的退货政策,请将资格声明与其后紧随的例外情况保持在一起。将这些句子分开,可能会导致被检索出的段落看起来授权了某些实际上被完整政策所排除的内容。对于表格,请保留解释每个数值的行和列标签。正确的单位应当跟随读者所需的证据,而不是将每一串标记序列都视为同样自洽的整体。
| 策略 | 边界基准 | 要检查什么 |
|---|---|---|
| 固定大小 | 配置后的文本长度 | 句子拆分与缺失限定条件 |
| 请提供需要翻译的英文文本。 | 标题和文档元素 | 部分过大或相互依赖度过高 |
| 语义 | 表示的主题变化 | 额外处理和不稳定边界 |
| 父级展开 | 检索到的子项加上相关上下文 | 不相关的附加内容和版本冲突 |
语义分块带来了什么?
语义分块使用内容的表示来根据主题或含义的变化选择边界。一种常见的设计是比较相邻句子的表示,并在它们之间的关系发生足够大的变化时开始新的分组。其行为取决于嵌入模型、分段方法和边界规则。
语义切分会增加处理开销,并且可能产生与作者原始文档结构不一致的边界。在采用之前,应将其与更简单的基线方法进行比较。带有清晰标题的页面可能只需要基于结构的切分,而篇幅很长且缺乏结构的转录文本则可能更适合使用另一种方法。不要因为出现“语义”一词就想当然地认为能获得更连贯的段落或更好的答案。检索到的证据必须能够证明它在你的问题和语料上的确带来了改进。
你应该如何选择分块大小和重叠量?
区块大小应适应输入约束以及回答目标问题所需的证据量。重叠会在相邻单元之间重复部分内容,以便边界附近的信息仍然可用。较大的重叠可能会返回重复的段落,并在不增加新证据的情况下消耗答案上下文。
选择候选项,然后用具有代表性的问题来评估它们。包括一个用一段简短段落回答的问题、一个需要邻近例外的问题,以及另一个需要多个部分的问题。没有一种单一的 token 数量适用于每种来源类型和模型。研究关于 RAG 配置实践 强化了这样一种认识:应将流水线视为一组相互作用的选择,而不是将某个参数视为普遍最优。
在对网页内容进行分块之前必须完成哪些工作?
在拆分之前,应先获取并规范化网页内容。移除无关的导航和重复的页面框架,同时保留标题、列表、表格关系以及其他承载含义的结构。在允许的情况下保留原始源代码,以便审阅者能够定位信息丢失或被修改的位置。
The Web Unlocker 内容获取步骤 为下游处理提供材料。你的应用程序仍然负责抽取和切分。 语义分块流水线 形成这种分离。一次成功的响应中可能包含意料之外的文档,因此在将页面视为有效输入之前,先检查其页面标识和主要内容。否则,分割器可能会为一个错误页面生成形式完美的文本块。
哪些元数据应该随块一起传递?
一个块应保留指向其源版本及其在该版本中位置的链接。实用的元数据包括:源标识符、标题路径、段落位置、内容版本、集合上下文以及访问范围。当需要在原始页面之外解读段落时,文本中可以携带简明的标题前缀。
该 溯源数据模型 为派生信息及其源活动提供了一套词汇。在实际索引中,同样的原则意味着引用应解析到真正产生检索到段落的那份材料。如果没有版本边界,不要为不相关的文本重复使用同一段落标识符。被修改或删除的文档,其派生块也必须相应更新。
如何测试边界是否有效?
用其支撑段落已经过审查的问题来测试分块。检查检索结果是否返回了完整证据,重要限定条件是否仍然附着,以及重复重叠是否挤占了独立信息。然后评估答案是否准确使用了检索文本。仅仅视觉上整齐的块远远不够。
该 RAG 评估框架研究 区分了检索和生成方面的关注点。在评审中应用这种分离。如果正确的块缺失,排查分块和检索;如果正确证据已在上下文中但答案忽略了限制条件,则排查上下文组装或生成。在比较分割器候选方案时,保持语料库和问题集固定,这样结果才能衡量边界变更的影响。
何时应检索多个块?
当问题需要超出单个索引单元的上下文时,应检索相关材料。系统可以搜索更小的段落并扩展到父级章节,恢复相邻段落,或组合多个不同来源。扩展操作应增加相关证据,并遵守答案模型的上下文预算。
对于一个假设的集成问题,一个段落可能定义了认证,而另一个段落说明该操作的先决条件。答案需要二者,但不需要所有不相关的端点说明。保留文档间的关系,以便扩展可以有的放矢。在合并文本前还要检查不同版本间的矛盾。如果一个答案由各自相关的块拼接而成,但其中一段描述的是旧配置、另一段描述的是当前配置,它仍然可能是错误的。
分块变更记录应包含什么?
分块变更记录应标明源语料库、分割器配置、生成的段落版本以及用于比较它们的评估方法。保留先前配置足够长的时间,以便解释回归现象。即使源文档本身没有变化,边界变更也可能改变标识符、重叠情况与检索排序。
对于一个包含表格的假设手册,改进后的分割器可能会将列标签保留在每一行相关数据旁。验收检查应询问:表格类问题现在是否能检索到可解读的证据。总块数无法回答这个问题。它可以帮助解释处理成本,但评审仍然需要查看返回的段落及据此生成的答案。
规划迁移,使旧单元和新单元可区分。如果两个版本同时可检索,重复证据可能主导结果集或产生具有误导性的引用。单独构建替换集合或使用显式版本过滤器,然后在相同的已评审问题上进行对比。一旦替换方案被接受,就按既定生命周期移除被取代的单元。其目标是更清晰的证据边界和可度量的检索变化,而不仅仅是不同的段落长度分布。
结论
分块决定了检索系统可以返回的证据单元。在调整大小之前先保留源文义,在同一问题集上比较策略,并同时检查支撑证据的完整性和重复上下文。让每个段落都与其源版本保持连接,以便未来更新和引用仍然值得信赖。
通过 Scrapeless Web Unlocker获取页面,在你自己的语料库上比较分割器候选方案,并使用 Scrapeless pricing 为源集合阶段制定预算。
为有用的块收集内容
获取源页面,保留其结构,并评估你自己的段落边界。
立即注册即可获得 $5 in free credit — 无需信用卡.
领取你的 $5 额度 →常见问题
分块和分词是同一回事吗?
分块会创建可检索的内容单元,而分词会将文本转换为模型处理的基本单元。一个块可以包含许多 token。token 数量有助于执行大小限制,但并不能判定一段文本是否包含完整证据。
RAG 的最佳分块大小是多少?
最佳分块大小取决于语料类型、问题类型、嵌入模型以及答案上下文限制。使用已评审的问题和支撑段落比较候选配置。默认大小只是一个起始假设,而不是基于证据的最优值。
重叠是否总能改进检索?
重叠不一定总能改进检索。它可以保留边界上下文,但过度重复会挤占独立证据。既要评估检索段落的完整性,也要评估发送给答案模型的重复材料量。
更改块是否需要更新嵌入?
更改由某个块表示的文本时,需要在所选嵌入工作流下生成与之匹配的表示。保持段落、向量和元数据对齐,并移除被取代的记录,以免检索混入互相冲突的源版本。