首页 / 文章

向量型与非向量型RAG

向量型与非向量型RAG:何时嵌入模型和向量数据库物有所值,何时基于文档结构的推理更有效,以及应衡量哪些指标。

发布者:REACTAPP.TOP阅读约 14 分钟3297 词

来源: Vector vs Vectorless RAG

可将此内容视为针对操作人员的《向量式与非向量式RAG》中概念的重构版本:清晰的阶段划分、有序的代码模块,以及能在交接过程中保留的恢复说明。

1. 执行摘要

将“执行摘要”这一阶段视为可衡量的基准最为有效。在扩大范围之前,先记录一份最佳处理方案、一个故障案例以及回滚说明。 优先选择小型且可测试的单元,而非冗长的脚本。当某一步骤出现故障时,故障应指向单一责任主体,而非复杂的流程链。 应将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。

2. 引言:非向量式RAG的出现

2 引言:将舞台作品的生成过程视为可测量的对象最为有效。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。 将这一阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,绝不允许出现无声无息的半完成状态。 将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应强制要求重新编写另一项。

documents
↓
chunking
↓
embeddings
↓
vector database
↓
similarity retrieval
↓
LLM generation
Documents
↓
Structural Parsing
↓
Tree Index Creation
↓
Hierarchical Search
↓
LLM Generation

3. 研究假设

将“3个研究假设”阶段视为可测量的框架最为有效。在扩大范围之前,先记录一份优秀的示例文本、一个失败案例以及回滚说明。在功能结果旁同时记录处理时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。应将分块策略与检索策略分开,当质量指标发生变化时,修改其中一项无需强制重写另一项。

H1 — 结构化文档的优势

H1结构化文档优势阶段在被视为可度量的对象时效果最佳。在扩大范围之前,先记录一份优秀的转录文本、一个失败案例以及回滚说明。 将配置与应用程序代码分开。环境文件、密钥存储和功能标志应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。 将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。

H2 — 多文档消歧

H2多文档消歧阶段若被视作可度量的对象,其效果会最佳。在扩大范围之前,需记录一份理想输出、一个失败案例以及回滚说明。 同时记录正常流程与恢复流程。重试机制、人工审核环节以及错误处理都属于产品功能的一部分,而非后续需要补充的内容。 应将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应强制要求重新编写另一项。 H2多文档消歧阶段若被视作可度量的对象,其效果会最佳。在扩大范围之前,需记录一份理想输出、一个失败案例以及回滚说明。 应将此阶段视为输入与经过验证的输出之间的契约。为相关输出命名,明确成功标准,杜绝无声的半完成状态。

H3 — 抗干扰能力

在H3噪声鲁棒性阶段,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。除了功能结果外,还需记录执行时间以及令牌或查询成本。提前显示成本信息,可避免在从演示环境切换到共享环境时出现意外费用。必须注明实际作为答案依据的段落;若没有引用,操作人员就无法区分是幻觉内容还是索引缺失导致的错误。

H4 — 混合优势

在H4混合优势阶段,应在修改代码之前明确输入参数、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,以便操作人员无需查看整个系统结构即可进行审计。 需引用实际作为答案依据的段落。如果没有引用,操作人员就无法区分是幻觉内容还是索引缺失导致的错误。

4. 基准测试方法

在4个基准测试方法阶段中,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误处理都属于产品功能的一部分,而非后续需要补充的内容。 必须引用实际作为答案依据的段落。没有引用的话,操作人员就无法区分是幻觉内容还是索引缺失导致的错误。 在4个基准测试方法阶段中,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功判定标准,杜绝默默完成部分任务的情况。

5. 检索流程与场景

在处理5种检索流程及相应阶段时,首先明确需求规范:所需输入、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续代码修改的规范性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免从演示环境过渡到共享环境时出现意外费用。 在调整提示词之前,先使用固定问题集测试召回率。仅仅更换提示词很难改善较差的检索效果。

SectionKeyword(基准值)

在处理 SectionKeyword Baseline 阶段时,首先写下相关约定:所需的输入参数、成功标志以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 将配置信息与应用程序代码分开存放。环境文件、密钥存储以及功能开关应集中管理,这样操作人员无需查看整个系统结构即可进行审计。 在调整提示词之前,先使用固定的问题集来测试召回率。仅仅更换提示词往往无法解决检索效果不佳的问题。

向量检索

