两次循环让SWE-bench从43涨到64

今日概览

  • 循环加深计算只能加两层:LoopCoder-v2用并行循环把「循环几次」变成可工程化的旋钮,两次循环让SWE-bench Verified从43.0涨到64.4,但三次及以上反而退化——test-time compute的scaling曲线在很浅处就饱和。
  • 让agent交出一个能玩的游戏:GameCraft-Bench在Godot引擎里设140个任务,不靠读代码打分而是把游戏跑起来回放评判,把「能否交付完整交互系统」变成可观测基准。
  • 老师放进prompt而非gradient:ZPPO在小模型后训练里把老师当「提示」去救那些全失败的难题,0.8B到9B四个规模上稳定超过蒸馏和GRPO,越小收益越大。
  • 共享一个离散tokenizer也能跑通:UniAR押下和UniDDT相反的赌注,用位运算量化让理解与生成共用一套视觉token,图像生成编辑双SOTA,统一多模态的路线之争仍未收敛。

重点关注

01 推理加速 循环架构想把「加深计算」做成可调旋钮,结果发现只能加两层

循环Transformer的思路是重复套用同一组共享层来加深latent计算,但串行循环每多一次,延迟和KV-cache内存就跟着涨,深度收益被成本吃掉。LoopCoder-v2用并行循环(PLT)绕开这点——靠跨循环位置偏移和共享KV的滑窗注意力把串行成本摊平,让「循环几次」变成一个可以工程化选择的设计参数。团队从头训了一组7B的PLT编程模型(18T tokens)来做对照,结论很反直觉:两次循环相比不循环的baseline全面提升,SWE-bench Verified从43.0涨到64.4、Multi-SWE从14.0涨到31.0;但三次及以上反而退化。诊断显示主要的有效精炼集中在第二次循环,再往后更新越来越小、还会震荡,而位置偏移带来的错配成本基本固定不变,于是收益缩水后成本就开始占上风。值得留意的是,标题叫「Only Loop Once」,但摘要里真正最优的是两次循环——这条test-time compute的scaling曲线在很浅的地方就饱和了,究竟能不能同时拿到深度收益和并行效率,得看全文的延迟/内存实测数字才好下判断。

test-time compute有了「堆深度」这条新路径,不止是堆采样token,但深度收益在2层就饱和、3层反而退化,可调空间比想象中窄SWE-bench从43.0到64.4的提升若属实,对做coding agent的团队是值得跟进的信号标题的「循环一次」和摘要的「两次最优」有出入,实际收益和并行省下的成本需要看全文实测才能掂量。

02 评测 让agent写代码容易,让它交出一个能玩的游戏才是真考验

普通coding任务里,代码跑通、测试通过就算赢。但游戏生成不一样:它发生在游戏引擎里,脚本、场景、资产、渲染和运行时交互必须共同产出连贯的可玩性——光让脚本不报错远远不够。GameCraft-Bench正是冲着这个缺口来的,它在Godot引擎里设计了140个任务、覆盖15类游戏,并且不靠读代码打分,而是把agent生成的游戏真正跑起来、回放玩家操作的录像,再用多模态评委按评分细则判断「这游戏到底能不能玩」。这套思路的价值不在分数本身,而在于它把「agent能不能交付一个完整可运行的交互系统」这件一直难以量化的事,变成了可观测、可复现的基准。结果也很诚实:agent往往能实现看得出来的玩法机制,却在内容完整度、视觉反馈是否真的生效、整体呈现是否连贯上集体掉链子。

评估交互式产物要看「跑起来能不能玩」,而非代码是否通过测试,这对所有做agent交付的团队都是更硬的标准游戏生成是coding agent的难度上限场景,引擎内的多模态协同暴露出当前模型的真实短板agent能搭出机制骨架但填不满内容和呈现,说明「能写」和「能交付完整产品」之间还隔着一道坎。

03 训练优化 老师该在哪一层介入小模型的训练?

蒸馏想让小模型学大模型,但在参数差距很大时很脆:逼小学生去模仿大老师的logits,等于把它强行压到老师最尖锐的那几个模式上,结果训练集外的泛化反而塌了。RL换个思路,用学生自己的rollout训练绕开logit模仿,可又撞上老问题——遇到全部尝试都失败的难题,优势为零、整批样本被静默丢弃,学生在这些题上学不到任何东西。ZPPO的切入点很具体:不是改怎么挑数据,而是改老师介入的位置——把老师放进prompt里而不是policy gradient里。难题上它构造两种重写prompt,一种把老师的正确答案和学生的错误答案混在一起让学生去分辨,另一种把学生多次错误的rollout聚合起来暴露共同的失败模式,再配一个replay buffer反复回炉直到这道题的平均准确率过半才「毕业」。在0.8B到9B四个学生规模、27B老师的设置下,ZPPO在31个benchmark上稳定超过蒸馏和GRPO,且越小的模型收益越大。

