本文由 100% 人类思考和攥写,请放心阅读
欢迎来 0xFFFF 论坛与我交流
预测篇
LLM 不会实现 AGI
大模型这种自回归架构,是一种概率模型,输出的是「最大概率」的结果。相当于在已知的范围内求解,很难得出 out-of-the-box 的结论 (或者叫 novelty),但这是在我看来 AGI 必不可少的。而且目前 LLM 能固化的学习都是在 pertained weight 上,在 context window 上的「学习」是「长度有限」且「volatile」的,有 skew 的,让它很难做到所谓「进化」。而且它的上限也比较明显,即高质量的语料。
我之前认为他是在「屎上雕花」,现在还是维持原判。
LLM 会很有用
如果把它当做工具,LLM 会很有用。
LLM 对我的用处主要是快速消化信息的能力,比如说翻译,转录,会议,文档和博客总结,快速总结网络内容获取答案,doc ocr,semantics search 等等。 还有一点是能够快速熟悉的代码库,可以更好的进行复用,漏改的情况会少很多,代码审查更方便等等。
这点我认为非常利好开源项目,在贡献开源项目时候门槛降的很低,不再需要熟悉仓库后才进行贡献,而 deepwiki 等网站也让熟悉的门槛低了很多,能够更快速的定位相关模块并进行修改。
软件质量会下降
Vibe Coding 生成代码的速度非常快,但是快 != 质量高,而且快让代码审查变得更加困难。一次甩出几千行代码,跑了可以运行,却不知道其中的坑在哪里。甚至不知道 error path 是怎么处理的,有时候 silent error 是非常难检查的。
除此之外,vibe coding 达到的很多时候是局部最优,是结果取向的。很显然局部最优不等于全局最优,如果背后的操控者没有足够的 sense 来防御住局部最优,很容易出现「整齐的屎山」。
Context Management 很重要,会更加重要
Context window 有限,怎么在有限的 window 下做更多事情?
这个可以分两点解答,工程上的 context management 和 使用上的 context management
工程上的主要是降本增效,怎么利用好 prefix cache(context cache),怎么解决 LLM lost in the middle 问题,when and how to compact / summarize when context window exceed。这方面我认为做的最好的是 Claude code。
使用上就很主观,怎么整理好 context 喂给模型,喂什么比较合适,怎么拆任务,能力不足时候可以自己先做一部分让 LLM 续写等,自己手动管理 agent 的 context ,给出 tacit knowledge 等,很多时候能问出什么,能力怎么样,也是和使用有关的。不多赘述
工作篇
LLM 不是万能的
不知道为什么,感觉有很多人认为 LLM 是万能的,什么都可以缝进去。然后「提效」。纯自嗨的感觉,这里讲一点
专门事情做的让专门软件做
这里的代表是编译器,似乎很多人把 LLM 当做编译器用来做转换,如果 TypeScript 晚个十年,是不是都不用做了直接 AI 得了。。。
还有类似数据分析,数据处理,也是丢给 AI 来做,这种以前该用 Excel,Python 做的,现在也应该用他们。最近的 Claude Skills 有回正的趋势。。。
- What Goes Around Comes Around And Around 有一个最近在读的数据库论文也是在说,我们并没有从历史上学到教训。。。
LLM 提效有限
上面会提到,experienced developers working with AI on highly familiar codebases overestimated their productivity boost from AI. 很多时候提效是错觉,measure 下来效率反而是降低的,最多是没那么累了。
LLM 能让工作量产出变多 → LLM 能提效。这是一个非常危险而错误的推论。
Anthorpic 的研究说明,增多的那部分产出其实是可做可不做的,原本不会开展的任务,比如说详细的测试,详细的文档,超级全面的错误处理/兜底等。又或者是非核心功能(dashboards 等)。我个人的感觉也是这样的
就我个人的体感而言,我目前主要用 OpenAI Codex xhigh 推理,大多数时候 Codex 都不如我做的好(单从正确性角度,很多时候一看前几行就知道思路是有问题的),有时候也不如我做的快(主要是 Codex 太慢了。。)。但很多时候会比我改的更全面,或者批量加 log 之类的,比较繁琐但简单的任务,探路任务,委托出去是没问题的。但总的来说,提效有限。
甚至很多时候,自己写一部分再让 AI 做才是最有效的。 而如果是自己熟悉的领域,更是自己做的会又快又好。
管理者最有可能因此获利
管理者推 AI 提效 - 提效有限(甚至是反效果)- 工作量变多 - 自己加班 - 但总有人能“提效”,不是每个工作都 created equal,有些工作内容天然的就更适合 AI 做 - 自己加班 - 恶性循环
而因为 AI 提效而裁员是借口,和整体经济环境的关系更大
LLM 远远不能取代人类
鉴于现在 LLM 还不能背锅(L2.999 自动驾驶),还不能当 owner。各类协调,不管是人力的协调,资源的协调,还是跨部门协作,联调等,都还得依赖人类协作。
但每个人都「可以替代」
对于 Junior 的工程师来说,一个 Senior Dev + 几十个 Agent 就是 one person army,没有「经验」连面试都过不去:),也就不需要 Junior 工程师了。
对于 Senior 的工程师,你是否值这么多钱?还是来个相对便宜的高潜 + 几十个 Agent 把你秒了,谁知道呢:)
对 CS 就业持严重的悲观态度。
软技能会更重要
向上管理,跨团队协作,内部人力协调,总结文档,暴露风险,推动整个团队/项目 按时按质上线,做业务,拉资源。这些技术外的软技能,我认为会比专业上的硬技能更加重要了
虽然可能一直都挺重要的,但是在如今硬技能更廉价的时代,可能软技能才会让一个 RD 不可或缺。
猜测:工作会向全栈发展
- How AI Is Transforming Work at Anthropic \ Anthropic
当联调,沟通协作的成本大于 RD 做全栈的的成本时候,这种转型是可以预见的。对个人来说有利有弊,不多评价。
学习篇
LLM 是最个性化的老师
这是学习者的福利,相当于一个比较通识的私教,深度和准确度另说,但是个性化这点真的是非常难得的,可以追问,可以从你个人的角度理解和解答问题,还没有脾气。
学习效率提升了,那么代价是什么呢。有一点不好的是会变得结果取向,没有经过个人的思考就直接获得的答案,没有了四处查阅资料。试错的过程,理解上我认为是没那么深的。而且很多时候学习的惊喜就是藏在这种不经意间,这个过程更让人成长。
See also:论学习(2)
人类需要刻意练习
要使用好 AI,就需要人工监督。但监督 AI 又恰恰需要那些因过度依赖 AI 而退化的编程技能。
我们需要刻意练习。
希望以后能写更多博客,让更多 LLM 用我的内容训练,从而影响更多人:)