Skip to content

Step-back Prompting:抽象问题与原则检索 ​

Step-back Prompting 是一种先获取背景知识、再回答具体问题的提示方法。它先将原问题抽象成一个更上位的问题,找出相关概念、规则或原则,再用这些知识辅助推理。接入 RAG 后,可以分别检索原问题和抽象问题,让具体条款与背景规则共同进入回答上下文。

例如,用户问“行程取消后还要按普通差旅期限提交吗?”直接检索这句话,可能找到一些取消行程的操作说明,却漏掉总则中对报销期限适用范围的规定。Step-back 会生成“差旅费用报销期限适用于哪些行程状态,有哪些例外”这样的上位问题,用它查找判断具体情况所需的规则。

抽象问题应该保留什么 ​

抽象需要减少限制,但不能把问题的主题也删掉。对于前面的请求,可以比较三种候选:

候选问题检索效果上的区别
取消差旅行程后要在多少天内提交报销?基本仍是原问题,只换了一种表达
差旅费用报销期限适用于哪些行程状态,有哪些例外?扩展到期限规则的适用范围,可能找到总则与例外条款
公司如何管理财务?范围过大,会引入预算、审计等无关材料

生成抽象问题时,应说明需要查找哪一类上位知识,并限制模型直接回答原问题。例如:

text
请为以下问题生成一个用于检索的上位问题。
保留主题,寻找回答它所需的适用范围、基本原则或背景知识。
不要回答原问题,不要假定某项例外已经存在。

原问题:行程取消后还要按普通差旅期限提交吗?

“有哪些例外”是在查找规则是否存在例外;“为什么取消行程可以延期”则已经引入了未经证实的前提。若模型生成后者,检索可能只围绕“延期”展开,后续回答也容易沿用这个假设。

原问题与抽象问题分别检索 ​

只检索上位问题,容易得到一般规则,却找不到当前场景的特殊条款。两路检索可以分别承担不同任务:

text
原问题:行程取消后还要按普通差旅期限提交吗?
  → 检索取消行程、退票费用、提交要求等具体条款

抽象问题:差旅费用报销期限适用于哪些行程状态,有哪些例外?
  → 检索期限总则、适用范围和例外规则

两路结果合并、去重
  → 保留具体事实和相关原则
  → 回答原问题

用上位规则解释具体证据 ​

假设总则写着“差旅费用应在行程结束后 30 个自然日内提交”,另有条款规定“取消行程产生的退票费用,应在退款结算后 15 个自然日内提交”。对于取消行程的退票费用,回答要给出后者的期限和计时起点,并说明它与普通行程规则的适用范围不同。

这里需要同时核对费用类型、适用版本和例外条款的范围。不能因为找到一条取消行程相关规定,就把它扩展到所有取消场景下的支出。

如果只找到总则,现有证据还不足以确认取消行程应采用哪个计时起点,也无法确认是否有专门条款。此时可以说明已找到普通差旅规则,但不能据此断定取消行程同样适用。Step-back 能扩大检索到相关背景的机会,不能替缺失条款作出规定。

合并后的片段应保留来源、版本和所属章节。回答模型需要知道哪一段是一般规则,哪一段是取消行程的专门规定,而不只是看到一组失去出处的句子。检索路径也可以记录下来,便于追查某条材料是被原问题还是抽象问题召回的。

与其他查询方法的区别 ​

方法对原问题做的处理产生的检索输入
查询改写补全指代、规范术语,保留原问题含义更适合检索的同义问题
Step-back提取上位概念或原则,扩大知识层次原问题与抽象问题
HyDE生成一段可能的答案文档,用其语义表示检索假想文档的向量
问题分解拆出需要分别回答的事实需求,必要时安排依赖多个子问题及其执行关系

例如,“今年提交期限比去年缩短了多少”需要分别取得两个年份的条款,适合问题分解;把它抽象成“报销期限如何制定”并不能取得做差需要的数字。若用户问的是“为什么取消行程的报销起点和正常行程不同”,补充适用范围与费用结算原则才更有帮助。

适用范围与额外代价 ​

Step-back 更适合需要背景原则才能解释的具体问题,例如技术故障背后的协议约束、某条制度的适用条件,以及科学问题涉及的基本规律。按编号找文档、查询某笔单据当前状态、提取一个明确日期,通常没有必要再生成上位问题。

抽象只改变查询文本的知识范围。查询可以从“取消行程”扩展到“各种行程状态”,但当前用户的访问范围不能随之扩大。已明确的制度版本、适用地区等条件也应继续约束检索,除非原问题本来就要求跨版本或跨地区比较。

两路请求应分别保留候选名额,再按文档 ID、块 ID 去重。若把抽象查询的结果全部追加进去,宽泛的总则可能挤掉原问题检索到的具体条款。需要重排时,可以结合原问题与抽象问题判断候选的用途;如果只按原问题的字面相似度筛选,也可能再次丢掉刚找回的背景规则。

两路检索会增加候选数量、重排工作量和上下文长度,生成抽象问题也多一次模型调用。若语料本身没有总则或背景文档,扩展问题往往只会引入相近主题的片段。出现这种情况时,应检查知识库是否包含所需背景,以及抽象问题是否过宽。

原始来源 ​

持续学习,持续实践。