Contents

Agora: Git as Shared Memory for Collective AutoResearch


作者Yifan Zhang, Yunheng Zou, Shaokun Zhang, Jian Hu, Hao Zhang, Binfeng Xu, Jan Kautz, Yi Dong
机构NVIDIA
链接https://arxiv.org/abs/2609.18094

把多个 coding agent 的实验结果都存成 Git commit,让每个 agent session 开始时直接 git checkout 别人的最佳结果然后做一个改动——本质是用 Git DAG 代替 "共享黑板",让 AI 研究社区像开源社区一样异步协作:不可变 hash 保证溯源,append-only 防止覆盖,UCB 选择公式推荐低探索分支防止整个社区塌缩到同一个局部最优。

Figure 3
Figure 3:12天运行中1703次贡献的得分轨迹(对数轴),颜色从洋红(接近随机初始化3.39 bpb)到绿色(接近1.90 bpb)。第一天的统计先验贡献了约98%的下降;May 2 部署多样性视图后,agent 开始探索 state-space 分支,最终突破1.90。

研究动机

核心方法

1. 贡献图(Contribution DAG)

项目状态是一个 DAG \(G=(V,E)\),每个节点 \(v\) 是一个 Git commit,存储:commit hash、发布账户、标签集合、描述文本、元数据、可选项目指标、父节点集合、服务器时间戳。边 \((u,v)\) 表示"v 构建在 u 上",等于 Git parent 关系。Git 是唯一真实来源:SQLite 索引、分析视图、论文中所有图表都从 Git history 派生,可随时重建。参与者通过 CLI 或 HTTP API 发布,从不共享 filesystem、模型或对话。

flowchart LR
  P["Human/AI\nParticipant"] -->|"CLI / HTTP API"| Auth["Auth + Validation\n+ Rate Limits"]
  Auth --> Git["Per-project Git\n(canonical artifacts)"]
  Git --> SQLite["SQLite\nderived index"]
  SQLite --> Analyze["Analyze / Search\n/ Clusters / UCB"]
  Analyze -->|"exploit"| F1["Top leaders"]
  Analyze -->|"explore known"| F2["Thin cluster"]
  Analyze -->|"explore novel"| F3["Singleton nodes"]
  F1 --> P
  F2 --> P
  F3 --> P
          
drag to pan · scroll to zoom
Agora 数据流:Git 是唯一状态,SQLite 提供可查询视图,analyze 输出三类候选节点供参与者选择。无中央调度器。

2. 贡献标签与质量评分

保留标签赋予贡献语义:result(实验结果)、insight(解读)、hypothesis(未测试假设)、verification(独立复现)、report(综合报告)。质量来自下游行为而非投票:节点 \(u\) 的证据分数为其他账户在其上继续工作的加权计数(自引被排除):

\[ S(u) = \sum_{v:(u,v)\in E} \mathbf{1}[a(u)\neq a(v)]\, w(v) \]

verification 成功权重 +20,失败 −20;若复现者更新判决,旧效果被新效果替换,两个 commit 均保留在历史中。

标签权重规则
setup+5项目初始 commit,无指标
result+5成功或失败均可提交
insight+5父节点指向所依据证据
hypothesis+5不得呈现未测试指标
verification+20/+10/−20必须验证他人工作
wip0可见但不传播分数

3. 多样性感知注意力分配(Diversity-aware UCB)

单纯 leaderboard 会让所有 agent 扎堆同一个父节点。analyze 返回多个视图:指标领袖、被引最多节点、叶节点、未验证结果、开放假设、语义聚类统计。候选节点按多样性上置信界排序:

\[ U(v) = 100\,Q(v) + C\sqrt{\frac{\log(N+1)}{n(v)+1}} + \frac{100D}{\sqrt{1+\rho(v)}} \]

其中 \(Q(v)\) 是质量百分位,\(n(v)\) 是 \(v\) 上的后续工作数,\(\rho(v)\) 是描述近似重复数。探索常数 \(C\) 在指标分布紧绷时增大。候选分为三槽:exploit(精化领袖)、explore known(扩展细分支)、explore novel(检查单例节点)。

4. 最关键的一句话

Git 的 append-only DAG + 跨账户质量评分 + 三槽 UCB 候选,构成一个不需要中央调度器的异步研究社区协调层。

