揭示AI编程成功背后的秘密!

共计 4956 个字符,预计需要花费 13 分钟才能阅读完成。

本文由微信公众号“阿茶的AI之路”发布,作者:起名贼费劲的阿茶,配图

最初我打算撰写一篇关于2024年AI领域的总结,但计划未能实现。现在我决定将其内容拆分为多篇文章。首先,我们从一个重要话题入手,探讨为何大模型的应用宣传热烈,但实际上落地的场景却主要集中在AI编程上。

AI编程无疑是目前大模型成功应用的一个显著领域。从Github的Copilot到Cursor,再到首位AI程序员Devin,许多人认为:AI编程找到了产品市场契合(PMF)。

那么,为什么偏偏是编程领域呢?

有观点认为“这是因为存在真实需求”。难道在其他领域的需求就不真实吗?

还有人指出“代码生成相较于自然语言更为简单”。这个说法真的成立吗?

另一些人则认为“其他领域的模型能力尚未成熟”。那么为什么编程领域的模型能力足够呢?

这些解释都显得过于表面,今天我将从我的视角探讨AI编程成功落地的原因及其未来发展。

先从一个问题入手。

一、代码与自然语言,究竟哪一个更难生成

“代码的关键词较少,规则又固定,因此更易生成。”这是常见的解释AI编程为何有效的观点。

这个说法似乎有道理,代码的关键词不多,模型只需在有限的词汇中进行选择,相较于自然语言,采样空间小得多。

但何时“词汇少=容易”了呢?如果真是如此,那么数学问题的描述虽简洁,符号也有限,难道这意味着大模型在数学问题上应该表现得更出色吗?

显然并非如此。

当前大模型连JSON格式都难以处理。JSON是编程领域常用的数据交换格式,而在面对复杂的JSON时,大模型常常出现括号不匹配和层级关系错误等问题。

这一“代码更易生成”的观点,实际上混淆了“生成”和“应用”两个阶段。

在自然语言生成中,我们对大模型的容忍度较高。它可以出现语法错误、前后矛盾或逻辑混乱,但我们仍能从中提取有用的信息,容错性非常高。

然而代码生成则是另一个层面的挑战。就像解决数学题,代码能运行就是能运行,无法运行则会报错。没有“基本正确”或“大致可用”的灰色地带。每一个分号、每一个缩进以及每个变量名都必须准确无误。因此,代码生成实际上更具挑战性,因为它对可用性的要求远高于文本。

二、核心:可信验证

尽管代码生成难度更大,但为何它的应用效果最佳?那些难度较低的领域反而效果不佳的原因何在?真正的关键在于编程具备一种可信验证机制。

所谓可信验证,简单来说,就是一种能够迅速且客观地判断AI输出结果可用性的验证模式。

1. 客观性:验证结果不依赖于人或AI模型的主观判断;

2. 即时性:能够立刻获得验证结果;

3. 确定性:答案非黑即白,对就是对,错就是错。

接下来,我将论述可信验证如何促进AI编程的成功应用。

1. 应用端的信任:快速而准确的验证

编程领域之所以具备完美的可信验证,令人想起一句话:

情感会背叛你,朋友可能会欺骗你,但数学不会,因为数学的结果是绝对的。

答案隐藏在代码的本质特性中:程序设计与数学类似,属于非黑即白的领域——能运行即能运行,无法运行即无法运行。这样的确定性源于一个关键角色:编译器。它负责将代码转化为可执行文件,整个过程严格遵循语法规定。

编译器将代码转化为可执行程序

在这一过程中,编译器扮演着独特的角色:它是一个客观的、非AI的、完全可靠的验证机制。它不会受到情绪的影响,不会因人类的干扰而偏离,不存在主观偏见,严格遵循语法规则。符合规则即可编译,不符合则报错。

这种严谨的验证机制造就了AI编程的广泛应用。在AI落地的众多领域中,几乎没有哪个领域能如编程般具备如此客观、即时、确切的验证标准。这种验证模式对使用者的要求极低——不需要掌握编程原理或精通算法,只需能够运行代码,便能判断大模型输出结果的可用性。

为何强调非AI的验证机制?

因为大型模型是基于概率的,因此需要依赖可靠的传统规则算法。当然,使用更高级的模型来验证低级模型的输出也是可行的,但这依然缺乏可靠性。下一部分将对此进行深入探讨。

注1:为确保行文流畅,我略去了一些细节,比如将编译和解释同时称作“编译”……但这并非重点。

注2:程序员直接评估代码生成质量也算是一种可信验证,但这需要依赖于用户的知识水平。此处只讨论基本的可信验证机制。

