论文
使用 Discovery Agent 从 I/O 到代码
From I/O to Code with Discovery Agent
摘要
根据任何形式的规范自动合成程序被认为是计算机科学的圣杯。在 LLM 的推动下,NL2Code 取得了巨大的成功,但从根本上更具挑战性的从输入输出行为合成程序的任务(我们称之为 IO2Code)在很大程度上仍未得到解决。 NL2Code 可以利用自然语言和预训练期间获得的代码之间的语义对齐,而 IO2Code 则需要从具体的计算行为中恢复基本原理,在广阔且未指定的假设空间中导航。为了解决这个问题,我们提出了 DIO-Agent,它是 IO2Code 的发现代理。我们的方法将 IO2Code 构建为离散程序空间上的进化搜索,其中 LLM 用作变异算子,并且来自执行的具体错误信号指导每个变异。为了防止搜索陷入结构复杂但不正确的死胡同,我们引入了转换优先前提作为突变先验,使 LLM 偏向与当前证据一致的最简单假设,仅在更简单的构造不足时才从常量逐步升级到条件条件再进行迭代。为了便于系统学习,我们进一步构建了一个跨越多个难度级别的IO2CodeBench。大量实验表明,DIO-Agent 在所有难度级别和各种 LLM 上始终优于传统的逐例程序方法和 SOTA 进化代理基线,同时在同等采样预算下大大超越了测试时间扩展策略。