Browse this library

Chinese source article

1 · 基础

自演化和 RSI 的定义, L0–L4 深度阶梯, 以及判断一次改动算不算改进所需的证据.

View original Markdown ↗

读自我改进的论文, 难处常在数字之前. 一篇论文报告 SWE-bench 从 20.0% 到 50.0%, 另一篇报告 GSM8K 从 95.5% 掉到 89.0%, 两者都叫自我改进, 但前者保留下来的是 Agent 的代码, 后者只改了一道题的答案. 不先说定被改的是什么, 就不知道该拿哪一种证据去检查这个数字, 也不知道它能外推到哪里.

这一部分的三篇把后面五部分要用的东西一次立好: 一套描述 Agent 状态和一轮改动的记号, 一条按改动深度分层的阶梯, 以及一套判断「改动发生了」能否升级为「改进成立了」的证据规则. 三篇的材料主要来自腾讯混元与浙江大学等的综述 Diving into Reliable Self-Evolving Agents 的定义部分和可靠性部分, 再配上 Huang 等人的自我纠错实验, Gao 等人的奖励过优化曲线, PACE 的序贯检验这些可以算出来的例子.

后面各篇遇到一个新系统, 都会回到这里问同一组问题: 它保留下来的是 θ\theta, Σ\Sigma, UU 还是 CC; 它的内部选择用了什么信号; 最终证据在不在更新边界之外. 这一部分读扎实了, 后面每篇只需要讲系统本身.

1. 三篇的分工

1.1. 导读: 把五件事分开

1.1.1 · 导读与证据规则 从五个具体结果起笔: GPT-4 自我纠错后准确率下降, R-Zero 的自投票标签准确率从 71.0% 降到 42.2%, SkillsBench 上自写技能平均 −1.3 个百分点, DGM 的后代删掉检测标记拿满分, RQGM 在 epoch 边界替换评估器. 五个例子分别落在 L0 到 L4, 失败方式也各不相同, 这一篇用它们引出坐标系.

1.1 的后半是两段材料. 一段是 1965 到 2026 年的几个节点: Good 的超智能机器论证, Yudkowsky 的 seed AI, Schmidhuber 的 Gödel Machine, AlphaZero, 语言模型进入循环之后的 STaR, Self-Refine, Voyager, DGM, 以及 Karpathy 的 autoresearch 和 OpenAI 的阈值写法. 另一段是九条证据规则, 每条配一个本库读过的实例, 比如 Meta-Harness 的 76.4% 来自搜索集即评测集, Mimosa 的工作流档案在实验中一次都没被检索. 这九条在后面各篇反复被引用.

1.2. 定义: 状态, 一轮循环与阶梯

1.1.2 · 定义与形式化 是全库的记号来源. 它先区分演化目标和外部目标: 前者回答这次改了什么, 后者回答拿什么判断改得更好, 后者的语义不能被这次改动修改. 然后把一轮自演化拆成执行, 提出, 选择, 审计四步, 写出 L0–L4 的边界条件, 再从 L3 的条件推出 RSI 的定义.

这一篇的后半用同一组问题走查代表系统: 这一轮保留下来的是什么, 它影响之后的执行, 更新还是评判, 外层哪些部分固定. 走查得出的几条结论后面会反复用到: 论文的命名不决定深度; 「同一个模型既当选手又当裁判」不自动等于 L4; 产物可验证不等于改进器变好; 每个 L3, L4 系统都固定了一部分外层, 被固定的部分就是它的改进主张成立的范围.

证据: 接受与控制:1.1.3 · 证据, 接受与控制 处理采纳一次改动时的三个问题: 证据从哪来, 按什么规则接受, 接受以后谁能回滚. 它把证据按产生方式分成形式证明, 程序执行, 学出来的评判器, 模型自评四种, 按综述的可靠性阶梯列出每层暴露给改动的证据和匹配的审计, 再推导反复挑选带来的偏差.

验收规则一节读 PACE, SEA, RSEA 三种做法. PACE 在同一组题上只看两边结果不同的题, 维护一个 e 过程, 用 Ville 不等式保证任意时刻停止时误采纳概率不超过 α\alpha; RSEA 把演化池和验证集分开. 最终两节讨论升级之后的事: 谱系和回滚路径要演练过才算控制手段, 组件被攻破以后, 证据收集, 验收, 谱系和恢复权限仍要有效, 审计才算外部的. Zombie Agents 的记忆投毒是这一段的具体例子.

1.3. 共用的记号

