召回策略怎么设计:从问题约束到答案证据
用一个跨版本、跨地域的构造产品支持问题,讲清查询改写、多路召回、候选预算、父子片段和最终引用怎样遵守同一份证据契约。每个阶段都需要明确自己能选择什么、必须保留什么,以及不能据此承诺什么。
先带走这三个判断
90 秒 · 候选实验
- 先记约束再改写。一次 200 条是要与额度比较的条件,不能变成“只找额度等于 200 的文档”。
- 给互补证据留下候选空间。重排无法找回没有进入输入的额度说明。
- 按每项主张绑定证据。引用存在、支持结论、适用于本题,要分别检查。
文章目录
先把问题写成一份约束账本
固定一个构造问题:“产品 v2 的欧洲区,管理员可以把筛选后的记录批量导出成 CSV 吗?一次 200 条是否允许?”这里的产品、文档、能力与数量都为说明方法而设。资料中有一份 v2 通用指南,说明管理员可将非归档记录批量导出为 CSV;一份欧洲区额度说明,写明单次最多 100 条;另有 v3 的新版说明和只面向试验维护者的草稿。它们都可能提到导出,却不具有相同的适用范围。
期望回答由几个判断组成:能力存在,功能角色为管理员,对象范围是非归档记录,格式是 CSV,欧洲区单次上限为 100 条,所以 200 条不能一次完成。若用户的筛选结果包含归档记录,资料没有为这部分提供支持。能否拆成多次或跨区执行,也不应从现有说明顺手推出。
约束账本记录每个条件的值、来源、确定程度和作用位置。当前问题的明确要求、经过验证的实际身份、可信会话中的省略指代,以及分类器猜测,权威性不同。把它们都压成一条改写文本,会让后续阶段无法分辨哪些字段可以调整,哪些必须保留。
| 条件 | 来自哪里 | 约束什么 |
|---|---|---|
| 产品与 v2 | 当前问题明确指定 | 答案及证据的适用对象、版本 |
| 欧洲区 | 当前问题,需映射到可靠地域定义 | 地域规则与通用规则的适用关系 |
| 管理员 | 问句中的功能角色 | 产品能力的使用条件 |
| 实际请求身份 | 认证与授权系统 | 哪些材料可以被读取 |
| 单次 200 条 | 当前问题中的待判断条件 | 与额度规则比较,不是检索等值条件 |
| 导出主题、使用类目 | 主题明确,类目可能由路由推断 | 检索意图及可调整的搜索优先级 |
这张账本不是把所有值都变成相等过滤。若只搜索“额度等于 200”的文档,就会丢掉上限 100 的否定依据。管理员也可以读取适用于所有角色的说明;欧洲区可以使用明确覆盖所有地域的通用规则。真正需要检查的是规则是否适用、能否回答条件,而不是字符串是否一致。
改写可以补省略,不能让历史接管问题
假设上一轮问的是 v3 的账单下载,当前轮已经完整提出 v2 欧洲区的记录导出问题。当前问题应独立建立检索意图。上一轮的版本、对象与主题不能因为在历史里出现过,就被拼进新查询。历史有助于理解对话,但不自动拥有覆盖当前明确条件的权力。
省略或指代式追问通常需要从可信历史补全。用户明确声明持续适用的约束、已确认的任务状态,也可以保留在单独的上下文账本中,记录来源、有效范围与覆盖规则;普通历史话题不能自动成为持续约束。例如用户接着说“那欧洲区呢”,可以沿已确认的同一产品与版本补入地域变化;“这两个有什么区别”则需要找到明确的两个对象和比较维度。补全结果必须能说明每个继承字段来自哪一轮,不能借短问句新增一个未被提及的版本或角色。
否定与角色关系同样要保留。“不是 v3,只看 v2”不能同时把两个版本当正向关键词;“从旧版本迁到新版本”不能只记录出现了两个版本,还需要保留起点与终点。简单提取实体集合会丢失这些关系,而关系可能正是文档适用性的决定条件。
改写输出可以分成检索文本与结构化条件。文本用于词法和语义查询,账本继续携带版本、对象、地域、实际授权及待判断数量。每一路召回使用同一份条件,分类与扩展也从当前意图出发。若一个规划模块生成了更窄的搜索词,原始问题仍应保留,避免“查批量导出”逐渐变成回答“导出格式”。
当历史绑定不可靠或补全失败时,保留当前问题并明确缺少的判别条件,比悄悄继承上轮主题更可控。术语扩展则应发生在意图边界确定之后:把“批量下载”联系到“批量导出”可以帮助召回,但不能因此把记录导出改成账单下载。
硬过滤守边界,软提示保留覆盖
硬过滤排除本次不能使用的材料,软提示调整搜索方向或排序。授权、租户隔离和明确的来源访问边界应持续执行;不能因为候选为空、另一条路超时或重排分很高就放宽。用户能否使用管理员功能,与请求者能否读取某份说明,是两套条件,不能通过问句中的角色名称替代实际授权。
版本和地域也需要明确的适用规则。若文档只面向 v3,它不能支持 v2;若通用指南明确适用于 v2 的所有地域,则不应因缺少“欧洲区”字面标签被删除。适用范围是集合或层级关系,不总是等值匹配。没有确认的适用性应标为待判;缺少授权依据的材料则不能先进入模型。
地域专属条款与通用条款的优先关系,需要来源明确支持。更具体的标题不自动拥有更高权威,欧洲区标签本身也不会把通用额度覆盖掉。只有可靠的生效或替代关系才能解决冲突;无法确认时保留两份材料的范围和冲突状态,不能用排序分替来源决定哪一个数字有效。
类别与主题经常包含推断。导出能力可能归在使用指南,额度却归在作业配额。把分类器选出的“使用/导出”立即变成唯一搜索范围,会漏掉互补依据。可以先优先搜索主类目,再按明确触发条件扩展到相关类目,必要时在相同授权范围内去掉推断类目限制。每次扩展都应保留来源与触发原因。
类目层级本身也要有契约。查询上级类目时,应包含约定的子类目;不能用不受控的文本前缀匹配,把名字相近的其他类别也纳入。若用户明确要求“只使用正式产品指南”,这是来源边界,不应被当成可以随意软化的路由猜测。硬或软由字段职责决定,不由它叫 category、region 还是 topic 决定。
扩展带回的候选仍要通过适用性与证据检查。只命中“导出”主题并不意味着已经回答批量能力,也不能在欧洲区规则缺失时拿另一区域代答。明确冲突的地域材料可以排除;适用范围未知的材料不能被包装成确定依据。授权边界与业务不确定性应分别表达。
这种策略依赖元数据质量。文档若没有可靠版本、发布状态和适用地域,过滤越复杂,错误排除的机会也越多。设计召回时必须同时约定元数据维护、缺失处理和生效关系;不能把内容治理的欠账全部交给相似度模型。
词法与向量分工,融合保留分数语义
词法检索擅长利用明确词项、产品代号和少见术语;向量检索帮助连接不同说法。在构造案例中,“批量下载”可能找到写作“批量导出”的指南,而“v2”“CSV”“额度”这些明确要素也值得保留词法通路。两路能补充不同候选,但不保证任何一种组合都比单路更好。
可以保留当前问题查询、受控同义扩展等不同视角,但每路都携带相同授权与硬约束。扩展不是绕开原约束的第二入口。也不宜把问题拆得只剩一个词:“导出”“欧洲”“200”各自可能命中大量相关文本,却失去共同的判断对象。
原始分数来自不同量表。词法分受查询词项和语料统计影响,向量分来自相似度定义,规则综合分可能只是若干信号累加后归一化。它们即使都显示成小数,也不能直接相加。某个规则分映射到 0 至 1 时,1 只代表该量表上限,不代表答案百分之百正确。
按排名融合是一种可选方案。RRF 对各路名次累计 1/(k+rank),名次从 1 开始;这里的 k 是平滑常数,不是每路候选数量。它避开直接混用原始分数,但仍受各路候选窗口、常数和路线组成影响。参考:Elastic 的 RRF 说明这是一种设计选项,不能仅凭某个配置名称就断言实际链路采用了它。
融合后保留每个候选来自哪一路、原始名次及分数类型。多路都命中同一片段,可以增加检索一致性信号,却不是两份独立来源共同证明这段内容正确。排序相关性、规则可信度与主张支持性各有职责;高融合分仍需要后续检查正文是否真的给出了批量能力和欧洲区额度。
覆盖的是必要事实,去重的是重复负担
本题至少需要能力与额度两组事实。通用指南说明管理员可将非归档记录批量导出为 CSV,欧洲区条款说明单次上限 100。只留下其中一份,答案都可能不完整。覆盖应围绕这些必要事实观察,不能用候选总数或“命中了一篇导出文档”代替。
多路合并首先处理同一片段的重复,保留它的检索来源和各路信号。进一步需要识别同文档近似片段、别名来源或重复发布。否则一份长文档的十个相似片段会占满保留窗口,把另一份额度说明挤出去,列表看起来很丰富,实际只覆盖一个事实。
去重也不能过头。同一文档里的能力段和限制段可能互补,不应只保留分最高的一段后删除其余内容。可以按文档或章节分组控制重复,再保留能补足条件的片段。来源规范化负责识别同一出处,证据装配负责决定需要哪些内容,这两步的目的不同。
数量预算可以为必要子问题和独立来源留出空间,但不宜机械地每个类目各取一篇。若所有候选都缺少额度说明,固定配额不会凭空制造依据;若一篇完整章节已经覆盖全部事实,也不必为了来源数量多塞入冗余材料。预算分配需要随证据覆盖而调整。
相互冲突的说明不能当重复文本删掉。若两份欧洲区额度材料分别写 100 与 200,应核对版本、生效关系与权威范围;没有可靠替代关系时保留冲突状态。多个别名或多个片段重复同一条款,也不能通过“多数票”压过另一份来源。没有解决的冲突,应限制答案的确定程度。
给重排一个够用且有边界的候选池
重排比较问题与候选的关系,但只能选择已经进入输入的材料。先把候选缩成很小的最终列表,再对它重新排序,改变的是顺序,无法恢复先前丢失的额度说明。设计时应区分原始召回集合、融合去重集合、重排候选集合、重排输出和最终装配结果。
为便于说明,假设两路各取 18 个条目,原始上限为 36,去重后最多选 24 个进入重排。最终上下文可以仍保持原有预算。这些数量仅是构造演示,不是推荐默认值,也不意味着 24 一定足够。候选窗口影响可选择的证据,上下文预算影响最终可读材料,两者应分别验证。
重排前的门禁要区分硬冲突与弱信号。无权读取或明确版本不符的材料不能靠高重排分重新放行;在合法范围内、词面信号较弱但可能提供额度依据的候选,则可以进入受控候选池继续比较。如果过早只保留高规则分片段,重排再强也看不到这些补充材料。
候选池不是越大越好。更多条目增加成对计算、服务延迟和噪声;模型看到的候选还可能因长度限制丢失条件。应观察扩大窗口后必要事实是否增加,新增候选是否主要是同文档重复,以及处理成本怎样变化。保留数量也不能单独作为重排改善的证据。
重排超时或失败,需要明确降级状态,并沿用已通过安全边界的基础候选。不能把服务不可用解释成“知识不存在”。影子比较可以观察排序策略的变化,但授权约束始终执行;实际采用了哪套排序,也要被记录,而不能把影子输出混进最终来源。
候选实验 · 只改变窗口大小
额度说明,到底在哪一步被挡住了?
固定构造数据与确定性选择规则;不调用真实模型,也不测量线上效果。
问题不变:v2 欧洲区管理员能导出筛选后的记录为 CSV 吗?一次 200 条是否允许?
词法 18 + 向量 18,重复 6,去重后 30 · 最终最多 2 个片段
必要证据组覆盖 1 / 2
额度说明 D22 排在第 22 位,还没有进入候选池。
D01 · 能力与范围管理员可以将非归档记录批量导出为 CSV。本规则适用于 v2 各地域。
D02 · 操作入口在记录列表选择“导出”,打开导出设置。
当前材料可以支持的答案
管理员可将非归档记录导出为 CSV;当前材料不足以判断欧洲区一次 200 条是否允许。
查看全部 30 个候选与融合顺序
RRF = Σ 1 / (60 + 名次),名次从 1 开始,同分按编号升序。60 是融合常数。演示优先选择 capability 与 quota 两组的互补片段,其余按融合顺序补齐;这不是一个真实重排模型。
| ID | 词法 / 向量 | 片段原文 | 必要证据组 |
|---|---|---|---|
| D01 | 1 / 1 | v2 通用导出指南 / 能力与范围 管理员可以将非归档记录批量导出为 CSV。本规则适用于 v2 各地域。 | capability |
| D02 | 2 / 2 | v2 通用导出指南 / 操作入口 在记录列表选择“导出”,打开导出设置。 | 无 |
| D03 | 3 / 3 | v2 通用导出指南 / CSV 字段 CSV 文件包含所选字段的列名。 | 无 |
| D04 | 4 / 4 | v2 通用导出指南 / 文件命名 导出文件名使用任务创建时间与名称。 | 无 |
| D05 | 5 / 5 | v2 通用导出指南 / 完成提示 文件准备完成后,界面显示下载入口。 | 无 |
| D06 | 6 / 6 | v2 通用导出指南 / 字段选择 导出设置中可以选择需要包含的字段。 | 无 |
| D07 | 7 / — | v2 使用指南 / 筛选面板 记录列表的筛选面板可以查看当前筛选条件。 | 无 |
| D08 | — / 7 | v2 使用指南 / 设置页面 导出设置位于记录列表操作菜单中。 | 无 |
| D09 | 8 / — | v2 CSV 格式说明 / 字符编码 本演示导出文件使用 UTF-8 编码。 | 无 |
| D10 | — / 8 | v2 CSV 格式说明 / 表头 文件第一行是字段表头。 | 无 |
| D11 | 9 / — | v2 使用指南 / 保存位置 浏览器下载设置决定本地文件保存位置。 | 无 |
| D12 | — / 9 | v2 使用指南 / 下载入口 已完成任务的下载入口位于任务详情中。 | 无 |
| D13 | 10 / — | v2 CSV 格式说明 / 日期展示 日期字段按导出设置中的格式展示。 | 无 |
| D14 | — / 10 | v2 CSV 格式说明 / 空值 空字段在文件中保持为空。 | 无 |
| D15 | 11 / — | v2 使用指南 / 任务名称 创建任务时可以填写便于辨认的名称。 | 无 |
| D16 | — / 11 | v2 使用指南 / 任务列表 任务列表显示名称和创建时间。 | 无 |
| D17 | 12 / — | v2 CSV 格式说明 / 列顺序 导出设置中的字段顺序决定 CSV 列顺序。 | 无 |
| D18 | — / 12 | v2 CSV 格式说明 / 字段别名 字段别名用于文件表头展示。 | 无 |
| D19 | 13 / — | v2 使用指南 / 完成通知 导出任务完成时可以在通知区域查看提示。 | 无 |
| D20 | — / 13 | v2 使用指南 / 任务备注 任务详情可以展示创建时填写的备注。 | 无 |
| D21 | 14 / — | v2 使用指南 / 列表排序 记录列表可以按创建时间排序。 | 无 |
| D22 | — / 14 | v2 欧洲区额度说明 / 单次额度 欧洲区批量导出单次最多 100 条。本条款适用于 v2。 | quota |
| D23 | 15 / — | v2 CSV 格式说明 / 文本换行 包含换行的文本字段按 CSV 转义规则输出。 | 无 |
| D24 | — / 15 | v2 使用指南 / 文件详情 文件详情显示名称、格式和创建时间。 | 无 |
| D25 | 16 / — | v2 CSV 格式说明 / 文本分隔符 文本包含分隔符时使用相应的 CSV 转义形式。 | 无 |
| D26 | — / 16 | v2 使用指南 / 备注展示 列表中的备注用于帮助区分导出任务。 | 无 |
| D27 | 17 / — | v2 使用指南 / 任务查找 可以通过任务名称查找既有导出任务。 | 无 |
| D28 | — / 17 | v2 CSV 格式说明 / 数字字段 数字字段的显示形式遵循当前导出设置。 | 无 |
| D29 | 18 / — | v2 使用指南 / 文件名提示 下载前可以在任务详情查看导出文件名。 | 无 |
| D30 | — / 18 | v2 使用指南 / 完成状态 任务详情区分准备中与已完成状态。 | 无 |
进入候选池只是必要条件,真实重排仍可能漏选 D22。24 不是通用最优参数;三个状态都没有证明归档记录可导出,也没有支持分批绕过单次限制。
子片段负责定位,父级负责补全条件
小片段有利于定位细节,较完整的章节有利于保留上下文。父子组织把这两种职责分开:用子片段参与主要检索,命中后按明确关系加载相应章节父级。本题可能先找到“单次 100 条”的表格行,再补齐同一份额度说明中的欧洲区标题、表头和额度注释。管理员与非归档条件来自另一份通用指南,需要在证据装配时与额度说明组成跨文档证据组,不能假设额度片段的父级天然包含全部条件。
父级不应默认等于全文。把整本指南作为每个命中的上下文,会带回多个版本、无关功能和其他地域条款,也可能抵消细粒度定位的价值。更合适的边界往往是能够解释该规则的完整章节或表格单元,但具体切法仍取决于材料结构,需要对照验证。
索引中的存储角色要清楚。父级与子级同时无差别进入主要检索,会让同一内容反复竞争名次,产生“命中很多”的错觉。可以给用于主要召回的记录和用于扩展的记录明确区分,同时保留兼容旧资料的规则,避免一次结构升级让旧文档全部失去可检索性。
产品适用版本与索引结构版本不是一回事。父子校验通过,只说明片段按照约定结构关联,不说明它适用于产品 v2;发布修订、生效时间与结构迁移代次也不能互相代替。装配时既要验证父子关系,又要保留业务适用账本,避免把技术兼容误当作内容适用。
扩展加载必须再次执行授权、来源、文档范围及结构版本检查。子片段可读,不足以自动授权读取它指向的一切内容;错误的父级指针也不能把另一份文档带进来。加载结果还应校验父子属于同一出处、同一文档及预期结构关系。找不到安全匹配的父级时保留合法子片段并标记补齐未完成。
可以对子片段重排后补齐,也可以先做有限补齐再重排,关键是记录重排实际看了什么。若最终内容从子片段换成父级,沿用子片段分数只表示该内容因子片段命中而被选中,不表示整段父级已经重新评分。需要保留命中子片段和最终扩展父级之间的关系。
补齐不能免除总预算。多个子片段指向同一父级时可以合并,互补条件则应保留;超过预算时优先保留完整的必要证据组,避免简单剪掉结尾的限制句。结构化补齐解决条件连贯性,它没有自动证明材料适用或答案受到支持。
把候选装配成有适用关系的证据
候选契约回答“为什么找到它”,证据契约回答“它能支持什么”。本题可以把通用能力指南与欧洲区额度说明装成一组:前者支持管理员、CSV 与非归档范围,后者支持单次 100 条。每项支持都需要绑定当前候选、来源修订、原文位置和适用条件,不能只留下一个摘要结论。
引用文本真实存在,只证明文本出处有效,尚未证明适用性。v3 原文也可能准确包含“1000 条”,但无法支持 v2;另一地区的条款可能正确,却不能代答欧洲区。适用关系应明确为直接支持、有条件支持、部分支持、不匹配或仍待确认。不能靠对象名称大致相似就判定覆盖。
如果让模型协助选择证据,应把选择范围约束在本次候选及可验证位置上,再由程序核对标识和原文。不能接受模型自由输出一个熟悉的文档名,或把不同候选的文字拼成一段看似连续的引用。语义适用性仍需单独判断,位置校验不能替代内容理解。
证据组需要保留规则与条件的完整关系。“可以导出”旁边的角色、区域、额度与排除对象,不应因为摘要更短就被删去。若必须控制长度,可以减少重复或选择更完整的章节;不能把限定删掉后,继续声称它支持原来的范围。
回答边界按子问题确定。已有材料足以确认能力和否定单次 200 条,就回答这些部分;若未说明归档记录,准确说明这一缺口。部分支持不应被折成“全部可行”,也不必被折成整题没有依据。需要用户补充什么,与需要知识来源补充什么,也应分开。
例如用户没说实际使用地域,额度存在地域差异,此时地域是必要判别条件,可以澄清;而地域已经明确为欧洲区,只是缺少欧洲区条款,重复追问用户不会增加知识依据。技术失败、没有候选、候选不匹配和缺少用户条件,是不同状态,不能共用一个含糊的拒答结果。
最终采用不能从召回列表倒推
一份文档可能被召回、进入重排、被装入上下文,却没有被答案引用。治理记录需要区分这些阶段。把“被检索到”写成“实际使用”,会夸大采用范围;把进入上下文的全部材料作为最终来源,也会让读者误以为每一份都支撑了答案。
来源关系应能从最终引用回到本次生成,再回到装配证据、扩展父级、命中子片段及检索路线。规范出处可以合并别名与重复发布,但仍需保留片段与来源修订。文档级采用告诉我们用了哪个出处,主张级映射告诉我们它支持答案的哪一部分,两种粒度不能互相替代。
同一轮可能调用多个知识工具或同一工具多次。引用还应归属正确的调用,不能仅按工具名字把所有候选混在一起。否则某份额度说明在一次扩展查询中返回,却被记录成主查询的采用;回放与成本分析都会受到影响。引用标识、调用归属和最终规范来源需要共同闭合。
最终采用可以依据经过校验的显式引用标记或结构化选择,不能仅因为答案与文档措辞相似就补写采用事实。若没有有效引用信息,准确状态是无法确认,而不是把最相似的候选算作使用。没有引用也不能证明模型内部完全没受它影响,这个内部过程不能靠一张来源表直接观察。
引用有效、引用内容支持主张、主张适用当前条件,仍是三个不同检查。展示给用户的来源可以更简洁,但用于复核的内部记录应保留必要关系,同时遵守权限与最小化原则。需要还原一次选择,不代表可以无差别永久保存所有原始材料。
用离线对照选择策略,并知道何时停止增加复杂度
对照数据围绕构造问题的邻近变化建立:问 v2 或 v3,问欧洲区或未明确地域,问管理员或普通成员,问 50 条或 200 条,使用完整问题或省略追问。功能角色变化与实际请求身份变化要分别测试;前者检验能力条件,后者检验文档访问边界,不能把两个变化绑在一起后解释结果。
还要覆盖困难输入:只有格式说明而没有批量依据,额度被放在表下注释,同一来源存在多个别名,两个合法生效材料相互冲突,父级加载失败,以及一路检索或重排服务降级。数量和身份不能只出现在正常题中,否则平均结果会掩盖越界风险。
固定来源修订、索引、实际授权、问题与历史、检索配置和上下文预算,然后分别比较词法单路、向量单路与混合策略。测试分类软化时先固定融合方式;测试候选窗口时先固定最终预算;测试父子补齐时比较条件完整性与成本。一次同时换多项策略,即使结果更好,也难以确定贡献。
指标分层解释。召回看必要事实与合法依据覆盖,候选池看互补证据是否可供选择,排序看它们是否进入保留范围,装配看限定条件是否完整,答案看正确性、忠实性与未知表达,采用记录看引用及调用归属是否闭合。授权违规和跨版本错误应单独统计,不能被多数容易题稀释。
除总体结果,还要看不同切片上的代价:同义表达是否改善,明确术语是否退化,缺依据时是否变得冒进,查询延迟和重排负担增加多少。候选数增加而最终必要事实未增加,可能只带来更多重复;上下文增长而限定仍会丢失,则需要改善装配,不宜继续扩大容量。
默认参数只是起点。候选窗、融合常数、规则门槛与父级长度都要对应材料结构和问题分布,并用固定输入验证。实现存在、配置启用、依赖可用和对照通过是不同事实;没实际执行的验证就保留为待验证,不把设计预期写成效果数据。
由工程实践中的判断整理,使用通用场景说明方法;示意架构、案例和数值不代表某个系统的生产验收或效果数据。
重排找不回未进入候选池的证据;答案只能走到证据支持的位置。
读完,留一句在书桌上
仅保存在当前浏览器。