示意图

Raven · 递归自我改进(RSI)

从实验中学习,在迭代中改进

围绕给定目标,Raven 自主规划实验、修改代码与参数,并根据结果调整下一轮方案。以下四组实验展示了这一迭代过程及其结果。

实验一 · nanochat

7 轮自主优化,在相同训练预算下提升模型表现

nanochat 是一个用于训练小型语言模型的开源项目。本实验固定使用一张 A800 GPU,每次训练限时 20 分钟。Raven 由 DeepSeek v4.1-flash 驱动,结合 ai4ai 插件,根据每轮结果自主修改训练脚本 train.py,再提交新一轮实验,共完成 7 轮迭代。

0.9956→0.9381

val_bpb,越低越好

官方 train.py 的基线为 0.9956;第 7 轮的最终方案达到 0.9381 ± 0.0007(3 个随机种子的均值 ± 标准差),相对降低 5.8%。

灰点表示单次训练结果,共展示 170 次记录,另有 2 次无结果记录。蓝线表示每轮最优方案在多个随机种子下的均值,误差棒表示 ±1 个标准差。虚线为官方 train.py 基线。将鼠标悬停在数据点上可查看详细数值。

预算耗尽时,模型表现仍在改善

第 6、7 轮的 val_bpb 降幅均明显高于随机波动水平(0.0013),截至实验结束仍呈下降趋势。7 轮共执行 172 次训练,无崩溃记录,累计使用 3586 GPU 分钟,总预算为 3600 GPU 分钟。

如何理解 val_bpb

val_bpb 是验证集上的 bits per byte(每字节比特数),将模型预测文本的损失按字节数归一化。数值越低,表示模型对未见文本的预测表现越好。

最终方案相较于官方代码的 7 项改动
  1. 将每步训练批量减半(batch 219 → 218),使 20 分钟内的训练步数从 1540 增至 3055
  2. 为相邻 token 对引入可学习的哈希嵌入表,表大小为词表的 100 倍,共 819200 行
  3. 将该嵌入表的输出加入第 0 层之后的模型表示
  4. 将学习率 MATRIX_LR 从 0.04 降至 0.02
  5. 将局部注意力窗口从 1024 缩短至 256
  6. 增加模型宽度:ASPECT_RATIO 64 → 80,对应宽度 512 → 640
  7. 将评估批量固定为 128
查看各轮最优方案
轮次方案val_bpb种子数GPU 分钟

说明:最终方案目前仅使用 3 个随机种子评估,报告建议增至 7–8 个。模型加宽后,单步耗时增加约 30%,20 分钟内的训练步数从 3055 降至 2363,但 val_bpb 仍有所改善,反映了固定时间预算下的净收益。本实验以相较于上一轮最优方案满足 Welch |t| > 3 且 |Δ| > 0.002 作为有效改进的判据。第 1 轮的 9 个候选均未达标;从第 2 轮起,每轮均有新方案达到这一标准。

实验二 · CFD 溃坝模拟

提速失败后调整策略,逐轮降低数值误差

本实验使用开源计算流体力学(CFD)软件 OpenFOAM,模拟水柱坍塌并冲击侧壁的二维溃坝过程。Raven 在同一算例、81648 个网格单元上开展 7 轮实验(第 0–6 轮)。水体积分数 alpha 表示每个单元中水所占的比例,其物理取值范围为 [0, 1];超出这一范围即为数值越界。

  1. 第 0 轮:水流沿右侧壁上升,水面保持完整第 0 轮稳定配置,完成模拟
  2. 第 1 轮:数值失稳,水体分布破碎第 1 轮提速后在 t=0.4 终止
  3. 第 2 轮:水体分布破碎,红色标记显示越界单元第 2 轮提速后在 t=0.5 终止
  4. 第 3 轮:水面失真,出现大量红色越界标记第 3 轮提速后在 t=0.65 终止
  5. 第 4 轮:水流沿右侧壁上升,水面恢复完整第 4 轮恢复稳定,完成模拟
  6. 第 5 轮:水流沿右侧壁上升,水面边界更弥散第 5 轮越界减小,界面更弥散
  7. 第 6 轮:水流沿右侧壁上升第 6 轮越界幅度最小
各轮模拟的代表帧。深蓝色表示水,浅色表示空气,红点标记越界单元。完成模拟的轮次取水流冲击右侧壁的同一时刻;提前终止的轮次取最后一帧。t 为模拟时间,目标终点为 t=1.0。

增大时间步长后,三轮模拟均提前终止

