Self-Ask 通过在提示词末尾插入固定短语"Are follow up questions needed here:"来触发模型的自提问行为。模型首先判断当前信息是否足以直接回答原始问题:若认为需要补充信息,则输出一条或多条以"Follow up:"开头的子问题;每提出一个子问题后,模型随即给出"Intermediate answer:"格式的中间答案,再继续判断是否需要更多追问。当模型认为信息充分时,输出"So the final answer is:"引出最终答案。
思维链(Chain-of-Thought, CoT)要求模型输出连续的推理步骤,但步骤之间没有明确的结构边界,本质上是一种自由格式的"内心独白"。Self-Ask 则强制模型将推理过程拆分为结构化的问答对,每个子问题都是独立可验证的信息单元。这种显式分解使得中间结果可以被外部工具(如搜索引擎、数据库查询)替代或校验,而 CoT 的隐式推理步骤难以与工具对接。
该方法的提出源于对"组合性差距"(compositionality gap)现象的观察:大语言模型在多跳问答任务中,往往能正确回答各个子问题,却无法将这些正确答案组合成最终的复合答案。研究表明,随着 GPT-3 系列模型规模增大,单跳问答性能的提升速度远快于多跳问答,这意味着更大的模型只是记住了更多事实,并未真正改善组合推理能力。Self-Ask 通过将组合推理显式化——先拆解、再逐个求解、最后合成——有效缩小了这一差距。