在处理向量检索阶段时,首先需明确相关约定:所需的输入参数、成功标志以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及错误消息处理都是产品功能的一部分,而非后续需要补充的内容。 在调整提示词之前,先使用固定的问题集来衡量召回率。仅仅更换提示词很难解决检索效果不佳的问题。 在处理向量检索阶段时,首先需明确相关约定:所需的输入参数、成功标志以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 应将这一阶段视为输入与经过验证的输出之间的契约。为相关成果命名,定义成功判定标准,绝不允许出现无声无息的部分完成情况。

PageIndex(非向量型)

当将 PageIndex Vectorless 阶段视为可测量的表面时,其效果最佳。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。在功能结果旁同时记录处理时间以及令牌或查询成本。提前了解成本情况,可避免在系统从演示环境过渡到共享环境时出现意外费用。应将分块策略与检索策略分开,当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。

混合流程

将混合流水线阶段视为可度量的对象来处理时,其效果最佳。在扩大范围之前,先记录一份理想的转录结果、一个故障案例以及回滚说明。 将配置与应用程序代码分开。环境文件、密钥存储和功能标志应集中存放于一个位置,这样操作人员无需查看整个架构即可进行审计。 将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。

vector retrieval
↓
PageIndex refinement

S1 — 单个结构化文档

S1单结构文档阶段若被视为可度量的处理对象,效果最佳。在扩大范围之前,需记录一份理想的处理结果、一个故障案例以及回滚说明。 同时记录正常流程与恢复流程。重试机制、人工审核环节以及错误处理都属于产品功能的一部分,而非后续需要补充的内容。 应将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应强制要求重新编写另一项。 S1单结构文档阶段若被视为可度量的处理对象,效果最佳。在扩大范围之前,需记录一份理想的处理结果、一个故障案例以及回滚说明。 应将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,绝不允许出现无声的、不完整的处理结果。

S2 — 多文档

在S2多文档处理阶段,应在修改代码之前明确输入内容、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。除了功能结果外,还需记录处理时间以及令牌或查询成本。提前了解成本情况可以避免在从演示环境过渡到共享环境时出现意外费用。必须注明支撑答案的具体段落;没有引用的话,操作人员就无法区分是幻觉内容还是索引缺失导致的错误。

S3 — 多文档 + 噪声

在S3多文档噪声处理阶段,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,以便操作人员无需查看整个系统结构即可进行审核。 需注明实际作为答案依据的段落。若没有引用,操作人员就无法区分是幻觉内容还是索引缺失导致的错误。

S4 — 横向推理

在S4横截面推理阶段,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及错误处理都是产品功能的一部分,而非后续需要补充的内容。 当下一步操作为代码编写或工具调用时,应优先使用具有结构化格式且经过模式验证的输出,而非自由形式的文字描述。 在S4横截面推理阶段,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与经过验证的输出之间的契约。需为相关输出文件命名,明确成功判定标准,并杜绝无声的半完成状态。

6. 评估指标基准

在处理6个评估指标基准阶段时,首先明确合同条款:所需输入、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免从演示环境过渡到共享环境时出现意外费用。 在调整提示词之前,先使用固定的问题集来衡量召回率。仅仅更换提示词很难改善较差的检索效果。

6.1 文档检索

在处理“文档检索”阶段时,首先列出相关约定:所需输入、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。 在调整提示词之前,先使用固定的问题集来衡量召回率。仅仅更换提示词很难解决检索效果不佳的问题。

6.2 证据检索与依据确定

在处理6.2证据检索阶段时,首先需明确相关规范:所需输入、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及错误处理都属于产品功能的一部分,而非后续的优化工作。 在调整提示词之前,需先用固定的问题集来衡量召回率。仅仅更换提示词很难解决检索效果不佳的问题。 在处理6.2证据检索阶段时,首先需明确相关规范:所需输入、成功标志以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 应将此阶段视为输入与经过验证的输出之间的契约。为相关成果命名,定义成功判定标准,并杜绝默许部分完成的情况。

6.3上下文质量

将“6.3上下文质量”阶段视为可测量的指标时,其效果最佳。在扩大范围之前,先记录一份理想的转录结果、一个失败案例以及回滚说明。在功能测试结果旁同时记录处理时间以及令牌或查询成本。提前了解这些成本,就能避免在系统从演示环境过渡到共享环境时出现意外费用。应将分块策略与检索策略分开处理,当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。

6.4 检索延迟