第 1–3 轮将 maxCo 从基线值 1 依次提高至 20、100、500,以允许更大的时间步长。越界单元数从基线的 0 个分别增至 241、3877、1241 个,三轮均未完成预定模拟时长。

恢复稳定配置后,越界幅度持续减小

第 4 轮将 maxCo 恢复为 1,完成模拟并保持水量守恒;第 5、6 轮继续调整界面计算参数,进一步减小越界幅度。第 4–6 轮仍存在约 1e-7 至 1e-10 量级的偏差,未满足 alpha 严格处于 [0, 1] 的判据,因此仍未通过验收。

查看各轮参数调整与结果
轮次参数调整结果

说明:本页的越界单元数与越界幅度均由可视化脚本从仿真场数据中提取。Raven 实验报告的测量位置不同,数值可能有所差异。第 4 轮记录的 alpha 最小值为 −1.97e-07,图中以越界幅度 1.97e-07 表示。

实验三 · FEA 悬臂梁仿真

8 轮载荷试验,逐步定位求解器的收敛边界

有限元分析(FEA)将结构划分为离散单元,以计算其受力和变形。本实验于 2026-08-17 使用开源求解器 CalculiX,对一端固定的悬臂梁施加载荷。随着载荷增加,求解过程可能无法收敛。Raven 先确定收敛与不收敛的载荷区间,再通过二分搜索逐步缩小范围。这里研究的是给定模型与求解设置下的数值收敛边界,不代表梁的物理承载极限。

求解收敛 ×求解未收敛 逐轮缩小的收敛边界区间
8 轮载荷试验的求解过程。左侧展示梁的受力与变形,右侧展示各轮测试载荷。

确定初始区间,再二分搜索

第 0 轮在 2000 kN 下未收敛,第 1 轮降至 1800 kN 后收敛。随后,每轮取已知最大收敛载荷与最小不收敛载荷的中点进行测试。

将边界缩小至相邻测试载荷之间

1962.5 kN 下求解收敛,1965.625 kN 下未收敛。实验以“二分法收敛”结束,任务正常完成,全程保留了 107 条事件记录。

区分数值收敛与物理承载能力

根据材料与截面计算,梁的理论塑性极限载荷为 62.5 kN,远低于全部 8 轮的测试载荷。1962.5 kN 是本次搜索中求解器收敛的最大测试载荷,不能据此判断梁的承载能力。

查看各轮载荷与求解结果
轮次载荷 (kN)结果机时

实验四 · AI4AI 成本对比

低成本模型,也能支撑持续的研究探索

本组实验比较 Raven 和 Claude Code 搭配不同模型,在时间或成本约束下的研究表现。任务是使用 nanochat 预训练一个 5000 万参数的语言模型,以 BPB(每字节比特数,越低越好)评估,A800 基线为 1.108。本组采用独立的训练与预算设置,BPB 数值不宜与实验一直接比较。

5 小时时间预算,不设成本上限

模型表现接近,成本约为 1/40。Raven 搭配 V4.1 的 BPB 为 1.037,成本为 $0.97;搭配 Opus 5 时,分别为 1.038 和 $39.41。Claude Code 搭配 Opus 5 的 BPB 为 1.053。

50 美元成本预算,不设时间上限

成本 $6.12,取得本组最低 BPB:0.965。Raven 搭配 V4.1 持续运行超过 80 小时,开展了更多轮探索;其余三组配置的成本均已接近 $50 的预算上限。

查看两种预算条件下的完整结果
5 小时时间预算
框架 · 模型耗时Token 数成本BPB
50 美元成本预算
框架 · 模型耗时Token 数成本BPB

Raven 为长期研究任务提供稳定的执行框架,
让每一步判断都有可核验的实验依据。

Raven 如何组织研究与实验
多智能体编排
各智能体按明确的交付要求协作,将代码实现与实验执行分开,以便独立核验结果。共享记忆保留研究上下文,减少重复信息与 token 开销。
研究检索(Research)
根据已检索到的证据判断任务难度,并结合预算和信息需求调整检索策略。
代码实现(Code)
代码完成后,安排独立测试与验收,并直接读取工具输出核实关键事实。
实验值守
自主提交任务、定期检查进展,并根据运行状态决定重试或终止;通过定时检查、心跳与会话保持机制支持长时间运行。
ai4ai 研究流程
先调研并探索多个方向,再完成实现、验证和实测。根据结果形成结论,或继续深入有潜力的方向。
研究方案库
记录已尝试的方案及待探索的方向,为后续实验提供上下文,帮助 Raven 探索新思路、组合已有方法。