组件与等价关系:可保留状态写成 Ak=(θk,Σk,Uk,Ck)\mathcal{A}k=(\theta_k,\Sigma_k,U_k,C_k). 脚手架在第 3 部分进一步拆成 Σ=(p,m,T,g)\Sigma=(p,m,\mathcal{T},g), 即结构化提示, 记忆及检索策略, 工具集及调用接口, 控制逻辑. 记忆里执行中可以直接写入的部分记作 mrtm^{\mathrm{rt}}. 两个版本在实际起作用的, 与决策相关的语义上等价, 记作 ≡act\equiv{\mathrm{act}}; 重命名一个变量, 或者存一份从不被读取的副本, 都还是等价.

一轮的四步各有一个式子. 执行是 (τk,yk,ek)∼Execb(⋅∣Ak,xk)(\tau_k,y_k,e_k)\sim\mathrm{Exec}b(\cdot\mid\mathcal{A}k,x_k), 其中 bb 是资源预算, eke_k 是临时的经验摘要. 提出和选择是 Xkcand∼ProposeUk(⋅)X_k^{\mathrm{cand}}\sim\mathrm{Propose}{U_k}(\cdot) 与 A~k+1=SelectCk(Xkcand;Hk)\tilde{\mathcal{A}}{k+1}=\mathrm{Select}_{C_k}(X_k^{\mathrm{cand}};H_k), UU 出现在提出的下标里, CC 出现在选择的下标里. 审计是 dk=GateG(Ekext)∈{accept,reject,escalate}d_k=\mathrm{Gate}_G(E_k^{\mathrm{ext}})\in{\text{accept},\text{reject},\text{escalate}}, 证据源 SS 和验收策略 GG 在 Agent 状态之外. 一个系统改的是提候选的方式, 动的是 UU; 改的是挑候选的规则, 动的是 CC.

几个容易混的词:本库用「自演化」指 L0–L4 的任何改动, 用「RSI」只指 L3 和 L4, 「改进」只在改进主张有外部审计支持时使用. 更新边界划定四件事: 循环可以修改什么, 可以读取哪些证据, 可以用多少资源, 可以授权哪些动作. 审计是不是外部的, 看它由谁控制, 不看它在哪里运行.

开发证据指已经向候选生成或内部选择公开过的证据; 审计证据指没有参与这两步的证据. 一个系统实际完成的转移低于 L4, 但它生成或使用了和评判有关的产物, 却没有改变生效的评判语义, 称为 L4-facing, RLCER 在评分规则不被保留时就是这种情况. 产物指 Agent 状态之外的输出, 比如搜出来的算法或训练好的另一个模型; 产物变好不等于 Agent 演化了, 被装进 Σ\Sigma 才是 L2, 被用来训练 θ\theta 并保留下来才是 L1.

2. 三篇共同落下的判断

2.1. 深度不等于可信度

层级排的是改动对象的深度. 证据的强弱要另外看, 而且和层级不是同一个维度: 任何一层都可以用任何一种证据. 下表把 1.3 读过的四种证据来源和它们的代表数字放在一起.

证据来源 例子 数字 局限
形式证明 Gödel Machine 证出目标定理才改写 相对固定的公理和效用函数, 找不到证明就不改
程序执行 CodeT, Absolute Zero 执行结果不依赖模型判断 只覆盖写进测试的行为, 测试本身可能是模型写的
学出来的评判器 PRM 对 ORM 对投票 MATH 上 78.2%, 72.4%, 69.6% 优化强度过了拐点后, 代理分和真实目标反向
模型自评 Lee 等人的技能评定 setter 校验 r=0.88r=0.88, 多态 r=−0.03r=-0.03 语法可检查的维度上一致, 设计层面几乎无关

四种来源大致按对被评对象的独立程度排, 但这个排序不能直接当可信度. 程序执行可以测错东西; 学出来的评判器在优化强度低时有用, Gao 等人的拟合曲线显示强度过了 d∗d^\ast 之后金奖励开始下降; 自评在可检查的维度上相关系数可以到 0.88. 综述的说法是, 关键的比较在「改动控制了什么」和「审计由谁控制」之间, 不在层级编号之间.

2.2. 挑选会制造增益