老师放进prompt而非gradient,避开了「全失败题注入老师答案破坏on-policy」的老坑做小模型后训练的团队值得关注这种「把难题留在学生能力区内反复练」的思路结论基于摘要,具体提升幅度和稳定性需看全文确认。

04 多模态 统一多模态该解耦还是该共享,同一周给出了相反答案

几天前UniDDT还在论证「解耦」——理解和生成各走各的视觉通路,认为强行共享一条路只会两头不讨好。UniAR这篇押的是完全相反的赌注:用一个离散视觉tokenizer同时服务理解和生成,让模型在同一个上下文里直接读懂自己刚生成的视觉token,不用再重新编码一遍。没想到这条「共享」路线真能跑通——靠的是免查表的位运算量化(lookup-free bitwise quantization),既保住高层语义又保住低层细节,还顺手把视觉序列压短、生成提速。结果是图像生成和编辑都做到SOTA,多模态理解也没掉队。两个相反的技术赌注摆在同一周,说明统一多模态的路线之争还没收敛,谁对谁错得看后面谁更能scale。

UniAR用「共享一个离散tokenizer」对赌UniDDT的「解耦双通路」,统一多模态的核心路线仍在分叉关键技巧是位运算量化压缩视觉词表和序列长度,理解与生成共用一套token做这个方向的团队该把这两篇放一起读,别急着站队,关注哪条路线在更大规模下不崩。
两次循环让SWE-bench从43涨到64

也值得关注

05
自进化agent不只是存经验,更要学会怎么用经验进化 AgentOPD-Evolver提出慢快协同的on-policy自蒸馏框架,把「记住轨迹」和「学会进化」分开。链接
06
循环架构第一次搬进世界模型 视频生成Looped World Models用深度复用化解「长程仿真要深计算、深模型又贵又易累积误差」的张力,和LoopCoder同日出现可呼应。链接
07
大多数Transformer各层等宽,这篇按深度非均匀分配宽度 模型架构Variable-Width Transformers用×形结构把宽度和算力沿深度重新成形。链接
08
可交互世界模型的动作词汇基本只剩导航 视频生成ActWorld用动作感知记忆让你能真的拿起盘子、开门,而不只是移动视角。链接
09
top-k路由不可微一直是MoE训练的痛点 模型架构SoftMoE改成软可微路由,让专家选择能端到端学习(ICML)。链接
10
推理模型答案出来后还在硬想 推理加速从GRPO视角动态裁剪rollout治过度思考,省掉答案已现后的无效推理(华为)。链接
11
transformer学模乘法的「稠密Fourier谱」其实是分析视角的假象 可解释性重新拆解后是一座离散对数时钟(Stanford)。链接
12
图文矛盾时MLLM总偏向文字 多模态根因定位到late layer的文本偏置,并可针对性纠正(IJCAI)。链接
13
LLM代码翻译只盯功能正确,运行时效率长期被忽略 代码智能后摩尔时代这件事开始要紧(ICML)。链接
14
无监督稠密检索抓得到语义相近、却忽略时间相关性 检索用时间偏好优化补这一刀(ICML)。链接

今日观察

今天三篇互不相关的工作,凑巧在同一处使力:LoopCoder-v2用循环把深度折叠进时间,Looped World Models把同一招搬进世界模型,Variable-Width Transformers则按深度非均匀分配宽度。表面看一个讲推理加速、一个讲世界模型、一个讲架构,但它们其实在回答同一个问题——算力没必要沿深度均匀铺开,可以按每层不同的计算角色去分配。循环是「深度复用」的答法,变宽是「宽度成形」的答法,眼下正在不同任务上同时冒头。这不等于「循环架构是未来」或「静态堆叠已死」,更够不上「架构革命」;准确说,只是「层层等宽、一路堆叠」这个被默认太久的假设,被从几个角度同时松动了一下,能松到哪还不好说。如果你手上有自己的训练栈,不妨挑一个深度敏感的任务,先做个最朴素的对照:把中间几层共享权重循环两次,或者只给中段加宽,看收益曲线在第几层饱和——别等论文给结论,自己的负载才知道这道假设值不值得动。