Moments

2026.08

牛来

目前我认为三个Agent和人类最后的困难:long context,持续学习,稀缺数据点。

爱上问题,而不是爱上方法。
做一个MVP。
金字塔的叙事。

https://www.normaltech.ai/p/what-will-be-left-for-us-to-work

原来是 LLM 生成文本啊,不知道的还以为是把输入剁成一堆拿大量文本统计出的最常见字符串组合的词元,高频组合各占一个词元而生僻词拆成更小的子词元,查询一张几万行的大对照表把每个词元换成几千维的数字串每一层除以各元素的均方根,下面把每串数字各与三个不同的矩阵相乘变出 QKV 三个值,在 Q 和 K 上按各自的位置乘一个旋转矩阵把位置信息融合进去,所有的位置用 Q、K 两两点积再除以根号 d_k 把数值压回正常量级,算完先把当前位置后面的未来词元全部用负无穷遮住,再用 softmax 把分数归一化按权重把 V 加权混合成新的数字串,并行跑好几个头再横向拼在一起,再乘一个 W_O 输出投影矩阵线性变换,把结果通过残差加回原来的数字串,省得十几层下来原始信息洗没梯度也传不回去。再过一遍 RMSNorm,扔进一个先把维度扩到约八除以三倍再缩回来的两层矩阵变换里,中间把输入拆两路一路过 SiLu 激活一路不过逐元素相乘,再把结果加回去。这个流程叠几十次,乘一个把几千维压成词表大小的矩阵,过一遍 softmax 变成概率分布,拿温度决定分布宽窄,再或者只保留分数前 k 个,把后面直接归零,或者搞核采样从高到低累加,超过阈值 p 就砍掉后面,只留核心。然后,按这个分布随机选择一个词元,选完把它接到输入后面接着跑下一轮,每层每个注意力头把之前所有步骤的 KV 都留在显存里。新词元算自己一行 Q 跟存好的 K 点积,全程一直循环直到选到那个 eos 的特殊词元,把每次选择的词元拼到一起组合成为最终输出文本呢。

0805 after PPoPP

8点投完稿,9点吃了炒饭,10点开会。现在4点36分,躺在床上完全睡不着。

投完这篇PPoPP,哪怕依旧没有中,也意味着我本科最后一份工作的结束。

对这份工作满意吗?从论文最后的数据结果看,还不错。我几乎用上了毕生所学,写作和实验时如同和机器在跳一支久违的双人舞。似乎没什么不满意的,可能唯一的就是做了它一年多快两年。但是久功磨一剑,终于站在了风口下。

现在什么心情呢?有解脱,迷茫,一种高三过去的感觉。18岁时我说青春是一场伟大的漂流,可是我现在似乎逐渐没有资格漂流了。我感受到压力和责任。我离成为成人还有一段时间。听着后朋克,沉浸在夜晚里。

虚无感给我很大的痛苦。或许我应该醒来学点什么,以及看书。我原本一直计划想看《悉达多》和《中国文化要义》。是时候继续看完它们了。

2026.07

Agent 时代下的工程

我在之前这篇文章里讲述了我如何与AI协作完成2000行的作业:
https://haibin-blog.vercel.app/index.php/%e6%80%8e%e4%b9%88%e7%94%a8ai%e5%86%992000%e8%a1%8c%e7%9a%84%e5%a4%a7%e4%bd%9c%e4%b8%9a/

然而时代变迁,从25年11月到26年3月,Agent的生产力已经远远超乎我的想象。

比如我前两天让AI去总结SC25的全部paper,我没有碰到一行代码,全部工作流都由AI接替完成,并且用时仅2个半小时。

https://github.com/HaibinLai/SC25-Paper-Reading

这个时代开始超过vibe coding,进入到完全AI coding了。

https://mp.weixin.qq.com/s/fjKunTpPLhWmXse9xE130A?scene=1

AI与项目复杂度

5月份我曾经让Claude Opus 4.7自己做一个CPU。在当时我以为做一个5级流水线CPU是它的极限,没想到Opus在3轮对话下就完成了RV32I 5级流水线的实现和测试,完美完成了大二的计组project。

于是我就让它在后台慢慢跑了200轮交互,并且分析了它的日志。Opus先后完成了更多级的流水线、多发射、乱序执行、分支预测、多级缓存。我按照每个turn里agent做的主要工作,将turn分为了 代码实现impl,plan design,测试validation等多个类型。

从图中可以看到,对于简单或者可以单独进行模块测试的设计,比如开始的5级流水,TAGE,cache,agent基本只要impl coding并进行test就行了。对于复杂或者影响全局的work比如OoO,agent需要更多时间做plan、debug和integration。随着系统越来越复杂,Agent 在代码实现的turn次数增加,每次真正修改的代码却越来越少,设计、调试和集成上的时间也增加了。

AI 可以提升写代码的效率,但永远不能消除软件工程的系统复杂度。在上学期的软件工程课里,很多同学都说,自己的codex和cc可以轻松完成一整个project,根本不需要人的任何管理。我好奇,课程项目里的网站,是属于“5级流水线”,还是“乱序执行”?

对于简单的toy project,AI可以一次性生成,并且会越来越强。但是对于复杂的project,软件工程里保持项目可理解、可验证和可维护,依旧是重要的话题。这部分内容最近AI也在学习,AI的项目管理也在增强,驱动自己写出更好的代码。

项目代码: https://github.com/HaibinLai/simple-CPU.git

空心的人类

当规律性的科研只剩下发论文、赶进度的“形式”,而抽空了探索欲和好奇心这些“内容”时,工作日就已经是“空心”的了——周末只是这种空心的投影。面对这种极致的割裂,解决之道不是寻找更高效的放松方式,而是让工作日本身重新回归内容。当把“形式”重新嵌入属于你的“内容”(哪怕每天只有半小时思考真正感兴趣的问题)。届时,任何休闲方式都不会焦虑,因为人的存在感不再需要在具体活动中才体验到。

大部分跟agent交互的时间,如果我学不到什么,那我应该把他们定义为debug,而不是在“学习”。如果你发现你的科研生活大部分是在debug的话,那要好好思考下了。你是否把agent用对了?你是否应该开始认真看看代码了。学习看AI的代码,别丢下这门手艺。

今天我和朋友深入讨论了做任务应该用人类intern还是Codex的问题。我认为context长度是衡量其中的关键指标。Codex的问题是context一长后,经常要提醒它哪里细节要注意。而人类是可以在越来越上手后应该会变得更熟练,因此对于长/短期任务,人类的context长度等,进行选择。