将6 4检索延迟阶段视为可测量的指标时,其效果最佳。在扩大范围之前,先记录一份理想的处理结果、一个故障案例以及回滚说明。 配置应与应用程序代码分开。环境文件、密钥存储和功能开关应集中存放,以便操作人员无需查看整个系统结构即可进行审计。 分块策略与检索策略应分开设计。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。

7. 对比统计检验

将“7项比较统计测试”阶段视为可度量的对象来处理效果最佳。在扩大范围之前,先记录一个理想案例、一个失败案例以及回滚说明。 同时记录正常流程与恢复流程。重试机制、人工审核环节以及错误处理都属于产品本身的组成部分,而非后续需要补充的内容。 应将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。 将“7项比较统计测试”阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,绝不允许出现无声的、不完整的处理结果。

7.1 关键信号:实际场景中的Vector与PageIndex

在7.1“大舞台”阶段,修改代码之前需明确输入参数、该步骤的负责人以及退出标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。应在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。需注明实际作为答案依据的段落;没有引用的话,操作人员就无法区分是幻觉内容还是索引缺失导致的错误。

7.2 单文档场景:PageIndex的作用

在7.2单文档阶段,应在修改代码之前明确输入内容、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 配置信息应置于应用程序代码之外。环境文件、密钥存储以及功能标志应集中存放于一个位置,这样操作人员无需查看整个系统结构即可进行审核。 需引用实际作为答案依据的段落。如果没有引用,操作人员就无法区分是幻觉内容还是索引缺失导致的错误。

7.3 证据检索:隐藏的差异点

在7 3证据检索阶段,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程与异常恢复路径。重试机制、人工审核环节以及错误处理都是产品功能的一部分,而非后续需要补充的内容。 必须引用实际作为答案依据的段落。没有引用的话,操作人员就无法区分是幻觉内容还是索引缺失导致的错误。 在7 3证据检索阶段,修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应将此阶段视为输入与经过验证的输出之间的契约。需为相关输出文件命名,明确成功判定标准,并杜绝默默完成部分任务的情况。

7.4 延迟:虽非统计指标,但具有关键操作意义

在处理“7.4 延迟非统计指标”这一阶段时,首先需明确相关约定:所需输入、成功信号以及部分失败时的处理方式。这样的清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 在调整提示词之前,先使用固定的问题集测试召回率。仅仅更换提示词往往无法改善较差的检索效果。

8. 以FinanceBench案例展示场景分析

在处理包含阶段的8种场景分析时,首先需明确合同规范:所需的输入参数、成功标志以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 应将配置信息与应用程序代码分开存放。环境文件、密钥存储以及功能开关应集中管理,以便操作人员无需查看整个系统结构即可进行审计。 在调整提示词之前,需先使用固定的问题集来衡量检索的召回率。仅仅更换提示词往往无法解决检索效果不佳的问题。

8.1 示例1 — 单文档检索(S1)

在处理8.1示例1的阶段时,首先需写下接口规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 同时记录正常流程和异常恢复流程。重试机制、人工审核环节以及错误消息处理都是产品功能的一部分,而非后续需要补充的内容。 在调整提示词之前,先使用固定的问题集来衡量检索效果。仅仅更换提示词很难解决检索能力不足的问题。 在处理8.1示例1的阶段时,首先需写下接口规范:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 将这一阶段视为输入与经过验证的输出之间的契约。为相关输出命名,明确成功判定标准,杜绝无声的半完成状态。

8.2 示例2 — 多文档检索(S2)

将8.2示例2中的阶段视为可测量的界面时,其效果最佳。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。在功能结果旁同时记录处理时间以及令牌或查询成本。提前了解成本情况,可避免在系统从演示环境过渡到共享环境时出现意外费用。应将分块策略与检索策略分开,当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。

8.3 示例3 — 抗干扰能力(S3)

将“8 3 示例3”阶段视为可度量的对象来处理时效果最佳。在扩大范围之前,需记录一份理想的处理结果、一个故障案例以及回滚说明。 将配置置于应用程序代码之外。环境文件、密钥存储和功能开关应集中存放于一处,以便操作人员无需查看整个系统结构即可进行审计。 将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应强制要求重新编写另一项。

9. 讨论

将“9 讨论”阶段视为可度量的对象来处理时效果最佳。在扩大范围之前,需记录一份理想的处理结果、一个故障案例以及回滚说明。 需同时记录正常流程和恢复流程。重试机制、人工审核环节以及死信处理都是产品的一部分,而非后续需要补充的内容。

10. 局限性

11. 结论

12. 参考文献

操作检查清单