术语速查

论文术语在本实验中的具体含义
worker / participant运行在独立 GPU 容器里的一个 coding agent session(Claude Code + Opus 4.7 或 Codex + GPT-5.5),持有独立的 Agora 账户凭证
contribution一次实验提交:一个 Python 文件(含 transfer(model, config) 函数)+ 评分结果 + 描述,存为一个 Git commit
frontieragora analyze 返回的当前推荐节点列表,按 UCB 排序
donor141 个已预训练开源语言模型(GPT-2, Cerebras-GPT, LLaMA, Mamba…),提供权重和前向推理能力
target一个 119.6M 参数的 attention-SSM 混合模型,权重随机初始化,需要通过 transfer() 被初始化
bpbbits per byte,FineWeb-Edu 上的语言模型困惑度,越低越好(随机 3.39,训练后 GPT-2 ~1.0)
DAGGit 提交历史本身,边 = parent 关系 = "建立在…基础上"
monoculture超过 1/3 的活动集中在同一语义聚类中,探索多样性丧失
Stage A / Stage B最终获胜方案的两个阶段:A=从 donor 预测统计构建 bigram 转移矩阵并 SVD 分解写入 embedding;B=用确定性稀疏编辑激活 attention/FFN/SSM 子层

主要实验结果

得分里程碑

时间(UTC)账户bpb关键改动
3.3923随机初始化基准
Apr 27 00:57worker12.5151GPT-2 unigram prior;残差子层归零
Apr 27 01:50worker12.1284Bigram 转移矩阵 + 随机化 SVD → embedding/head
Apr 27 06:55worker21.931924 个前缀,几何平均聚合
Apr 28 04:31slurm_worker_41.9228第二 donor(Cerebras-GPT 111M)+ 方差/自然度权重
Apr 29 11:04slurm_worker_21.91366 个 donor,28 个单 token 上下文
May 1 05:10worker21.9062随机化 SVD 加一次幂迭代
May 3 00:13slurm_worker_31.9028首个 SSM 编辑(多样性视图触发)
May 5 17:34slurm_worker_61.8995第 0 层 FFN 从 GPT-2 small 投影
May 8 13:24slurm_worker_11.8990跨 band SSM 输出投影
得分轨迹:最初18次提交贡献约98%下降;May 2 部署多样性视图后才突破1.90。

获胜方案(Algorithm 1)

Stage A:转移先验——对 6 个共享 GPT-2 词表的 donor(GPT-2 small/large + Cerebras-GPT 111M–1.3B),在 28 个单 token 上下文下查询所有词表 token 的 next-token log-softmax。用方差和自然度加权混合后得到一个 50257×50257 的 bigram 对数概率表 \(M\),减去列均值后做 rank-671 随机化 SVD,因子写入 target 的 embedding 和 output head,所有子层权重归零。

Stage B:结构化上下文路由——用确定性稀疏编辑激活子层:每个 attention 层变成对一个 96 维 band 的均匀因果平均池化;layer-0 SwiGLU 从 GPT-2 small 的 MLP-0 做 SVD 投影(scale 0.009);SSM 层的选择性路径被禁用,退化为对一个 band 的门控深度 causal 卷积。每个常数都是作为单一改动引入并被评估器验证保留的。

Stage B 路由细节表(Table 3)
读 band卷积核写 band: 缩放
Attn 0,2,4,6,8,10,12B0..B6均匀因果同 band: 0.21, 0.02, 0.0425, −0.0025, −0.002, −0.0025, −0.0025
SSM 1B0(1.85, 1.65, 0.20, −2.70)B0:−0.115; B2:0.010; B3:0.005
SSM 3B1均匀 1/4B1:−0.060; B2:0.010; B3:0.005
SSM 5B2均匀 1/4B2:0.010
SSM 7,9,11,13B0均匀 1/4B2:0.010 (及跨 band 写入)

协作动态

Figure 4
Figure 4:完整项目图的力导向布局(含截止后123个贡献)。高亮脊柱是最终领袖的祖先链。图形呈"窄脊柱+短枝"结构:强利用偏向明显。
Figure 5
Figure 5:并行发现与前沿收敛。左:696对不同账户发布相同得分的时间差(63%在1小时内)。右:新贡献采用近期前沿父节点的速度。

局限与展望