核心要点

  • Re-Reading(RE2,Re-Reading improves reasoning)是一种提示工程技巧:让模型「把问题再读一遍」。

  • 做法极简:在 prompt 里重复一遍用户的 query,并加一句类似「Read the question again」的提示,给模型二次审题机会。

  • 原理是给单向解码的模型一次「回看输入」的机会,对复杂推理类任务能提升准确率,且几乎零额外成本(仅多少量输入 token)。

  • Spring AI 用自定义 Advisor 在请求发出前拦截、改写 prompt 注入重复问题来实现,可复用、可插拔。

标准回答

什么是 Re-Reading(RE2)

Re-Reading(论文里叫 RE2,Re-Reading improves reasoning in LLMs)是一种简单到「白嫖」的提示技巧。核心动作只有一个:在提示词里把问题重复一遍,并附上一句「请再读一遍这个问题」。

它的直觉是:大模型是单向(从左到右)解码的,读到后半段时对前半段问题的「印象」已经变弱。把问题再写一遍,相当于让模型在开始推理前二次审题,重新建立对题目条件的注意力。对算术、逻辑、多条件约束这类复杂推理题,这个小改动常能带来准确率提升,而代价只是多了一点输入 token,几乎零成本。

典型 prompt 形态

text
{question}
Read the question again: {question}

也就是先放原问题,再用一句引导语把同一个问题重复一次,然后让模型作答。注意它增强的是模型对问题的理解,而不是给出额外知识。

用 Spring AI 的 Advisor 实现

Spring AI 的 Advisor 机制可以在请求真正发给模型之前拦截并改写它,非常适合实现 Re-Reading:

  • 自定义一个实现 CallAdvisor(及流式的 StreamAdvisor)的类,比如 ReReadingAdvisor
  • 在 advise 方法里取出用户的原始输入文本,按 RE2 模板拼成「原问题 + Read the question again: 原问题」,替换回请求中再放行给下游。
  • 把它注册到 ChatClient 的 advisor 链上(.advisors(new ReReadingAdvisor())),之后所有走这条链的请求都会自动应用 Re-Reading,业务代码无感知。

这样做的好处是可插拔、可复用:开关一加即可对推理类接口统一启用,不必在每处 prompt 里手动重复问题。

适用与局限

适用:数学、逻辑、多约束推理等需要严谨审题的任务。局限:对简单事实问答、闲聊几乎没收益,反而徒增 token;问题特别长时重复会明显抬高输入成本和上下文占用。所以应按任务类型选择性启用,而不是全局默认开。

常见误区

⚠️ 常见踩坑

别把 Re-Reading 当成万能增益全局开启——它只对复杂推理类任务有效,对简单问答和闲聊几乎无收益,还会因重复问题白白增加输入 token。对很长的 prompt,重复一遍会显著抬高成本和上下文压力,甚至挤占有效信息。它也不会给模型补充任何新知识,只是改善审题,不能替代检索增强或思维链

追问

追问 1Re-Reading 和思维链(CoT)是一回事吗?能不能一起用?

不是一回事,但可以叠加。CoT 是引导模型「分步把推理过程写出来」,作用在「怎么想」;Re-Reading 是让模型「把题目再读一遍」,作用在「读懂题」。一个改善推理过程、一个改善问题理解,互补。实践中常把 RE2 放在前面(重复问题)、再接 CoT 提示(Let's think step by step),两者结合在复杂推理上往往比单用任一个更稳。

追问 2为什么把问题重复一遍就能提升推理,背后机制是什么?

直觉解释是:Transformer 解码是单向的,模型生成答案时对靠前的问题条件注意力会衰减;把问题再放一次,等于在更靠近生成位置处「刷新」了关键条件,让自注意力能更充分地覆盖题目要求,类似人做难题时回头再读一遍题干。它增强的是对输入的编码与注意力分布,而非引入新信息,所以对条件多、易漏读的题收益明显。

追问 3为什么用 Advisor 实现而不是直接在每个 prompt 里手写重复?

用 Advisor 是为了关注点分离和可维护性。手写重复会让 RE2 逻辑散落在每处调用里,难以统一开关、难以复用。封装成 ReReadingAdvisor 后,它作为一个横切组件挂在 ChatClient 的 advisor 链上,统一拦截并改写请求,业务代码完全无感;要灰度、A/B 或下线只需增删这一个 advisor,还能和日志、检索增强等其他 advisor 组合编排,工程上更干净。

🔗 相似问题

同一考点的不同问法,面试官可能换着问,一起刷更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习