2. 模型端的应用:不断进步的合成数据

仅有可靠的验证机制显然不够,模型本身的性能也至关重要。(你不可能接受一个成功率仅为5%的大模型吧)有趣的是,大模型在代码领域的进展似乎特别迅速,并且持续进步。

这仅仅是巧合吗?

业界常常强调自己新模型在数学和代码方面的突破,却很少提及“AI的对话更接近人类”。这究竟是为何?

答案可能出乎意料:因为训练数据的枯竭,目前的大模型只能在代码领域取得进展。

这一问题已被无数人提及,模型的自然训练数据正面临枯竭。在大模型的训练过程中,数据与模型架构同样重要。数据的枯竭意味着模型能力提升的速度将减缓。目前大模型厂商通常采用的应对策略有:

(1)人工生成新的数据,包括在网上爬取或手动编写新的数据;

(2)利用更高级或旧的模型生成合成数据以训练新模型。

人工生成新数据的成本非常高,因此大多数情况下会选择合成数据进行训练。然而,使用模型生成的合成数据可能会导致模型失效。已有大量研究表明,质量不佳的合成数据与人类语言的偏差可能导致后续训练模型的输出越来越偏离人类表达。

那么模型训练方又如何管理合成数据的生成质量呢?目前并没有客观的评价标准。主流方案是利用更强大的模型进行筛选,以及依赖人工主观判断。这不仅成本高昂,而且难以规模化,且可靠性不足。

可信验证机制在AI编程中的双重效果与未来展望

可信验证机制有效地设定了代码合成数据的基础标准,它显著减小了合成数据与人类数据之间的差异。

在代码验证的过程中,标准是简单明了的(可执行/不可执行)。能够运行并输出正确结果的程序被视为优质程序,而出现错误的则被认定为劣质程序。这种客观的评判标准使得我们能够以大规模的方式生成和验证合成数据,其效果如同成千上万的初级程序员在不知疲倦地撰写代码,筛选出可用的程序。

这也是代码合成可靠性的根本所在:即便生成的代码质量不尽如人意,只要能够通过编译和运行,就具备了基本的训练价值。这种低成本的质量保障机制,确保了模型在代码领域的不断进步。实际上,大型模型生成的代码质量甚至优于许多在GitHub上找到的代码。

3. 可信验证的双重价值

通过以上分析,我们可以清晰地看到,可信验证在人工智能编程领域发挥了双重功能:

  • 在应用层面,它增强了用户对AI编程的信任。用户无需具备专业知识或进行复杂判断,只需判断代码是否能运行即可。这种简单直接的验证方式显著降低了使用门槛,推动了AI编程的普及,使得许多“零基础用户”也能够尝试。

零基础用户是指那些不会编程但希望开发应用的人,这一概念同样适用于其他领域。这类用户对可信验证的期望极高,因为他们无法处理可能出现的异常情况。

  • 在模型层面,它解决了AI发展的数据短缺问题。当其他领域还在为训练数据而苦恼时,编程领域已经找到了一条可持续的数据供给途径。可信验证保障了合成数据的基本质量,使得模型能力得以不断提升。

可信验证不仅解决了“用户是否敢用”的问题,还促成了“模型如何进步”的问题。在大模型的toB产品中,可靠性一直是一个主要难点。然而,可信验证机制提供了一个极为有效的解决方案——它使得输出结果变得可控且能够及时验证,结合原有的代码审查机制,显著降低了使用风险。

在可信验证的支持下,AI编程形成了一个良性循环,开辟了一条可持续发展的道路。

三、关于AI编程的其他观察

1. AI编程当前的局限性

(1)代码生成的质量依然亟待提升

尽管有可信验证机制的存在,但目前AI生成的代码质量仍然存在较大差异。幸运的是,我们能够通过代码覆盖率和复杂度等客观指标来评估代码质量(没错,这也是更高级的可信验证),而这些指标又可以反过来指导训练数据的筛选,从而形成质量提升的闭环。

(2)AI编程对不同编程语言的支持程度不一

AI在Python上表现得尤为出色,而在Java等语言上则相对逊色。这主要归因于两个原因。

首先是训练数据的差异。Python的开源社区十分活跃,这为大型模型提供了庞大的高质量训练数据。

其次是语言特性所致。Python的语法相对灵活,容错性较高,这使得AI更容易生成可用的代码。相较之下,Java等强类型语言的语法要求更为严格,对代码生成的规范性要求也更高。

2. 自动化可能带来的额外心智负担

可信验证的及时性显得尤为重要,否则可能会给用户带来意想不到的心理负担。这一点在Devin的使用中尤为明显。

