AI News HubLIVE
站内改写2 分钟阅读

AI软件开发——数据说明了什么?

作者基于多项近期研究、行业数据和实验,指出LLM用于软件开发时存在根本局限:有效上下文远低于宣传、无法处理长程依赖与否定、仓库级文档反而有害;大型行业研究显示产出增加但结果恶化。AI编码是放大器而非解决方案,近期可靠性提升只能依靠上下文工程与质量门。

来源Hacker News AI作者: jesterpm

作者正在整理一批关于大语言模型(LLM)在软件开发中应用的近期资料,来源包括同行评审研究、未经同行评审的行业研究、统计物理学论文,以及一篇关于上下文大小影响的博客文章。这些结论大多与作者的个人实验和团队观察相互印证。随着新数据不断出现,作者对这一领域的认识也日益清晰。

对于时间有限的决策者,作者给出一个核心结论:依靠LLM实现真正自主、可靠的长周期代理式软件开发,可能性极低,基本上属于科幻范畴。LLM的最大有效上下文窗口比厂商宣传的数值要小若干个数量级;超出该范围,模型输出就会变得不可靠。厂商常说的“压缩”机制,实际上是让模型对部分上下文进行摘要,而摘要本身是有损且不可靠的过程。LLM无法区分上下文中的新旧信息,也无法区分训练时学到的“主导先验”与用户提供的信息;对模型而言一切都只是令牌、权重和概率。更大的上下文还会引发“注意力稀释”,使上下文中的概率难以与模型内概率竞争,进一步加剧错误。

仓库级别的Markdown文件往往会让模型表现更差,可能是因为在具体任务中它们带来的是噪音而非信号;模型生成的Markdown文件问题尤为严重。这可能意味着,把团队编码标准和架构摘要放入每个任务反而适得其反。LLM还在处理否定语义时存在困难,告诉模型“不要做某件事”有时等于告诉它去做那件事,这也解释了为什么某些防护措施的效果如同抛硬币。相比之下,给模型提供示例(demonstration)比纯文字描述更有效——它们是模式匹配器,应该多给“像这样”的样例,少用“这样做”,更不要用“别这样做”。

大型行业研究呈现出清晰趋势:代码产量上升,提交数和差异变大,但结果并未改善,甚至平均而言团队交付更慢、软件质量更差。这再次证明软件开发不是流水线生产。少数团队在结果上获得温和提升,而这些团队原本就具备较强的开发能力。AI编程更像是开发强项与弱项的放大器,而不是修复手段。心理学和认知研究还发现,对AI输出的信心与超自然信念之间存在显著相关;多项研究显示,越多依赖LLM,学习、认知和批判性思维受到的负面影响越大;开发者在大量使用AI后感到动力下降和倦怠,也并非空穴来风。

从深度学习的基础来看,包括LLM在内的深度神经网络在学习长程依赖模式上存在困难,无论模型规模多大。它们始终像是在雾中行车,局部、短程概率会挤掉长程概率,因此在处理“大局”时表现得模糊。要让LLM的可靠性提高一个数量级——比如从30%的错误率降到3%——所需能源和算力大约是当前前沿模型的10^20倍。因此,短期内不要指望模型显著更可靠。未来的可靠性提升主要来自两方面:更好的上下文工程(决定在输入中包含什么)以及更有效的质量门(决定如何处理输出)。我们看到AI公司目前也正在这些方向发力。模型会变得更强,但不会显著更可靠。

面对“模型基准在不断提升”的质疑,作者指出有研究认为应更加怀疑基准测试的有效性:许多流行基准测量的是易于用算法衡量的东西,与杂乱、不可预测的真实问题不同;而且越来越明显的是,模型可能在针对公开测试集“训练”,即如果基准数据出现在训练语料中,模型的表现自然会虚高。

最后,作者提到他将在10月6日18:45(英国夏令时)举办一场活动,讨论为什么敏捷软件开发的技术实践与AI辅助和代理式软件工程高度契合,并提供了一种无炒作、基于证据的视角。感兴趣的读者可通过文末链接报名。