论文
检索很便宜,给我看代码:面向检索增强生成的可执行多跳推理
Retrieval is Cheap, Show Me the Code: Executable Multi-Hop Reasoning for Retrieval-Augmented Generation
摘要
检索增强生成(RAG)已成为知识密集型问答的标准方法,但现有系统在多跳问题上依然脆弱,解答这类问题需要串联多个检索与推理步骤。关键挑战在于:当前方法以自由形式的自然语言表示推理,中间状态是隐式的,检索查询可能偏离预期实体,而错误由产生错误的同一模型来检测,使自我反思成为不可靠、无根据的信号。我们观察到,多跳问答是逐步计算的典型形式,而这种结构化过程与代码专精语言模型被训练的运作方式高度一致。受此启发,我们提出PyRAG,一个将多跳RAG重新表述为程序合成与执行的框架。PyRAG不使用自由形式的推理轨迹,而是将推理过程表示为在检索与问答工具之上的可执行Python程序,将中间状态暴露为变量,通过执行产生确定性反馈,并给出整个推理过程的可检查轨迹。这种表述还支持基于编译器的自修复和执行驱动的自适应检索,无需任何额外训练。在五个问答基准(PopQA、HotpotQA、2WikiMultihopQA、MuSiQue和Bamboogle)上的实验表明,PyRAG在免训练和RL训练两种设置下都持续优于强基线,在组合性多跳数据集上收益尤其显著。我们的代码、数据和模型已在https://github.com/GasolSun36/PyRAG公开。