Devin被称为全球首个AI程序员,号称具备全栈开发、自主学习新技术、构建部署应用、自我调试等多项能力。

在首次体验Devin时,的确给人一种极为愉悦的感觉。只需将任务交给它,便无需再操心,就如同拥有了一个可以独立完成任务的实习生,使得我能够专注于其他工作,只需等待成果即可。

然而,与Cursor相比,Devin存在两个致命缺陷:

(1)反馈时间过长,这意味着如果我发出的命令有误或者它的思路错误,我需要等待很久才能得知。这严重影响了工作效率,导致沉没成本的增加。

(2)调试成本大幅增加。AI生成的代码量越庞大,调试的难度也越高。因为这些代码并非出自我的手笔,我需要额外的时间去理解它们的逻辑。此外,更为棘手的是,在调试的过程中,常常无法确知到底是生成的代码有问题,还是我的操作出错。这一点对于零基础用户来说尤为致命。

考虑到AI同样具备调试能力,我特意进行了一个实验:完全以零基础用户的身份,让Devin编写代码,再用Claude进行调试。Devin花费了20多分钟撰写代码,而Claude调试了一个小时,最终功能依然无法正常运行。

与自动驾驶不同,开车时你能够随时接管,因为车辆的当前状态是显而易见的。然而在编程中,如果AI偏离了方向,之前的努力将全部作废。那几十分钟的等待,最终只换来了毫无价值的代码,完全是一种时间的浪费。

注:Devin的使用不便的一个重要原因在于其背后的自研模型力量不足。而我采用Cursor搭配Claude时,生成的代码质量显著提升。

3. AI编程的未来发展:更先进的可信验证

目前应用层的可信验证仍显得相对初级,主要依赖于代码“能否执行”,关注的是最终的输出结果。但随着技术的进步,未来将会出现更为高级的可信验证方法,考虑更多因素,例如代码覆盖率等指标。

现代IDE已经能够自动检测性能隐患与安全漏洞。这些自动化的质量评估机制,本质上也是一种可信验证——它们同样具备客观性与即时性,只是验证的维度更加丰富。

其次,自动化测试的演变也至关重要。即便代码能够运行,仍需验证其功能的完整性。自动化测试框架能够生成测试用例、检查边界条件、验证业务逻辑,并对代码性能进行检测,提供了更高层次的可信验证。这些客观的质量指标同样可以反馈至训练环节。这些进步意味着AI编程可以从“基本可用”演变为“高质量”,像Devin这样的产品将更为易用。我依然相信Devin是AI编程的未来,因为这种释放人力的自动化才是真正的自动化。

然而,这种AI编程并不适合零基础用户,未来可能会极大提高程序员的生产力。对于零基础用户,或许Dify这样的平台会更为可靠。

4. 对其他领域的启示

通过分析AI编程的成功经验,我们可以得出一个重要的启示:任何希望成功应用AI的领域,都需要建立相应的“可信验证”机制。

并非所有领域都能像编程那样拥有编译器这一完美的验证工具。我们可以借鉴这种思路,在各自的领域内建立相对可靠的验证机制。即便这些验证机制在早期无法达到100%的准确性,至少能提供基本的可用性判断,“了解模型的下限”。可信验证不仅降低了使用门槛,还为模型训练提供了可靠的数据来源。

本文来源于微信公众号:阿茶的AI之路,作者:起名贼费劲的阿茶

本内容代表作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系 hezuo@huxiu.com

正在改变与想要改变世界的人,都在虎嗅APP

来源:今日头条
原文标题:为什么只有AI编程成功落地? – 今日头条
声明:
文章来自网络收集后经过ai改写发布,如不小心侵犯了您的权益,请联系本站删除,给您带来困扰,深表歉意!
正文完
 0
小智
版权声明:本站原创文章,由 小智 于2025-11-07发表,共计4956字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
使用智语AI写作智能工具,您将体验到ChatGPT中文版的强大功能。无论是撰写专业文章,还是创作引人入胜的故事,AI助手都能为您提供丰富的素材和创意,激发您的写作灵感。您只需输入几个关键词或主题,AI便会迅速为您生成相关内容,让您在短时间内完成写作任务。
利用AI智能写作工具,轻松生成高质量内容。无论是文章、博客还是创意写作,我们的免费 AI 助手都能帮助你提升写作效率,激发灵感。来智语AI体验 ChatGPT中文版,开启你的智能写作之旅!
利用智语AI写作工具,轻松生成高质量内容。无论是文章、博客还是创意写作,我们的免费 AI 助手都能帮助你提升写作效ai率,激发灵感。来智语AI体验ChatGPT中文版,开启你的智能ai写作之旅!