Группа исследователей опубликовала на arXiv препринт, в котором описывается новый подход к многошаговому поиску ответов — PyRAG. Вместо того чтобы генерировать цепочки рассуждений на естественном языке, фреймворк предлагает формулировать задачу как синтез и выполнение Python-программы.
Традиционные Retrieval-Augmented Generation (RAG) системы показывают нестабильные результаты на многошаговых вопросах — где нужно последовательно извлекать и связывать несколько фактов. Основные проблемы: промежуточные шаги неявны, запросы к базе знаний могут отклоняться от цели, а самопроверка страдает от тех же ошибок, что и генерация.
PyRAG решает эти ограничения, заменяя свободные рассуждения на исполняемый код. Внутри программы используются вызовы поисковых инструментов и функций для ответов. Промежуточные результаты хранятся как переменные, а выполнение даёт детерминированную обратную связь. Это позволяет фреймворку автоматически исправлять ошибки на уровне компиляции и адаптивно уточнять поиск без дополнительного обучения.
Эксперименты проведены на пяти бенчмарках: PopQA, HotpotQA, 2WikiMultihopQA, MuSiQue и Bamboogle. PyRAG стабильно превосходит сильные базовые модели как в сценариях без обучения, так и при использовании RL-тренировки. Особенно заметен прирост на композиционных датасетах, где требуется объединять данные из разных источников.
Авторы отмечают, что многошаговые вопросы по своей сути являются пошаговыми вычислениями, а кодоспециализированные языковые модели обучены именно так работать. PyRAG делает процесс полностью прозрачным — всю последовательность действий можно отследить и проверить.
Исходный код, данные и модели опубликованы на GitHub. Разработчики и исследователи могут протестировать фреймворк и адаптировать его под свои задачи. Это ещё один шаг к более надёжным и интерпретируемым системам вопрос-ответ на основе больших языковых моделей.