设 NN 个候选相对原版本的真实差距都是 0, 测得增益只有标准差为 σ\sigma 的独立高斯噪声. 最大噪声在大 NN 下约按 σ2ln⁡N\sigma\sqrt{2\ln N} 增长, 但这个渐近式在 N=20N=20 时偏高: 20 个独立标准正态变量的最大值期望约为 1.87. 若两个版本各自在 200 道、通过率约 0.5 的题上独立测量, 差值标准误约为 0.05, 被挑中者的虚假增益约为 9.3 个百分点. 同题配对比较不能继续套这个 0.05: 方差取决于两版本逐题分歧和协方差. 候选之间相关时, 有效候选数也不再等于名义上的 NN.

可选停止有同样的问题: 每多测一道题就看一次, 一旦显著就采纳, 只要一直测下去, 没有改进的候选迟早会显著. 自演化循环天然是序贯的, 所以 PACE 这类在任意停止下仍然有效的检验才派得上用场. PACE 的实验里, 贪心接受有 30–42% 的采纳是假的; 它自己的保证只对单个决定成立, 一轮运行测了 MM 个候选, 至少误采纳一次的概率可以到 MαM\alpha. 小样本上的差异也要先算误差: 45 道题, 通过率 42%, 标准误约 7.4 个百分点.

3. 读法

3.1. 顺序

第一次读按 1.1, 1.2, 1.3 的顺序. 1.1 用具体结果建立直觉, 不要求先懂记号; 1.2 给出记号和边界条件, 读完应能自己把一个新系统归到某一层; 1.3 讨论证据和采纳, 读它时会频繁用到 1.2 的外部审计式子. 后面五部分的每篇开头都只回顾一两句定义, 跳过这一部分直接读后文会缺很多前提.

已经熟悉自演化 Agent 文献的读者, 可以从 1.2 的阶梯和代表系统走查读起, 那一段决定了全库的归类口径, 和一些论文的自我描述并不一致, 例如 AREX 自称 RSI 而被归为 L0, AlphaEvolve 被判为不构成 L3. 读完再扫一遍 1.1 的九条规则, 它们是后面各篇检查数字时的清单.

3.2. 按需要查

只想弄清某个系统属于哪一层, 查 1.2 的阶梯和走查, 以及它末尾的论文记录表: 深度, 改动对象, 信号由谁产生, 内部筛选, 外部证据, 外层固定了什么, 保持证据. 后面各篇讲到一个系统时都按这几栏记录, 其中「外层固定了什么」一栏划出了改进主张成立的范围.

想评估一篇论文的改进主张, 查 1.3 末尾的审计记录表, 它和论文记录表配合使用: 前者记录系统改了什么, 后者记录证据怎么支撑改进主张, 逐项检查外部目标, 证据来源, 时间范围, 三个证据属性, 挑选次数, 验收规则, 谱系与回滚, 威胁模型. 关心安全的读者读完 1.3 的攻破与独立性部分, 可以直接接 第 5 部分.

4. 从状态变化到可证伪的改进主张

4.1. 三个量不能混成一个分数

一轮循环至少产生三个不同的量. 第一个是内部目标 rkr_k, 候选生成器用它决定往哪里搜索; 第二个是开发测量 J^D\hat J_D, 选择器用它比较候选; 第三个是外部测量 J^T\hat J_T, 它只在候选确定以后判断改进是否成立. 设候选集合为 Pk\mathcal P_k, 实际提交的版本通常满足

Ak+1=arg⁡max⁡a∈PkJ^D(a).\mathcal A_{k+1}=\arg\max_{a\in\mathcal P_k}\hat J_D(a).

这个式子已经把开发集的信息写进了 Ak+1\mathcal A_{k+1}. 即使候选从没直接读取开发样本, 只要选择器反复按开发分保留和淘汰, 信息就会通过选择路径进入最终版本. 因而 J^D(Ak+1)−J^D(Ak)\hat J_D(\mathcal A_{k+1})-\hat J_D(\mathcal A_k) 只能证明搜索器找到了更适合开发测量的候选. 外部主张需要另一个与选择路径条件独立的样本 TT, 比较 ΔT=J^T(Ak+1)−J^T(Ak)\Delta_T=\hat J_T(\mathcal A_{k+1})-\hat J_T(\mathcal A_k), 并给出不确定性.

若每道题的配对差值为 zi∈[−1,1]z_i\in[-1,1], 样本均值为 zˉ\bar z, 一个直接的 Hoeffding 界是 Pr⁡(E[z]≤0)≤exp⁡(−nzˉ2/2)\Pr(\mathbb E[z]\le 0)\le \exp(-n\bar z^2/2). 它很保守, 却揭示了基本关系: 增益越小, 所需的独立样本按 1/zˉ21/\bar z^2 增长. 在 50 道题上提高 2 个百分点, 远不足以支持跨任务变好的强主张.

