一年前,我就开始用 AI 编程了,从 github copilot 到 codeium 到 cursor, AI 工具的编程能力确实在一步一步提高。

我在用 AI 工具编程的时候,从一直带着焦虑的情绪,同时问自己:AI 编程到底能做到哪一步?它最终会取代我吗?

而经过了一年的实践后,我想我可以部分回答这个问题了。

AI 的优势和弱项?

AI 已体现出很强的理解力,这来自于它的注意力机制,即通过计算文本内容之间的相互关联程度,来模拟人类对语句的理解。

所以,可以说 AI 在许多能力上的确超越了人类,我从三个方向来总结:

  • 信息的收集效率极高,就以 metaso 举例,比传统的搜索引擎方式效率高非常多。
  • 对信息的整理能力极强,得益于注意力机制,AI 能理解语言,并能通顺回答我的问题。
  • 表达能力极强,体现在超级快速和相对准确。AI 输出通顺文本的能力,比打字或说话至少快 10 倍以上。

受益于海量的数据和算法的升级,AI 已经能完成很多工作。特别是在搜索整理信息上已经展现出巨大的优势,比起人工动脑,的确能极大地提升效率。

然而 AI 还有一些弱点,主要是:

  • 幻觉:即在信息不明确的情况下,AI 会自以为是地输出未经验证的答案,这些答案可能是错误的,或是从其他地方照搬过来的看似合理的结论。不过,当训练数据的数量足够多,质量足够好,或者用思维链,幻觉会减少。
  • 对需求的理解:AI 似乎还不能完全理解业务需求背后的含义。需要我在提示词中提供尽量多的背景信息,它才能输出合理的结果。而且这个问题和幻觉加在一起,有时候会给出破坏性的结果。有时候 Cursor 就会生成一些看似极为合理,然而和预期功能差很远的代码。若不经检查直接合并到项目里,会引入细微但是难以发现的 BUG。
  • 做决策:AI 似乎还不能全盘考虑,然后作出合理的技术决策,而是随机做一个“看似可用的”决策,例如:使用哪个库?使用哪套技术栈?如果没有人工介入,它可能会用一些冷门的,缺乏维护的库,导致项目出现问题。

使用 cursor 生成代码,不管怎么说,还是能帮我挺多

以上的弱点中,有些是可以被缩放定律减轻的,例如幻觉。然而另一些,就像决策,目前看来还只有人能处理,至少 AI 的输出必须经过人的验证才行。

就从我自己的经历来看,我开始以为,技术的评估和需求的制定工作在总体工作中的占比并不大,然而,使用 AI 之后我才发现,最重要的就是对技术和需求的评估。在没有 AI 辅助的编码中,这些工作大概占 25%,另外的 75% 是”编码的 dumb labor 执行“(搜索,拷贝,借鉴,执行)。而在 AI 辅助编码中,我可以节省执行中的绝大一部分时间用来思考算法,选用的构架,需求合理度,还有沟通和协调。而这一部分我发现是非常关键的。

人究竟还强在哪里?

从以上的优势和弱项出发,我认为 AI 至少从目前来看,它是一个十分合格的“信息搜集、理解、整理工具”,速度快,准确率高。

毕竟 AI 作为计算机系统的一部分,归根结底其实还是信息处理工具,是人类信息技术发展的一个里程碑式的节点。在使用机器学习算法之后,计算机在信息处理任务上,获得了“理解力”,展现出更多的智能。

打个比方,工业革命时期人类发明了汽车,汽车的速度可以随随便便达到 120 km/h 以上,而人类的长途奔跑速度也就差不多 15km/h。可以说,汽车极大拓展了人类的活动范围,加强了人在物理上的行动力。

而这一次 AI 带来的智能革命,则极大的增强了人类对信息的处理能力和理解力。效率的提升和汽车一样。

不过,汽车再厉害,它并不能帮人解决“要去哪”、“怎么去”和“为什么要去”的问题。以上这些决策,还必须由人类自己做出来。我想 AI 也是一样的。

人,要比车凶。

——《烈火战车2》

我就像是驾驶员,给 AI 制定目标,确定技术方案的合理性,确定需求。AI 就像是一个加速器,把我的想法执行快速执行。它负责“快“,而我负责”准“,最终的效果是“狠”。

AI 的极限会在哪里?

说实话,AI 的进展如此快,我并不知道它的终局会是什么样。但我知道目前 AI 的底层是算法,而算法无法脱离数学的极限,也即为图灵机的计算极限。

而 AI 目前做的,更像是在“模拟”人的智能,随着算力的提高和数据量的增加,模拟地越来越像。但这样的模拟是否和人类智能一样,我想目前来看还不算是。

从这个角度来看,AI 今后也许会有更强的理解力,信息处理能力和执行力,然而毕竟无法完全取代人。毕竟,AI 还是需要那个“驾驶员”的。

而我们人类,成为 AI 的驾驶员则是唯一的出路。