本文原本计划撰写一篇关于2024年AI领域的年度总结,但未能如愿,因此决定将其拆分为系列文章。首先,我们来探讨为何尽管大模型落地的呼声高涨,但实际上只有AI编程实现了广泛应用。
AI编程无疑是当前大模型落地最为成功的领域。从Github的Copilot到Cursor,再到全球首个AI程序员Devin,众多人士认为AI编程找到了产品市场契合(PMF)。但为何是编程?
有人认为“因为代码比自然语言更容易生成”。这真的如此吗?还有人说“其他领域的模型能力还不够”。但为何编程领域就足够?这些解释似乎都过于表面。今天,我们将从多个角度解析为何AI编程能成功落地,并展望其未来发展。
代码与自然语言:哪个更难生成?
“代码的关键词少,规则固定,所以更容易生成。”这是解释AI编程为何好用的常见说法。然而,这忽略了代码生成对精确性的高要求。大模型在生成代码时,即使面对简单的JSON格式,也常出现括号不匹配、层级关系错误等问题。相比之下,自然语言生成的容错性更高。
核心:可信验证
代码生成难度更高,为何应用得最好?真正原因在于编程具有一种可信验证机制。所谓可信验证,即快速、客观地判断AI输出结果的可用性。这种机制包括客观性、即时性和确定性。
-
应用端的应用:快速而准确的验证
编译器作为第三方、非AI的验证机制,确保了代码的客观性和即时性。这种严格的验证机制成就了AI编程的应用。在AI尝试落地的所有领域中,编程领域拥有如此客观、即时、确定的验证标准。
-
模型端的应用:进击的合成数据
大模型在代码领域的进步迅速,这得益于可信验证机制对合成数据质量的保障。即使生成的代码质量不高,但只要能通过编译和运行,就具备基本的训练价值。这种低成本的质量保证机制,确保了模型在代码领域能持续进步。
-
可信验证的双重价值
可信验证不仅解决了“用户敢不敢用”的问题,还解决了“模型怎么进步”的问题。在大模型产品toB端,可靠性一直是最大的痛点。但可信验证机制提供了一个极为有效的解决方案——它让输出结果可控、可及时验证,配合原有的代码审查集成机制,大大降低了应用风险。
AI编程的其他观察
-
当前局限性
- 代码生成质量有待提高,但可以通过客观指标如代码覆盖率、复杂度等来评估并提升。
- AI编程对语言支持度不均衡,特别是在强类型语言如Java上表现相对逊色。这主要因为训练数据的差异和语言特性的影响。
-
自动化带来的额外心智负担
尽管AI编程能显著提高生产力,但即时性不足会给用户带来额外的心智负担。例如,Devin在生成代码后反馈时间较长且调试成本剧增。这导致用户需要额外的时间来理解AI生成的代码逻辑。 -
未来发展:更高级的可信验证
随着技术发展,会出现更高级的可信验证方法,考虑更多的因素如代码覆盖率等。这些进步将使AI编程从“基本可用”进化到“高质量”。例如,现代IDE已经能够自动检测性能隐患和安全漏洞,这些自动化的质量评估机制本质上也是一种可信验证。 -
对其他领域的启示
任何想要成功应用AI的领域都需要找到自己的“可信验证”机制。即使不能做到100%准确,但至少要能给出一个基本的可用性判断。“要知道模型的下限在哪”。可信验证不仅能降低使用门槛,还能为模型训练提供可靠的数据来源。