在大量使用 coding agent 开发 BibGenie 的过程中,我逐渐意识到一件事:AI 确实可以让一个人在很多领域都动手做事。
之前我对 CSS 一直很痛苦。就算是 Tailwind,也学过好几次,但还是记不住。有了 Agent 之后,我发现自己不一定要把 CSS 每个细节都学会,就像当年学了 C 语言后,我发现不需要熟练掌握汇编也能实现功能。
然后我产生了一个错觉:与 LLM 打交道似乎不需要知识,只要承认自己不懂,把需要说清楚的事情直接告诉它就可以了。想让 LLM 交付一个成熟的产品、推导一个博士级别的数学证明,或者做出一个炫酷的前端页面,好像只需要开口提要求即可。既然大家面对的是同一个模型,那么熟练提示的人和刚开始使用 LLM 的人,得到的结果应该也差不多。
后来我发现自己错得很离谱。**在基于提示的创作和探索中,领域知识仍然是最重要的条件之一。**承认自己不懂,在态度上没有问题;但如果你不知道什么才是好方案,也就很难判断模型给出的结果。
一个很好的例子是陶哲轩与 ChatGPT 的这次对话。对话围绕一份声称给出雅可比猜想反例的工作展开。就算我有无限的 ChatGPT token,我也很难达到陶哲轩那样的深度,因为我没有足够的数学背景来判断问题的条件、推导和结论。
我在使用 Codex 时也有同样的体会。如果我熟悉一个代码库,就能比对代码一无所知时让大模型做得更多。因为我知道好方案大概应该长什么样,所以可以在模型偏离时及时纠偏:“不,我觉得这里可以更简单”,“之前不是已经实现过 X 了吗?这样是不是冗余了”,或者“这一块是不是过度设计了?”
领域知识的价值并不会随着模型变强而消失。相反,模型能做的事情越多,人就越需要知道什么值得做、什么答案可信、什么方案只是看起来像样。对许多任务来说,瓶颈仍然在人而不在模型。模型中或许已经有了解决问题所需的信息,但人需要用专业知识提出好问题、识别错误,并把答案提取出来。