Read this paper write-up in English
RPL:用结构变异探索可编程检索¶
论文信息¶
| 字段 | 内容 |
|---|---|
| 论文链接 | Learning to Program Retrievals,核对v1正文 |
| 公司/机构 | 一作Kyuyoung Kim:KAIST AI / Meta Superintelligence Labs;论文明确工作在Meta完成 |
| 首次公开日期 | 2026-10-17 20:03:09 UTC;正文页眉的October 20不是arXiv v1首次公开日期 |
| 原文开源代码 | 10月29日补核Meta官方retrieval-programs,固定 992fda1f5f0eb01a8fb70202ff8f7a65aed48465;原始工作CC BY-NC 4.0,vendored组件遵循各自许可,详见LICENSE。此前未找到链接的结论由本次官方发布证据更新 |
| 本地 Adapter | rpl为组件键,不是完整训练adapter |
| 本地复现代码 | src/auto_research/agent_research/retrieval_program.py;scripts/run_oct21_rpl.py |
仅CPU typed-program组件。 不实现策略模型、BM25/E5/Qwen神经检索/重排、任意Python执行、跨轮Python状态、GRPO或蒸馏训练。
本轮只更新作者代码来源,不复制上游、修改本地运行路径或提高原有验证等级;官方仓库新公开不算新增论文。
原始论文总结¶
背景与主要改动¶
固定检索pipeline把召回数量、融合和返回上下文绑在一起。RPL让策略生成短程序组合稀疏/稠密召回、RRF、去重和重排,只将显式打印的证据交回模型。为解决稀疏奖励难探索的问题,保留策略已有query,对最后一次检索程序做受语法约束的结构变异;执行核验通过后生成续写轨迹,再穿插蒸馏与RL。§3及附录B
flowchart TD
Q[策略已有query] --> P[受限检索程序]
P --> SDK[召回 / RRF / 去重 / 重排]
SDK --> O[仅显式选中的证据进入模型上下文]
P --> M[保持query的结构变异]
M --> V[训练侧执行核验]
V --> C[用实际证据重新生成续写]
C --> S[程序监督 / 错误答案屏蔽]
S --> RL[原文蒸馏再继续RL / 本地未实现]
原论文关键图¶
原论文Figure 1,PDF第2页:左侧展示检索结构变化,右侧是作者的训练/上下文结果,不是本地结果。图片来自原论文,版权归原作者所有;已检查图形、图例及完整说明未裁断。
核心公式¶
最后一维为重排保留数,0表示不重排。多次召回必须融合、无重复调用,并遵守输出预算。距离按模态变化、增删重排、query子集变化、召回宽度阶数、重排宽度阶数依次比较;本地只实现这个typed grammar子集。
答案错误仍可保留核验过的程序监督,但屏蔽答案span;环境观察从不监督。Gold只允许训练侧verifier访问,不能传给程序或续写actor。
论文离线与线上效果¶
作者在七个QA基准及GlobalQA上比较4B/8B模型,报告多跳QA与上下文效率收益;结果和失败条件见§4及附录A。没有生产线上A/B。本地仅测语法与执行,不生成QA答案,不把构造支持文档覆盖率写成QA准确率。
本地复现¶
PYTHONPATH=src python scripts/run_oct21_rpl.py \
--device cpu --seeds 42,43,44 \
--output runs/oct21-rpl/fresh-result.json
RetrievalProgram最多4个不同query,宽度取论文阶梯,最多20篇显式输出;execute只解释数据类并调用注入的SDK,不解析或执行Python源码。多路检索实际执行RRF,单路、列表内部或跨路遇到相同ID不同内容时统一拒绝,只有内容完全一致的重复才去重;重排不得注入召回外文档。RRF常数60是明确的本地惯例;输出是文档数上限,不是假装实现了论文2048-token观测限制。
verified_mutation优先试最小结构距离,同距离用实际候选量/调用量破同分,最多256次、默认64次执行;耗尽预算可返回无解。训练verifier与续写上下文分离,后者只有公开问题、程序和打印证据。supervision_spans是span级合同,不是token mask或SFT训练器。没有实现原文自由Python控制流及跨轮局部状态,因此不能称完整RPL复现。
数据、结果与负对照¶
构造版本为synthetic-rpl-sdk-rankings@oct21-contract-v1;固定ranking回调不是神经retriever。原宽度3的程序看不到第5个支持文档,实际执行的宽度5变异可以覆盖;另验证宽召回20条、只打印3篇,错误答案不监督。原程序是负对照,不由gold直接构造输出。实际CPU指标
成本与复现边界¶
原文附录C为4B/8B策略、QA训练1000步/GlobalQA 500步、batch512、每prompt5个rollout;每次训练用8×H100,重排还需独立8×H100节点。成本过高,不复现(审查 DONE);不为证明昂贵而下载完整Wikipedia索引或试跑大模型RL。低成本组件不需要CUDA。diagnostic_only=true、promotion_eligible=false、evolve_integrated=false。
