ARTICLE · 1029518
AI开始给自己修发动机了
智谱唐杰最近写了一篇文章,开头就两个词:
Two weeks。
两周。
两周时间,GLM-5.3-Flash完成国产加速卡生产迁移,整体吞吐提高3.2倍。

干这些活的,不只有智谱的工程师。
还有GLM自己。
它正在参与优化那套每天运行自己的系统。
这事以前基本都是人干。
大模型发布以后,并不是扔到服务器上就完事了。模型怎么跑得更快,怎么少占显存,几张卡之间怎么传数据,哪里堵了,哪里还有性能可以往外抠,后面全是工程活。
尤其换到一套新的硬件上。
这次GLM-5.3-Flash要支持100万Token的长上下文,还要处理多模态请求,显存和芯片之间的带宽又有限。底层软件也没有成熟到什么都有现成答案,有些Kernel缺了就得自己补。

智谱把一个GLM-5.3驱动的Infra Agent放进了这套工作里。
刚开始,它也会把事情搞砸。
有一次改完代码,几个小时的测试跑完,吞吐掉了20%。
代码能跑,结果也没错,就是比以前慢了。
这种问题比报错难查得多。
程序崩了,至少还有错误信息。性能掉了20%,机器不会告诉你为什么。可能是某段计算慢了,可能是数据传输堵了,也可能是几个环节没配合好。
完整测试跑一次还要几个小时,不能靠不停改代码碰运气。
老工程师碰到这种事,有自己的查法。
看运行记录,把某个环节单独拎出来测,对比修改前后的结果。有些经验做久了以后已经成了习惯,一个数字不对,大概知道该先往哪里查。
Agent一开始缺的就是这些。
它能把代码写出来,却不太会查为什么刚才那段代码让机器变慢了。
团队后来给它增加了一套更细的检查工具。
算得对不对,可以单独查。
时间花在哪儿,可以直接看。
两个方案谁更快,也可以先做小范围测试。
不用每次改完都傻等几个小时,最后只拿到一个“快了”或者“慢了”的结果。
这些工具装上以后,Agent开始找到一些藏得挺深的问题。
有一次,问题出在数据传输上。
系统原本安排两项工作同时进行,实际跑的时候却没能重叠。前面的事情占着资源,后面的只能等。
Agent顺着调用链往下找。
从Python一直查到C++,最后发现节点内的一条路径没有释放GIL。
修掉以后,这部分原本超过30%的传输开销,降到了不到1%。
还有一次,它去看一个负责推理的Kernel。
里面同一个归一化计算,因为分块方式的问题,重复做了四遍。
Agent重新调整了一遍,速度提高1.71倍。
它能想到这个改法,也不是凭空出来的。
此前它读过SGLang、FLA、DeepGEMM里的不少Kernel。
这些都是大模型底层系统里很重要的开源项目。Agent从里面整理了一些常见的优化写法,碰到新问题时就会拿出来用。
人学习编程的过程也这么过来的。
看别人代码,看多了,很多写法会记住。以后自己遇到类似的问题,知道以前有人这么处理过,就会按照经验来处理。
现在GLM也开始积累这种经验了。
GLM是被优化的对象。
同时,它也成了参与优化的人。
以前我们谈AI编程,大部分时候还是得需要人在指挥。
“帮我做个网页。”
“这里报错了,看看怎么改。”
“这个功能加一下。”
任务是什么,人知道;哪里出了问题,很多时候人也已经告诉它了。
但是这次不一样了。
服务器只给它一个结果:
慢了。
问题出在哪里,它得跟着工程师一起找。
它修的不是别人的软件。
它修的是运行自己的那套系统。
这件事还有后半截。
今天Agent查出来的这些问题,解决完问题的经验都会留下来。
比如那次传输开销超过30%。
Agent最开始看到了什么,检查过哪些地方,哪条路没找到答案,后来为什么一路从Python追到C++,最后又怎么确定是GIL的问题。
下一个Agent可以继续学。
以前一个老工程师排查问题,很多经验只存在他自己脑子里。
Bug修完了,代码提交了,最后留下来的可能只是一个PR。
至于他当时为什么先查这里、为什么觉得那里不对,未必有人专门记。
Agent干活不一样。
过程本身就能变成数据。
今天的模型参与解决一个真实问题,留下来的经验以后,又可以拿去训练后面的新模型。
下一代Agent再遇到类似情况,就不用从零开始了。
这也是唐杰在文章最后提到“recursive self-improvement”的原因。
翻成中文,就是递归式自我改进。
这个词很容易让人想到科幻电影里的桥段:
AI自己研究AI,自己改进自己,然后越来越强。
但是现在还远远没到这一步。
这次GLM能干这些活的原因,前提是工程师把环境搭好了。
目标由人来定,检查工具由人来做,风险比较大的修改最后也要人来看。
所以现在说“GLM已经可以自我进化”,其实是说过头了。
唐杰原文的说法要克制得多:
We are still far from recursive self-improvement.
离递归式自我改进还很远。
后面还有一句:
But the smallest loop now exists.
最小的那个循环,已经有了。
这个循环其实不复杂。
工程师造出GLM。
GLM参与优化运行自己的系统。
系统变快以后,又继续运行GLM。
它干活时留下来的经验,还可以交给后面的Agent。
现在,人还站在这个循环中间。
只是AI已经不再老老实实坐在车里等着工程师把一切调好。
这次它也下车了。
打开引擎盖,跟着一起找毛病。
文章最后,唐杰留下两句话:
The model optimizes the system.
The system serves the model.
模型优化系统。
系统运行模型。
AI开始给自己修发动机了。