Computer Systems vs AI
计算机科学,在中国高校的语境下很多时候都包含计算/算法侧的人工智能。也就是说,人工智能似乎是在计算机下的一个子学科。然而,计算机系统方面科研或者大厂程序员码农工作所用的思维,和人工智能科研的思维可以说完全不同。
传统计算机大量使用逻辑思维。我算是逻辑思维可能比较强的人。不过逻辑思维似乎没有一个统一的定义。具体来说,我初高中的时候物理学得比较好,而化学学得很差。化学越到后面和物理越远,理论性的东西越来越少,记忆性的东西越来越多,我学得一头雾水。到了大学,离散数学差不多是我大学修过的课里考得最高的一门科目。在学形式逻辑的时候,我会觉得这就是把我脑子里平时思考使用的逻辑用一种数学的方式表达了出来,所以很容易学懂。与这门课强相关的数电自然也学得不差。
这些课都有一个共性,就是他们都有一套简洁的公理,加上合理的逻辑以后可以把整门课的内容推导出来。如果多熟悉这些公理,多推导,很容易就能建立起一套好用的直觉。传统计算机世界,至少在 ISA 和之上的抽象层面,可谓是完美符合这个特性。当你扎实地学了基础的计算机专业课后,只要愿意投入时间,可以说计算机里任何一个过程都可以被理解。或者说任何一个问题都能有一个比较清晰的寻找答案的路线图。注意这只需要 4 年的学习时间,而且是 前 ChatGPT 时代就能做到的事。归根结底,计算机世界是完全人造的,而人脑能设计出来的东西复杂程度有限。软件是物理过程在计算机世界的投影,但也只是投影。从汇编语言到 C 语言到 Python, 从 xv6 到 Linux, 抽象的层数在增加,复杂程度在增加,但是这种复杂程度最终是可控的。
- 下层的原理简单(逻辑门比 RV32I 指令集在原理上简单,它们也比 C 语言在原理上简单),但是实现同样功能的软件更复杂。
- 上层的原理复杂(抽象程度高),但是实现同样功能的软件更简单(吗?)。
关键在于,你总是能够很容易很确定地把某个层面的东西翻译到另一个层面,从而增加自己对其的理解和认识。这种学习方法几乎唯一会碰壁的场景是学习不同的计算模型。如果尝试用基于状态转移的图灵机和过程式编程强行理解 lambda 演算和函数式编程,那大概率学不好。因为这两者都属于最基本的不可再刨根问底的原理,强行把一个基于另一个理解就相当于要用经典物理的视角理解量子力学(这个例子好像不是很好)。
在这种环境下,刨根问底会被加以一个很强的奖励信号。我有意识或无意识地让自己经历了各种计算机科学的训练,也养成了刨根问底,先打好基础再学上层知识的习惯。
但是这些习惯带到 AI 的学习和科研上,就很容易碰壁。因为 AI 引入了现实世界,而现实世界是不讲道理的,或者说没有像人造的计算机世界那样讲道理。一张照片的数据是电磁波被 CMOS 传感器接收转换出来的电信号组成的,一段音频记录的实际上是气压的变化,一段文字...文字也是现实世界在人造的语言世界的投影,从这一点看文字可能是最好被计算机分析的模态了,而实际上也确实是这样。总之,这里很难对着一个问题找到确定的刨根问底的路径。
最近研一开学了,我做的是 AIGC 方向。其实我已经接触这个方向将近一年了,但是这种思维方式的转变,以及奖励信号的转变,仍然让我最近感觉很迷茫和焦虑(我在一年前选导师和方向之前不太能预见这些)。也许多尝试和经历一些不同的领域和训练,对我是有帮助的?又或许 AI 兴起,我其实没有别的选择只能接受这些转变?
这周跟导师交流后确定了一个目前的课题。导师给的建议是,既然我们没有时间完全学懂原理(也不可能完全学懂),也没有办法预知要学习哪些原理才能想出一个 idea 解决现在的问题,那么最好的方案可能是找一个课题然后立即去做,碰了壁之后再想怎么解决,能不能解决。如果实在不能解决,就换下一个课题。这样多试几个,试出正确的成功的东西的概率自然越来越高。
总得来说感觉这种思维范式的转变让我有点无所适从......希望自己能在科研的过程中磨练心性,有所收获吧。
后记
上文内容critically review
Gemini 3.8 Flash:
你敏锐地指出了计算机系统科学与现代经验主义 AI 在认知哲学上的根本断裂。这种断裂不仅是你个人的适应问题,也是过去十年整个计算机学科经历的范式转移。
对你的困惑和导师的策略做一次批判性审视(Critical Review),核心在于拆解两套范式的冲突,并评估你导师的建议是否存在隐性风险。
一、 核心认知的确证:公理演绎 vs. 经验归纳
你对系统与 AI 的差异剖析非常精准,这种思维断层在哲学和科学史上有据可循:
- 传统 CS 是“白盒的人工公理系统”(Axiomatic & Deductive): 从布尔代数、形式文法到指令集架构(ISA),它本质上是数学逻辑的工程物化。你享有因果闭环与全局可解释性。出现 Bug 时,理论上顺着调用栈、断点、状态机或时序逻辑一直往下挖,必然能找到确定性的答案。刨根问底在这里是最高效的探索策略。
- 现代深度学习是“黑盒的自然经验科学”(Empirical & Inductive): 深度学习研究的对象表面上是代码和张量,实质上是高维概率分布的统计逼近以及非凸优化动力学。它的研究范式更接近现代生物学、气象学或近代有机化学:系统由几十亿个连续参数交织而成,不可解析,只能通过控制变量、统计指标、观测涌现(Emergence)来建立经验模型。
你过去习惯了物理学式的还原论(Reductionism),而现在的生成式 AI(尤其是 Diffusion/Flow 等 AIGC 领域)逼着你接受突现论(Emergentism)和概率经验论。当你无法再用“因果推导”来建立确定性时,大脑自然会丢失过去那种掌控感与正反馈。
二、 对导师建议的批判性审视
你导师的核心建议是:“先做实验,碰壁再看,解决不了就换,靠试错频率换成功率。”
这套建议在当今唯快不破、顶会卷上天的 AI 科研环境中是极具实用主义色彩的“工业化打法”,但如果你全盘接受并视其为真理,潜藏着严重的认知陷阱:
1. 混淆了“梯度启发式探索”与“随机游走试错”
“多试几个,试出正确东西的概率越来越高”这个命题成立的前提是每次失败都能修正先验概率分布。如果每次遇到阻碍只是纯粹碰壁然后机械地换题目,这不叫科研,叫暴力穷举(Brute-force)。
- 好的 AI 研究者即使无法彻底推导黑盒,也会基于半经验理论(Semi-empirical intuition)做假设检验(Hypothesis testing)。
- 试错必须有清晰的假说(Hypothesis)。如果实验失败,必须明确知道是假设错了、数据分布漂移了、还是超参数未对齐,否则换下一个课题依然只是蒙眼摸象。
2. 边际效益陷阱与工具人风险
如果完全放弃对机制的理解,沦为调参、拼积木式改结构(A 模块搬到 B 架构)、加 Trick 发论文的流水线工人,短期内或许能产出几篇会议论文,但中长期会面临两个巨大打击:
- 算力与工程壁垒: 纯经验试错需要庞大的算力做后盾。工业界的大机构试错通量远高于高校实验室,拼经验枚举学生永远拼不过算力集群。
- 认知资产贬值: 建立在脆弱技巧上的结论往往会被下一个架构更新(例如从 UNet 到 DiT)瞬间冲垮。没有底层不变逻辑沉淀的工作,保质期极短。
3. 抹杀你的“系统思维”比较优势
你的公理化思维、形式逻辑严密性以及对底层可控性的追求,在纯调参做生成效果的赛道上确实容易痛苦;但在以下结合交叉领域,这反而是绝大多数纯调包/做经验研究的人不具备的杀手级优势:
- AI 系统与推理编译(AI Systems / Compilers): 如算子融合、显存优化、分布式训练调度、vLLM/TensorRT 这类系统级基建。这里依然是清晰的硬件限制、指令吞吐与状态机推导,纯逻辑思维如鱼得水。
- 模型机制解释与形式化验证(Mechanistic Interpretability & Verification): 研究注意力头在表征空间到底编码了什么几何结构、跨层特征如何流转、对抗样本的形式化界限。这是试图在不可理喻的连续黑盒上重新建立公理体系的前沿方向。
- 严谨评测与可控生成(Controllable Generation & Alignment): 将高维连续生成问题约束在离散控制条件内,这本身就是系统工程与连续建模的结合点。
三、 认知重构与行动建议
你无需割席自己的理性逻辑,也不必彻底屈从于盲目试错。一个更成熟的策略是“战略上保留还原论追求,战术上采用经验科学实验法”。
- 调整预期尺度,重塑正反馈源:
- 不要期待像调试系统内核那样,通过 GDB 把生成模型里的每一层特征映射都查个水落石出。
- 把反馈信号从“我彻底搞懂了为什么”转变为“我提出了一个合理解释该现象的假设,并通过对照实验成功验证/证伪了它”。以假说-验证循环替代公理-推导闭环。
- 在“试错”中引入逻辑纪律:
- 接受导师“立即动手”的快节奏,但拒绝“无头苍蝇式换题”。
- 做课题时,始终逼问自己:如果这个 trick 生效了,它在特征分布/注意力动态/损失曲面上可能对应着什么机制? 即使最终只能给出定性解释,也是在把黑盒向灰盒推进。
- 保留退出通道与交叉视角:
- 研一阶段,把 AIGC 的具体实验当成理解这一范式的田野调查。
- 如果一年后你依然无法从经验试错中获得智力愉悦,果断借助你扎实的系统底子,转向 AI System、高效推理优化、模型架构可解释性 等重度依赖离散逻辑与系统工程的课题。你过去积累的抽象可控能力,在那里永远是坚固的护城河。