pre-PhD: thinking & planning
- Academic
- 1天前
- 29 Views
- 0 Comments
- 5494 Words
来MSRA后,与很多人进行了观点交流和碰撞,真是开拓眼界了。信息密度大,可是任务紧凑,没能每一个idea都细细分析,在这里只能把他们大杂烩。如果有冲突或者重合,纯属个人臆想。
我目前最想去寻找的答案,就是未来5年的phd要做什么。时代的变动非常激烈,在AI的冲击下,传统的system以及HPC的研究方法、方向乃至思路都有可能发生翻天覆地的变革。

System 研究要追上Agent 步伐
古法编程一直是我们System&HPC人“引以为傲”的“核心竞争力”,我们高贵地认为修改编译器、内核、驱动、存储以及算子的代码需要大量“工程经验”以及“稳定”等模糊的长期经验。
跟Qianxi和Qi的讨论中我们意识到,无论这件事情是真是假,这都是一件糟糕的事情:
如果System确实需要古法编程,那我做System paper的速度和做工程的速度将永远小于AI迭代发展的速度,这也能解释AI和System的会目前总有代差,System开始研究inference时那边在研究线形注意力和长注意力,这边在做RAG等支持长程注意力时那边在做Agent和MCP,等system在做agent时,AI已经跑到下一步了。
如果System不需要古法编程,那就应该早点抛弃这个核心竞争力的观点,早点用上AI自动修改、debug等极速生产力功能。
我们可以不研究MLSys或者纯AI的工程,但是不能不使用最新的AI工具进行探索。比如我用codex 2小时查完所有SC的工作,就已经可以轻松的用AI全部做完了。
从这点来看,对于学校的知识学习,也是要进行翻天覆地的思考了。很多时候文凭就是一张纸,依靠AI学习的成本没有想象中那么大,尤其是工科的学习和非实验学科的学习,成本相对较小。在这种高自由度情况下,跟随传统课程就是送死,快速掌握与学习是新的能力要求。
Agent 不是万能的
“软件工程还在,但是程序员消失了,那么谁在干软件工程?”
这里有3个事实进行支撑:
1. 所有 Agent 在长期任务中都会退化
具体解释见 https://mp.weixin.qq.com/s/QhAIKYzmVEAmzQpR_pokpg?scene=1
大模型只能拟合和优化局部似然,但无法稳定保持“全局约束一致性”,说白了就是误差将不可逆积累。即使引入多 Agent 也不解决根本问题——SWE-CI 的双 Agent 设计本身就是一个例子:架构师和程序员之间的每一次需求翻译,都是一次信息损耗,约束在传递中不断被稀释。
这里最重要的一点是幻觉。在容量有限时,幻觉是数学上最优的错误方式。在最优解中,被幻觉的非事实和真事实共享完全相同的置信度。任何试图通过阈值来筛掉幻觉的操作,都不可避免地同时筛掉一部分真事实。
(LLM为什么宁可瞎编也不说“我不知道”?一个信息论的回答 - 开闸放水的文章 - 知乎 https://zhuanlan.zhihu.com/p/2002242617455427869)
从这点看,如果我们将LLM视为推理,那么会有更多的组件来增强LLM的记忆能力。但是总体 上看,我们目前仍然不知道LLM怎么完全不犯任何错误。
如何解决这种退化?我的思考是 Checkpoint。
之前我在刷GTASA时,我去赌场里用凯利公式赌钱。按照这种赌钱方法,赌2-3次就可以获利,但是在长时间的赌钱下按照赌场赔率一定是输的。对此解决方案很简单:赚钱存档,输钱回档。
如果把agent回答问题当作是概率赌博(shunyu yao建模为POMDP),人在agent工作情况下将扮演这样的Checkpoint角色,在AI陷入退化/输光前进行保存。从目前来看,Agent在困难任务前相比system方面专家还比较难扮演checkpoint角色。
这样的专家需要什么特点?结合构建之法的群友的讨论,这里专家需要检测出 trajectory-level drift(轨迹漂移),有这么几个重要点:
- 全局约束建模能力:对最终目标的明确与策划能力
- 误差放大敏感性:把错误找出并且及时扶正的能力
- 轨迹压缩能力:将过去关键决策识别并总结的能力
- 决策果断性:结合历史项目经验,应该及时改变方向/继续挖掘的能力
在不久的未来,可以思考的是,在有足够文档、日志等数据支撑下,低阶段的专家也会被替代。高阶段专家会因为数据点独特或者feature难以简单挖掘而变得稀缺。那么,这部分的人类/专家是怎么成长的?我认为是交流。ilya,ion,Jeff等人的数据难以复刻或者利用,他们的insight来源于大量的与phd及工程师的交流,这是一个普通phd难做到的。为了成为这样的高阶段专家,更复杂的数据源与眼界是必须的。
当然,我的观点可能未来几个月就会被打破,比如我看到这篇文章里,已经有很多人开始尝试解决这个问题:Harness Engineering 深度解析:AI Agent 时代的工程范式革命 - 知乎
https://zhuanlan.zhihu.com/p/2014014859164026634
从这方面来说,后面我们做软件以及开发的流程可能会发生革命。比如自动化的演进等等。
另外,postgresql已经开始做了PGFS的agent数据库,还有新的db9数据库,尝试将Agent的改动作为WAL进行存储,保证有agent存档和回档的能力。另外一个好处是多agent共享协同的能力,多个模型可以使用同一份上下文并进行分工协作。可以料想到下一阶段的Agent即将诞生。
2. System 组件将变得模糊
我将使用一个简单的论证来尝试构想这一点。
https://mp.weixin.qq.com/s/fjKunTpPLhWmXse9xE130A?scene=1 这篇文章讲到:
大家现在很关注 AI 的黑盒和可解释性。我认为黑盒化会长期存在,短期内很难变成白盒。 这是什么原因呢?我们可以先看历史,过去十多年,以杰弗里·辛顿(Geoffrey Hinton)和亚历克斯・克里泽夫斯基(Alex Krizhevsky)提出的神经网络,我们对它原理性的理解是越来越少,甚至连多层神经网络的数学本质也没有很好地被理解,更不用说现在规模不断扩大的 Transformer,以及像积木一样不断搭建的混合专家模型(Mixture of experts,MoE),所以,我们对数学本质的理解是越来越滞后,而且这个趋势会长期存在。而且行业发展更看重训练效率、速度等工程目标,不是可解释性。除非出现下一代颠覆性的 AI 范式,如图灵奖级别的突破, 否则短期很难彻底白盒化。从哲学上讲,史蒂芬·沃尔弗拉姆(Stephen Wolfram)提到充分复杂的系统是无法被简单系统“理解”的,如果是这样,那么AI的白盒化从第一原理性上就不可能。
但是反过来看,AI越黑盒,统计学反而越有用。统计最大的特点是:在原理不明朗的情况下,对很多问题我们仍能有效预测。 就像古代天文、孟德尔遗传规律,都是在没搞清底层机制时,先用数据总结出规律。*放到 AI 上也是一样:就算我们不完全理解 Transformer 的内部机制,依然可以用统计、回归、预测的方法去估计和分析。当然,AI 要真正实现可解释,可能还需要一套全新的数学理论突破,而数学和统计本身就是相辅相成的,数学一般擅长原理性的发现,统计适合数据驱动的内在规律的发现,这两个学科相互补充、相互赋能,在AI时代大有作为。
从我们刚刚的理论:“System工程必须要使用AI Coding”,与这条“AI 以及 AI Coding会退化并且是黑盒难以解释” 的 结论,我们尝试推到出,“未来的System组件是有概率出错的”,而我们构建sys的逻辑自然会转到“怎么面对一定会在某一时刻出错的系统”
这也正是Jeff Dean的逻辑和思考:
对话 Google 首席 Jeff Dean:概率性执行的 Agent 时代,Infra 必须重塑! - Guanlan的文章 - 知乎
https://zhuanlan.zhihu.com/p/2016034154123392293
只要一个系统里存在不可见的中间状态、不可审计的副作用,或者语义含糊的 retry,我就默认它迟早会出事,区别只是时间问题。
当执行者本身开始变成概率性的,很多过去默认成立的基础设施假设将会受到严峻挑战。当越来越多代码由 Agent 生成、越来越多流程由 Agent 执行时,我们要靠什么来保证系统仍然可控?
在这种场景下,很多分布式系统、软件工程的idea将会用起来。当然,这会是新一层的史山,还是说真的能work,只能静静看下去。
继续沿用确定性程序时代的默认抽象,很明显已经不够了。只不过到现在,这套东西最终会更像数据库里的事务语义、分布式系统里的工作流恢复,还是需要定义一种新的 runtime abstraction,行业里其实还没有形成定论。如果还把那些围绕确定性程序建立起来的设计取舍,原封不动套到 Agent 身上,最后做出来的东西大概率只能跑 demo,离真正托住生产系统还差得很远。语义化工作区 (Scratch Space)想象一个工程师在处理复杂问题。他同时开着几十个浏览器标签页,记了一堆笔记,还画了一张架构草图。到了晚上准备下班,第二天再继续。这时候他真正需要保留下来的是那张草图和那些关键笔记,以及已经形成的中间判断和结果。很多东西丢了都还能补,页面可以重新搜,日志可以再抓,临时结果可以再跑一遍。真正缺失的,是那个任务跑到一半时已经形成但还没固化下来的判断:它为什么排除了前两条路,接下来准备试什么,哪些约束已经被它确认过。一个长时间运行的 Agent 会积累大量状态。有些是它主动形成的关键判断,有些只是执行过程里的临时数据。如果你只是用 VM Paging 或者进程快照的方式把所有内存一股脑存下来,表面上像是什么都保住了,实际上既低效浪费资源,又缺乏语义。因为你根本不知道哪些状态真正值得保留,哪些只是过程噪声。我觉得更好的方向是一个类似 KV Store 的语义化工作区。它的价值不只是轻量,更重要的是它天然带语义:每一个 Key 都是 Agent 主动写进去的,代表它认为重要的状态;Value 则随着任务推进被不断更新。这样做 Checkpoint 时,留下来的就是一个有意义的 working set,而不是整块内存的无差别转储。背后其实是一个很朴素的系统原则:只保存 Root State(根状态),Derived State (派生状态)能重算的就不要硬存。
3. Agent时代的下半场:Benchmark
https://ysymyth.github.io/The-Second-Half/
It turned out the most important part of RL might not even be the RL algorithm or environment, but the priors, which can be obtained in a way totally unrelated from RL.
shunyu yao的想法是对的,一般泛化的LLM在面对特殊任务时,如果还想增强,就需要特化。
这里特化有很多方法,目前的是RAG外挂知识库、Memory管理、MCP、Dify工作流等等,但可以遇见的是,Agent 工程会是一个偏文科vibe coding + 调优的时间工程(这也是为什么最近新闻里说尝试招牌文科生,并不是文科生王朝了,而是对比找一个cs phd,文科生做这个钱够)。这个工作必须适配目前现有的系统,虽然开发难度不高,但是一定要有这样的work。(其实可以造一个这样的app agent,帮我们自动创造这样的特殊agent)
并且事实是,AI方面这种又“难”又累的活还真的很多。
我们还是需要人力去操作,不过对人能力的需求已经少了很多,我们只需要在具体系统bug(如死锁等需要计算机科学本科的知识)出现时进行修改和定位即可,虽然大部分时候这些bug都遇不到。
什么东西还要有 System
底层的岗位对内核稳定性要求高,并且必须保证不能崩溃。此时很多代码都是需要多层审查。这部分AI还需要提升。但是也可以看到,这部分的coding其实并非能力导致,而是实际工程中的问题导致的。公司的工作其实就像螺丝,换了另一个人来做其实也是一样的。从这方面来说,编译器、浏览器、OS、数据库、引擎等工作的测试及编写还是需要大量人的注意力去完成(这里不是说完全不用AI,而是AI应该会成为copilot但是不可能作为机长,否则下场很可怕)
从AI Paper中挖掘System idea其实还是不容易思考的。这方面涉及到更长的上下文,从目前来看,既然我们还没有能做出这种改变世界的产品的AI,那么基于idea去实现一个好产品的操作就还需要人来执行。
另一个idea是阿姆达尔定律。在并行计算里,阿姆达尔告诉我们,程序里可以被并行core加速的部分和依旧只能串行的部分都会存在,而因此导致很多时候我们加速一个程序是有极限的。那么换成AI时代,其实也是一样的,哪些部分会被AI并行加速掉,哪些无法替代。而我目前的目标或者想法可能就是继续追寻这部分无法加速的程序,并且把它做到最好。
什么东西无法替代?正如我刚刚说的,全局思考及主线思维,科研idea,方向上的insight(Bojie Li所说的未来的工作会是怎么样),从小到大,这三个目前AI还无法引领。
当写代码的成本趋近于零,能不能高效验证代码才是关键。代码的"可验证性"会变得比"好不好写"重要得多。纯函数,给输入返输出,确定的;Actor,给 cmd 返 response,也是确定的。它们的共同点就是边界清晰、行为可预测,不用读懂实现就能验证对不对。以前嫌函数式啰嗦、Actor 门槛高,但 AI 不怕啰嗦也不怕门槛。
关于PhD以及成长
科研不是平均值,别人评价你只评价最好的一篇代表作,要定义那个最大值。Impact是一个给别人施加影响的词,想让别人都听你的,跟你一样,跟着你做。而发论文应该是让别人试图理解你,读论文是你去理解别人。
——Saining Xie
这里最重要的有两个点:研究方向和计算资源。从这方面来说,企业界可能才是System PhD里最应该去的地方,接触一线的问题,并尝试去解决。按照这个操作,我应该要去思考下一个工作可能要集中在企业里比较重要的需求。
我想回忆去年看到的这篇文章:
如何发现一个20岁时就值得投资的人
https://mp.weixin.qq.com/s/VgY-Lx_VDwccpXgsruWoRg?scene=1
去年看到,今年Kimi旋转注意力出来,一作是16岁的高中生,而他的mentor,就是董老师 https://mp.weixin.qq.com/s/gRR99pEDWb5qsk2a2hwe2w?scene=1
我们如何识别那些还没开始,但未来可能改变世界的年轻人?
我想谈一种常被忽略的天赋。它不像智商或履历那样容易量化,却往往决定了一个人能否走出轨道,走出属于自己的路径。我称它为结构外生长力(Structural Divergence Capacity)。这不是简单的自律或自驱,而是指在没有任务、没有外部压力的情况下,是否能自我设定目标、持续推进、独立成长。
过去几年,我见过上万名创业者。最让我着迷的,不是那些履历光鲜、表达完美的人,而是那些不太常规的年轻人。他们跳跃、直觉、不善解释,却往往有原始的探索冲动。你能感受到,他们身上有股火,只是还没烧起来。
很多人问我,投人是不是得等他们做出点成绩?我的答案是,不一定。那些还没“拔刀”的年轻人,反而更值得投。就像《孙子兵法》里说的,“善战者无赫赫之功”,未出手已成势,也避免了出手不当反伤自己。
对年轻人而言,最宝贵的状态,是即将出招但还未亮剑的阶段。他们有强烈动机、有早期判断,却还没定型,也因为如此,支持他们的增量价值极大。当然,有些人拔过刀但失败了,如果能从中快速吸取经验、形成反思,也是一种成熟的信号。
但大多数年轻人,并不是没有潜力,而是被三种看不见的力量困住了:认知受限、缺乏勇气、方向迷失。他们不是不聪明,只是没跳出主流路径,不敢承担失败,或在理想与现实的碰撞中逐渐放弃。真正具备结构外生长力的年轻人,恰恰是那些已经在突破这些障碍的人。
这类人可能在学校期间,并不把自己看作学生。他们的信息源是多元的、去中心的,甚至是不稳定的。他们主动开VPN学习前沿、联系陌生人、下载非主流App、尝试产品原型、组织朋友试用。他们甚至懂得伪装——在需要时以学生身份示弱,从而获取帮助。他们未必在课表上留下记录,却有自己的学习路径;未必在活动里刷脸,却始终在行动。他们不像是被培养出来的,更像是自己长出来的。
从老师提出了6个点,我觉得我可以做一个SGD的训练,不断逼近:
一、感知世界的能力,远超同龄人
我已经在进步,并且可能的事实是,我的目光已经很远。我能不能更远?能看出别人没看到的东西,这需要经验,但是目前的我需要多少?
打分:8.0/10
二、问题导向,动手去做
我的动手能力还需增强。并且更重要的是,我的精力被分散,还是被分散到我认为没什么意义的工作上。这点是个矛盾,我又一次陷入了短期回报多但是长期回报一般,还是短期回报少但长期回报可能多可能少的抉择中。我应该再一次选择长期回报吗?
打分:7.5/10
三、好奇心的密度和可执行性极高
我一直到现在都是这样。但是这一点和问题2会冲突,也就是精力上的冲突。
打分:7.5/10
四、自我迭代能力
复利式的博客和自我革命是我大学收获的最宝贵财富之一,排名第二。
打分:9.0/10
五、能穿越失败、忍受无人理解的阶段,坚持再坚持
韧性与不服输是我大学收获的最宝贵财富,排名第一。
打分:9.5/10
六、智慧且愚蠢
只钻研一个方向,并且放弃生活中很多事情。从目前来看,我还差娱乐这一点。这是一步困难的跨越,同时我也思考,如果下一步要做的好,可能是要养成更好的生活习性。
打分:8/10
成长不是线形优化,noisy optimization under partial observability。但目前来说,在接下来的几个月,我有几个能力可以发展:
-
scheduling policy
如何针对多个纵向横向,合理分配时间,并且保证大脑上下文不爆炸。这是我这几个月可以充分锻炼和成长的。同时,对“有反馈的任务”过拟合(短期 reward bias)是一个稍微有点可以控制的事情。 -
问题导向 + 聚焦
有一个“主线问题”在持续推进,有别的副线同步。对不同的人进行探索和思考,同时想想,吃饭的时候,应该讲什么呢?
我进入 PhD 时,站在什么位置?
