2023年8月,一篇叫《3D Gaussian Splatting》的论文横空出世,用一堆三维空间里的"高斯小球"实现了实时渲染三维场景的效果,速度和质量都碾压了之前流行的神经辐射场方法。这篇论文火了。
火到什么程度呢?
不到三年时间,围绕这个技术的后续论文已经超过1500篇,平均每天还在新增大约3篇。你可能觉得这是好事,论文多说明领域繁荣。但如果你是一个想要跟进最新研究的科研人员,这件事的真实体验是:你每天一睁眼,世界上又多了三篇你没看过的论文,而其中四成根本不releases代码。
剩下那六成放代码的呢,情况也好不到哪去。
这些论文大多是从英伟达INRIA实验室放出的原始3DGS代码库里"fork"出来的分支,每个作者改的地方不一样,命名习惯不一样,连渲染的基本假设都可能不一样。你想拿某篇论文的方法去跟另一篇比较,经常发现两边的代码根本对不上号,没法直接比较效果。想要复现一篇新论文,经验丰富的研究者通常要花一到两周时间手动重新实现,还得反复调试。
这就是SPLATIFY要解决的问题。它是由加州大学圣地亚哥分校的研究团队做的一个多智能体系统,输入一篇3DGS论文,几分钟到半小时之内,就能吐出一份可以直接训练的代码。不仅如此,它还能自己诊断现有方法的弱点,把多篇论文的技巧拼接组合,让效果比原论文更好。甚至能跨界去物理学文献里找灵感,发明出前人从没做过的新方法,比如给星云渲染、肥皂泡彩虹光泽这种3DGS从没碰过的场景造一套全新算法。
这篇文章就带你拆开看看,这套系统到底是怎么做到的。
为什么"读论文写代码"这件事比想象中难得多
你可能会说,现在GPT这么强,读论文写代码不是手到擒来吗?
研究团队真的试过。他们拿GPT-5.2、Gemini 3.1 Pro、DeepSeek 3.2这些顶级模型,还有专门做论文转代码的工具Paper2Code和AutoP2C,让它们去实现10篇从没公开过代码的3DGS论文。结果呢,全军覆没,没有一个系统能生成可以正常训练的代码。
问题出在哪?
3DGS的代码有一种特殊的脆弱性。它不是普通的Python脚本,背后挂着一套CUDA渲染后端,训练过程中还有一个叫"自适应密度控制"的机制,会根据梯度信息动态地分裂、合并、删除那些代表场景的小高斯球。这套逻辑环环相扣,哪个环节接错了线,表面上代码能跑起来,训练到后期却会突然崩溃,或者PSNR(峰值信噪比,衡量渲染图像和真实图像相似度的指标,数值越高说明渲染越准)长时间卡在某个数值不再提升。
这就好比你照着说明书给汽车换一个零件,螺丝都拧上了,发动机也能打着火,但你开出去五十公里后才发现刹车系统的某根线接错了。短途试车完全看不出问题,只有真正跑起来才会暴露。生成式AI写代码也是一样,它能写出"看起来对"的代码,但只有真正跑完几万步训练,才能看出密度控制有没有出岔子。如果不做长时间的训练监控,这种隐患会一直潜伏到你真正要用这个模型的时候才爆发。
SPLATIFY的设计者意识到,要解决这个问题,光靠让AI"读懂论文"是不够的,必须给AI一套结构化的脚手架,让它没法偏离正轨。
语法的边界:让AI只能在规定的轨道上发挥
SPLATIFY第一个核心设计,是给gsplat(一个开源的高斯泼溅渲染库)定义了一套上下文无关文法。
上下文无关文法:一种形式化的规则系统,规定了哪些代码组合是"合法的",哪些是"非法的",常用在编程语言的语法设计里。
听起来有点抽象,说白了就是研究团队分析了超过40篇3DGS论文后,发现所有的论文改进点,不管是抗锯齿、几何精度、密度策略还是深度监督,都可以归纳到九个固定的"扩展点"里去。他们做了一个核心模板类GSTemplateModel,里面已经写好了标准的高斯泼溅渲染、密度控制、球谐函数调度、相机优化等等所有公共逻辑。AI智能体要做的,不是从零开始写一个完整系统,而是继承这个模板,只需要往九个预留的接口里填代码,比如要加一个新的正则化损失,就只用重写compute_custom_losses()这一个函数。
如果不设这套语法约束会怎样?
研究团队做了消融实验,去掉CFG约束后,代码可训练的成功率从100%掉到70%,大量失败案例是智能体把密度控制逻辑放错了位置,或者优化器的参数没接对。
这就像给一个实习生布置任务时,你不是甩给他一张白纸让他从头设计整个系统,而是给他一个带插槽的电路板,告诉他哪几个插槽是留给电源的,哪几个是留给信号线的,他只需要把元件插进正确的槽位。如果你给的是白纸,哪怕这个实习生再聪明,也可能把电源线和信号线接反,整块板子一通电就冒烟。而带插槽的电路板从物理结构上就杜绝了这种接反的可能,这不是约束了创造力,而是把创造力限定在了不会出错的空间里。
追踪代码的"亲戚关系":fork感知的引用恢复
第二个难点是刚才提到的,3DGS论文大量是互相fork出来的。
论文里经常会说"我们在XX基础上加了YY",但代码层面的继承关系往往比文字描述复杂得多。SPLATIFY举了个例子,有一篇叫Trick-GS的论文,组合了来自七篇不同论文的八种技巧:从Self-Organizing Gaussians借来的体积遮罩、从LightGaussian借来的重要性剪枝、从E2E-RD借来的球谐波段遮罩,等等等等。
普通的文本级引用追踪,顶多告诉你"这篇论文引用了那篇论文",却说不清楚具体是哪个函数、哪行代码被借用了。SPLATIFY的做法是,对每一篇被引用的论文,先检查它的代码库是不是从已知的基础代码库(比如原始3DGS、Mip-Splatting、2DGS、Scaffold-GS)fork出来的,如果是,就计算这个fork和它的父代码库之间的结构化差异,把每一处改动打上语义标签,比如"损失函数/深度扭曲"。遇到跨多代fork的情况,还会沿着继承链一路追溯下去,把整个修改栈还原出来。
Fork:开源代码里的一个术语,指基于某个已有代码库复制出一个独立的新版本进行修改,就像从一棵树上剪下一根枝条重新种。
这个过程最后会把Trick-GS这样一篇论文,还原成一张包含12篇相关论文的依赖图,GaussianPro甚至能扩展到8层依赖,Scaffold-GS和PGSR各有7层。
这有点像破案时查一个人的资金流向,光看他说"我这笔钱是朋友借的"是不够的,得真的去查银行流水,看看这笔钱从哪个账户转出来,中间经过了几道手续,才能确认钱的真实来源。如果只相信嘴上说的引用关系,查不到代码层面的真实血缘,那复现出来的代码很可能漏掉关键细节,或者张冠李戴地把别的论文的技巧安在了错误的地方。消融实验显示,去掉这套fork感知机制,30%的创新点会变成完全没实现的空白。
Graph of Thought:按照正确顺序一块一块搭积木
有了语法约束和依赖关系图,接下来就是真正动手生成代码的阶段。
SPLATIFY的主控智能体用的是Graph of Thought(思维图谱)的方式来组织代码生成,先把论文的贡献点分类到前面提到的九个扩展点里,确认组合方式合法,然后按照拓扑依赖顺序,一个文件一个文件地生成,每写完一个文件就做一次冒烟测试。
拓扑依赖顺序:在一个由多个相互依赖的任务组成的系统里,先完成不依赖别人的任务,再逐步完成依赖它们的任务,确保每一步开工时所需的前置条件都已经就绪。
论文的消融实验里有一个特别说明问题的数字:去掉GoT,直接让GPT-5.2一次性生成所有代码,评分从0.97暴跌到0.49,哪怕新颖点的保真度还不错,代码本身却会因为破坏了依赖顺序而整体垮掉,经常生成的是互相矛盾的大文件。
这就像盖房子,你不能先把房顶盖好再去打地基,必须先打地基,再砌墙,最后上房顶,每一步都要等前一步的混凝土凝固了才能继续。如果不按顺序来,图省事一口气把所有东西都堆上去,地基还没稳就盖房顶,整栋楼迟早会塌。GoT做的就是严格按照这个先后次序,一步一步稳扎稳打地把代码垒起来。
四路反馈:让AI学会"看图说话"也学会"盯盘"
代码生成完只是第一步,真正决定质量的是后续的反馈闭环。
SPLATIFY会先让生成的代码跑3000步的冒烟训练,然后让一个"批评智能体"从四个分支去审视渲染出来的图像。第一路是指标分支,计算局部窗口的PSNR和SSIM误差图,找出哪块区域渲染得特别差。第二路是几何分支,专门抓"悬浮物"和"重影"这类伪影,靠多视角的一致性校验来识别。第三路是语义分支,直接让一个视觉语言模型(VLM)来看图说话,给出具体的诊断和候选修复方案。
SSIM:结构相似性指数,是另一个衡量两张图片相似程度的指标,关注的是结构和纹理层面的匹配,和PSNR互为补充。
VLM:视觉语言模型,一类既能理解图像又能理解文字的AI模型,可以直接"看图说话"。
第四路是SPLATIFY特有的,叫PSNR训练曲线监控。
这路反馈的逻辑挺有意思。3DGS训练速度特别快,几十分钟就能跑完30000步,这意味着AI完全有条件盯着整条训练曲线看,而不只是看前3000步的快照。研究团队发现3DGS有个特点,它的密度控制阶段通常在第15000步左右结束,这之后如果剪枝或者损失调度写错了,问题往往要到这个节点之后才会暴露出来,短时间冒烟测试根本看不出来。系统会专门盯防两种故障:一种是"后期崩溃",PSNR在15000步之后突然跳水;另一种是"停滞平台",连续5000步PSNR提升不到0.1分贝。一旦发现,智能体会把故障定位到具体的某个扩展点,发出针对性的补丁。
这就像体检,如果你只在早上八点抽一次血,很多只在饭后才会显现的指标异常你根本查不出来。要真正了解一个人的身体状况,得让他戴上24小时动态监测设备,记录全天的心率和血糖波动曲线。3DGS训练速度快到可以负担得起这种"全程监测",这是它和训练动辄几天的神经辐射场方法相比一个隐藏的优势,而SPLATIFY恰好把这个优势用上了。
消融实验显示,去掉冒烟测试,可训练率从100%掉到50%,是所有被测试组件里影响最大的单项。去掉结构检查,分数从0.97降到0.89,可训练率降到80%。
从复现到超越:AI自己给论文"打补丁"
讲到这里,SPLATIFY只是做到了"忠实复现",论文说什么它实现什么。但研究团队显然不满足于此。
他们给SPLATIFY设计了第二层能力,叫组合式发现。思路是这样的:很多3DGS论文只解决了一个局部问题,比如某篇论文专注于提高密度控制的效率,但对渲染细节的正则化做得一般。SPLATIFY会在复现完一篇论文之后,再跑一遍诊断流程,去知识库里找能弥补这个弱点的互补技巧,自动组合进来,然后验证组合之后的效果有没有真的变好。
整个过程完全没有人工指导。
这套搜索机制借鉴了谷歌DeepMind的FunSearch思路,维护8个"探索岛屿",每个岛屿由一个独立的智能体负责,每一轮每个智能体提出一个变体方案,可能是换一种密度策略,也可能是加一个新的损失项。
多保真度级联:一种节省计算资源的评估策略,先用较少的训练步数(比如2000步)筛掉明显不行的方案,剩下的再用更多步数(7000步)继续筛选,最后只有少数候选方案跑满完整训练(30000步),逐级淘汰。
这套机制跑完一轮,8个候选方案会先在2000步淘汰一半,剩下的4个在7000步再淘汰一半,最后2个跑完30000步决出胜负,用一个综合PSNR、SSIM、LPIPS(一种衡量图像感知相似度的指标,数值越低说明越接近人眼感知的真实图像)的加权分数做排名。
研究团队还做了个对照实验,把这套智能体探索换成随机采样,结果随机采样花了8倍的token,只拿到四分之一的提升效果。这个数字很说明问题,说明智能体不是在瞎猜,而是真的在"诊断"。
实际效果怎么样呢?拿Opti3DGS这篇论文复现后再跑一轮优化,PSNR从27.71提升到28.05,加上的是自适应密度化阈值和不透明度熵正则化。DWTGS这篇论文提升最猛,从18.68一路冲到21.09,涨了2.4分贝,这背后是加了补丁结构损失加上不透明度、法线、深度三重正则化。
这就好比你请了一个翻译把一本外语烹饪书翻成了中文,翻完以后这个翻译自己又跑去尝了尝按书做出来的菜,发现某道菜咸淡没调好,于是主动去查了别的菜谱,借鉴了一个调味手法,把这道菜改良得更好吃了。如果翻译只满足于逐字翻译,做出来的菜顶多跟原书一样,不会比原书更好。而SPLATIFY选择的是让系统在"忠实翻译"之上,再往前多走一步。
跨界造新物种:当3DGS遇上星云物理学
最让人意外的,是SPLATIFY的第三层能力,跨领域方法发明。
研究团队挑了几个连3DGS社区都没人碰过的场景类型,比如星云和肥皂泡,让SPLATIFY自己去找解决方案。
先说星云。星云是一种光学稀薄的发射介质,物理上讲,它的光强是沿着视线方向的纯粹叠加积分,不存在遮挡和吸收。但标准3DGS用的是透明度叠加公式,这套公式天生倾向于把每个高斯球的不透明度推向0或1这两个极端,结果渲染出星云会出现一圈圈不该有的"不透明外壳"伪影。
Kolmogorov湍流:一种描述流体内部能量在不同尺度上如何分布传递的物理理论,能量谱遵循k的负5/3次方规律,这意味着流体的精细结构主要体现在高频细节上。
更麻烦的是,星云的发光模式遵循Kolmogorov湍流的能量谱规律,细节主要集中在高频成分,而传统的像素空间损失函数天生对高频细节不敏感,容易把这部分特征"磨平"。
SPLATIFY的智能体自己去检索了辐射传输理论和湍流理论的相关文献,提出了六项改动:给每个高斯球设一个独立的发射参数,把亮度和不透明度解耦开;加一个透明度上限损失,强行压制不透明度不要超过0.95;引入一个基于二维傅里叶变换的频谱损失,专门匹配高频细节;加一个尺度各向同性惩罚,鼓励高斯球保持球形而不是被拉成扁片;用多尺度L1监督去捕捉湍流的层级结构;把球谐函数的阶数直接设成0。
效果上,这个被命名为NebulaGS的新方法PSNR从普通3DGS的31.19分贝提升到32.52分贝,SSIM从0.862提到0.914,而且每个视角之间的渲染标准差从6.29大幅下降到2.62,说明渲染结果的视角一致性也明显变好了,渲染速度几乎没受影响。
再说肥皂泡,这个场景的核心物理是薄膜干涉。光线穿过一层薄薄的液膜,会在上下两个表面之间反复反射,不同波长的光因为相位差不同,呈现出我们看到的那种五彩斑斓的彩虹色泽。这背后有个叫Airy函数的经典光学公式,描述了反射率如何随波长变化。
智能体从这个公式里拿到了物理预测的色度信息,然后发现标准3DGS的球谐函数系统压根没法表达这种随角度剧烈变化的色彩,同时不透明度的二值化倾向又会制造出不该有的"外壳",因为薄膜真实的峰值反射率只有大约8%,而3DGS习惯把不透明度往极端值推。
最终这个叫BubbleGS的方案加入了薄膜厚度参数、色度匹配损失、透明度上限、扁平度正则、厚度图的平滑约束等六项改动,PSNR从26.97提升到27.81,LPIPS从0.264降到0.244。渲染速度因为多了一次厚度光栅化的计算,从99.1帧每秒降到69.1帧每秒,但依然远超实时渲染的门槛。
这两个案例最打动人的地方不是提升了多少分贝,而是整个过程里没有一个人类专家告诉AI"你应该去读辐射传输理论"或者"你应该查一下Airy公式"。这就好比你交给一个助理一个从没做过的任务,比如"给这个从没下过雨的沙漠小镇设计一套排水系统",一个平庸的助理会去翻之前城市排水的案例照搬,而一个真正厉害的助理会先去查沙漠气候学和土壤渗透的资料,搞清楚这个地方降雨的物理特性跟一般城市完全不同,再据此设计方案。SPLATIFY做的正是后者,它不是在已有的3DGS论文库里缝缝补补,而是真正跳出这个领域去找物理学原理,再把原理转译成代码。
30篇论文的大考:SPLATIFY-BENCH
研究团队专门搭建了一个评测基准叫SPLATIFY-BENCH,包含30篇论文,分成三组。
第一组是10篇完全没有公开代码的论文,专门请专家花一到两周时间做了参考实现,确保AI模型在预训练阶段不可能"背过"这些代码,排除数据污染的可能性。第二组是10篇有原始代码库的论文,可以直接拿SPLATIFY生成的代码和原作者代码对比。第三组是10篇特意挑选出新颖点数量多、容易验证的论文,专门用来检验SPLATIFY有没有"偷工减料"漏掉重要创新点。
第一组的结果显示,SPLATIFY的渲染质量平均能做到跟专家实现相差不超过0.5分贝PSNR和0.02的SSIM,而所有对照的基线系统,包括Paper2Code、AutoP2C以及几个主流大模型直接生成,全都没能产出可训练的代码。
第二组对比原作者代码库,SPLATIFY的平均偏差控制在0.3分贝以内,而且还顺带把这些各自为政的代码统一改造成了标准的gsplat插件格式,方便互相比较。
第三组的新颖点覆盖率评测更能说明问题。研究团队找了独立的人类专家,一行行比对生成代码和论文原文,标注每个创新点是完全实现、部分实现还是彻底遗漏,还核查了具体的超参数设置是否准确(比如有的系统会把四元数姿态表示错误地换成欧拉角,或者把本该用Sigmoid的地方错用了Tanh)。结果SPLATIFY在所有测试论文上的语义得分都在0.94分以上,而DeepSeek 3.2和GPT-5.2 Thinking这类顶级大模型的得分普遍只有0.4到0.7之间。
这组数据背后有一个值得琢磨的现象,大模型生成代码能跑起来,和这段代码真的忠实还原了论文的创新点,完全是两回事。一个系统完全可能生成一份能训练、能出图、PSNR数字看起来也还行的代码,但背地里悄悄丢掉了论文最核心的那个创新机制,只是凑巧蒙对了一个过得去的结果。
写在后面
读完这篇论文,有个细节让我反复想了很久,就是消融实验里那个"一次性生成"对比"按顺序生成"的分数差距,0.97对0.49,几乎腰斩。这说明一个很容易被忽视的事实,大模型的知识储备和它组织代码的能力,其实是两件相对独立的事情。GPT-5.2完全知道这些论文里讲了什么新颖的技巧,评分表里"新颖点保真度"那一栏数字并不低,但知道归知道,让它按照正确的顺序把这些知识变成一份能跑的工程代码,是另一套完全不同的本领。这提醒我们,未来评价一个AI系统到底"懂不懂"某个领域,光看它能不能复述知识是不够的,还得看它能不能把知识组织成一个经得起时间考验的、结构完整的产出。
还有一点值得单独说一说,NebulaGS和BubbleGS这两个跨界发明案例里,智能体最后给出的解决方案都是"训练时损失函数的修改",没有一处碰了渲染器本身的光栅化代码。这其实暗示了一个挺朴素的工程智慧,遇到一个全新领域的问题,不一定非要从底层架构推倒重来,很多时候找准约束条件,在现有框架的接口里打补丁,反而是代价最小、风险最可控的路径。
论文里也留了一些没细说的地方,比如这套系统目前只在gsplat这一个渲染库上验证过,作者在结论里提到这套架构思路理论上可以迁移到三维重建、机器人仿真这些别的领域,但具体怎么迁移、迁移过去效果如何,论文里并没有给出实验数据。这倒是个挺自然的追问,如果有一天我们真的看到"RoboSplatify"或者"ReconSplatify"这样的后续工作出现,大概就是这个设想落地的时候了。
Q&A
Q1:SPLATIFY是什么?
A:SPLATIFY是加州大学圣地亚哥分校团队开发的多智能体系统,能把3D高斯泼溅(3DGS)相关的论文自动转换成可训练的gsplat代码,原本要一到两周的人工复现工作,现在几分钟到半小时就能完成。
Q2:SPLATIFY和GPT-5.2这些大模型直接生成代码有什么区别?
A:区别很大。论文实验显示,GPT-5.2等前沿大模型直接生成的3DGS代码无法稳定训练,可训练率几乎为零,而SPLATIFY通过语法约束、fork感知的依赖追踪和多路反馈机制,在测试论文上实现了100%的可训练率,渲染质量也能接近专家实现水平。
Q3:SPLATIFY真的能发明全新的3DGS方法吗?
A:能。论文展示了SPLATIFY自主检索星云物理学和薄膜光学理论,为星云渲染和肥皂泡彩虹效果这类3DGS从未涉及的场景设计出NebulaGS和BubbleGS两套新方法,效果均明显优于普通3DGS,且全程没有人工干预。
好文章,需要你的鼓励
RGPO用"临时脚手架"破解大模型强化学习的奖励稀疏难题:先让模型独立解题,失败则分段放出标准解法引导重写,仅采纳经验证更优的答案。难题测试准确率从0跃至99.5%,语言模型平均分高出最强基线5.0分。
论文提出用MoE模型的路由器输出作为跨语言对齐目标,通过持续预训练对翻译句对施加路由KL散度损失,在不改变分词和架构的前提下让隐藏表示更接近,并在四个开源MoE模型、七种语言上验证了下游任务性能的一致提升。
DiffGate提出难度门控的教师指导机制,让验证器决定何时需要教师介入,仅对失败且困难的轨迹提供有界教师指导,结合GRPO强化学习,在数学与代码任务上显著提升解题覆盖率与跨领域迁移能力。
研究者用固定不变的16位二进制编码替代传统可训练词嵌入表,在17亿参数规模模型上训练1000亿token,证明模型仍可获得实质语言能力,揭示输入表并非必需,但性能略逊于可学习方案。