4.2. 保持性决定递归是否存在

把一次更新写成 Ak+1=Fk(Ak,Hk)\mathcal A_{k+1}=F_k(\mathcal A_k,H_k), 其中 HkH_k 是本轮经验. 若 Fk+1=FkF_{k+1}=F_k, 系统可以连续运行很多轮, 但运行次数本身不构成递归改进. 它只是同一更新器的重复应用. L3 要求经验导致 FF 的有效行为发生持久变化, 并且这个新更新器参与之后的候选生成或选择. 用本库的组件写, 就是 Uk+1̸≡actUkU_{k+1}\not\equiv_{\mathrm{act}}U_k, 同时下一轮确实调用 Uk+1U_{k+1}.

这条条件排除了两个常见的假阳性. 第一种是系统把「上次哪里做错了」写进日志, 下一轮运行时却从不检索日志. 文件存在, 有效状态没变. 第二种是系统重写自身源码, 评测后仍从固定镜像启动旧版本. 代码产物变了, 执行中的改进器没变. 相反, 一份很短的技能如果被后续任务稳定检索, 改变工具选择并跨会话保留, 它确实构成 L2 更新. 深度由因果作用决定, 与文件大小和实现形式无关.

4.3. 递归不保证加速

即使每轮都通过独立审计, 改进序列也未必指数增长. 令能力为 qkq_k, 一轮可得到的增益写成

qk+1−qk=η(qk)h(qk)−c(qk),q_{k+1}-q_k=\eta(q_k)h(q_k)-c(q_k),

其中 h(q)h(q) 表示当前能力能发现的有效改进, η(q)\eta(q) 表示实现并保留这些改进的比例, c(q)c(q) 表示验证误差、分布迁移和新增复杂性带来的损失. 「更聪明的系统更会改进自己」只是在猜测 h(q)h(q) 随 qq 上升; 若验证成本增长得更快, 或剩余问题越来越难, 净增益仍会收敛到零. 当 h(q)=a(Q−q)h(q)=a(Q-q), η\eta 为常数且 c=0c=0 时, 系统只是以几何速度接近上限 QQ, 不会越过它. 真正的能力爆炸还需要上限随改进过程扩张、资源能够供应、验证没有成为瓶颈等额外条件.

「能够修改改进器」「连续多轮变好」「增益随能力加速」是三个逐步增强的命题. 第一个由状态和保持性证明, 第二个由跨轮外部评测证明, 第三个要估计增益函数随能力的变化. 一篇实验只报告三轮分数上升, 最多支持第二个命题在该预算和任务分布上的局部版本.

5. 三类反例怎样改变验收

5.1. 标签正确, 推理仍然退化

自训练可以在最终答案可判定时不断制造正确样本, 但中间推理可能逐渐变短、模板化或依赖偶然捷径. 若训练只最大化答案奖励, 两条同样得分的轨迹中, 稳健算法和脆弱启发式没有区别. 一旦题目表述或长度变化, 后者更容易失效. 程序可验证器是强证据源, 却只能保证被执行器覆盖的性质. 对推理过程的主张还需要干预式测试, 例如改变无关表述、交换变量名、延长组合深度, 检查解法是否保持.

5.2. 平均值提高, 尾部风险变坏

设新系统在 99% 的普通任务上提高 ϵ\epsilon, 在 1% 的高损失任务上增加失败概率. 平均准确率可能上升, 期望损失却变差. 若高风险任务的单次损失为普通任务的 LL 倍, 只要 0.01L0.01L 大于普通任务累计收益, 均值结论就会反转. 所以安全相关的自改进不能只看宏平均分, 还要按风险层分组, 报告最坏组表现、拒绝行为与能力增长是否同步变化.

5.3. 一代有效, 谱系逐轮漂移

每轮独立看都只有很小偏差, 多轮组合仍会积累. 若第 kk 轮接受错误改动的概率为 pkp_k, 不作独立假设也有并合界 Pr⁡(至少一次误接收)≤∑kpk\Pr(\text{至少一次误接收})\le\sum_k p_k. 固定每轮 pk=0.05p_k=0.05, 跑二十轮时这个上界已经失去约束力. 更实际的做法是给整条谱系分配错误预算, 例如令 pk=α/2kp_k=\alpha/2^k, 使总和不超过 α\alpha. 这会让后期验收越来越严格, 也揭示长期 RSI 的代价: 运行越久, 证明没有退化所需的证据越多, 不能把单轮显著性直接复制到无限循环.