ChatPaper.aiChatPaper

Recuperação é Barata, Mostre-me o Código: Raciocínio Multi-Salto Executável para Geração Aumentada por Recuperação

Retrieval is Cheap, Show Me the Code: Executable Multi-Hop Reasoning for Retrieval-Augmented Generation

May 13, 2026
Autores: Jiashuo Sun, Jimeng Shi, Yixuan Xie, Saizhuo Wang, Jash Rajesh Parekh, Pengcheng Jiang, Zhiyi Shi, Jiajun Fan, Qinglong Zheng, Peiran Li, Shaowen Wang, Ge Liu, Jiawei Han
cs.AI

Resumo

A Geração Aumentada por Recuperação (RAG) tornou-se uma abordagem padrão para respostas a perguntas com uso intensivo de conhecimento, mas os sistemas existentes permanecem frágeis em perguntas de múltiplos saltos, onde resolver a tarefa requer encadear múltiplas etapas de recuperação e raciocínio. Os principais desafios são que os métodos atuais representam o raciocínio por meio de linguagem natural de forma livre, onde os estados intermediários são implícitos, as consultas de recuperação podem se desviar das entidades pretendidas e os erros são detectados pelo mesmo modelo que os produz, tornando a autorreflexão um sinal não confiável e sem fundamentação. Observamos que a resposta a perguntas de múltiplos saltos é uma forma típica de computação passo a passo, e que esse processo estruturado se alinha estreitamente com a forma como os modelos de linguagem especializados em código são treinados para operar. Motivados por isso, apresentamos o \pyrag, uma estrutura que reformula a RAG de múltiplos saltos como síntese e execução de programas. Em vez de trajetórias de raciocínio de forma livre, o \pyrag representa o processo de raciocínio como um programa Python executável sobre ferramentas de recuperação e QA, expondo estados intermediários como variáveis, produzindo feedback determinístico por meio da execução e fornecendo um rastreamento inspecionável de todo o processo de raciocínio. Essa formulação ainda possibilita autorreparação fundamentada em compilador e recuperação adaptativa orientada por execução sem qualquer treinamento adicional. Experimentos em cinco benchmarks de QA (PopQA, HotpotQA, 2WikiMultihopQA, MuSiQue e Bamboogle) mostram que o \pyrag supera consistentemente fortes linhas de base em configurações sem treinamento e treinadas com RL, com ganhos especialmente grandes em conjuntos de dados composicionais de múltiplos saltos. Nosso código, dados e modelos estão disponíveis publicamente em https://github.com/GasolSun36/PyRAG.
English
Retrieval-Augmented Generation (RAG) has become a standard approach for knowledge-intensive question answering, but existing systems remain brittle on multi-hop questions, where solving the task requires chaining multiple retrieval and reasoning steps. Key challenges are that current methods represent reasoning through free-form natural language, where intermediate states are implicit, retrieval queries can drift from intended entities, and errors are detected by the same model that produces them making self-reflection an unreliable, ungrounded signal. We observe that multi-hop question answering is a typical form of step-by-step computation, and that this structured process aligns closely with how code-specialized language models are trained to operate. Motivated by this, we introduce \pyrag, a framework that reformulates multi-hop RAG as program synthesis and execution. Instead of free-form reasoning trajectories, \pyrag represents the reasoning process as an executable Python program over retrieval and QA tools, exposing intermediate states as variables, producing deterministic feedback through execution, and yielding an inspectable trace of the entire reasoning process. This formulation further enables compiler-grounded self-repair and execution-driven adaptive retrieval without any additional training. Experiments on five QA benchmarks (PopQA, HotpotQA, 2WikiMultihopQA, MuSiQue, and Bamboogle) show that \pyrag consistently outperforms strong baselines under both training-free and RL-trained settings, with especially large gains on compositional multi-hop datasets. Our code, data and models are publicly available at https://github.com/GasolSun36/PyRAG.