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

为什么在人工智能经济中软件需求变得更容易

随着人工智能代理之间的交互日益增多,而非与人类交互,收集软件需求的挑战将减少,因为程序更具可预测性且具有明确定义的规范。这种转变可能降低传统需求收集的重要性,从而实现更快、更可靠的开发。

来源Hacker News AI作者: matt_d

在人工智能经济中,软件需求收集的难度可能会显著降低,原因在于需求来源的变化。传统上,软件工程中最耗时的部分是从人类用户那里获取确切需求,这往往充满歧义和不确定性。然而,随着越来越多的软件系统由人工智能代理驱动,这些代理之间的交互逐渐取代了人与系统的直接交互。由于程序本身具有明确的形式化语义,它们能够清晰表达自己的功能需求,从而大大简化了需求收集过程。

文章首先介绍了形式化验证的概念,即通过数学证明系统满足形式化要求,这被认为是防止AI系统在递归自我改进过程中失控的最佳保护措施之一。但自然障碍在于需要足够详细地写出我们想要执行的规则,这些描述被称为规范。随着AI在经济中的作用不断增强,一方面需要仔细执行规则的计算机系统数量增加,但另一方面,编写正确规则的工作却变得更容易。作者先前曾论证,随着AI的普及,设计包含仅AI之间交互的“气泡”的经济是有意义的,并且用户界面的规约也会变得更容易。现在,作者进一步论证,系统需求的更广泛挑战也从根本上变得更容易,基本优势在于需求中需要形式化的意图来源。从脆弱的人类那里获取需求可能非常困难,但当新需求的来源主要是其他已在运行的程序时,情况就不同了。

作者回顾了软件工程的难点。即使在AI编码助手改变软件工程师时间分配之前,该领域的一个公认事实是最耗时的活动是理解用户的真实需求,即需求收集。随着日常编码的大量自动化,人们可能认为需求收集的核心地位只会增加。但作者认为,进一步依赖自动化后,需求收集的重要性反而会下降。文章回顾了20世纪60年代分析师与程序员的分工,以及瀑布模型和敏捷方法的演进。瀑布模型强调在编写代码前反复迭代需求文档,而敏捷方法则更快地构建可运行程序以获取用户反馈,但即使软件专家也难以枚举复杂程序的所有相关场景,这些场景往往依赖于用户的专业知识,而用户又缺乏抽象和系统性的思考能力。亨利·福特的名言(可能是杜撰的)完美说明了这一挑战:如果问顾客想要什么,他们会说更快的马,而不是汽车。这揭示了两个问题:用户难以详细解释模糊的目的,以及不了解开发可行性。

好消息是,当请求功能的用户通常不是人类时,这些挑战会大大减少。更准确地说,在代理生态系统的少数部分,旧的需求收集挑战依然存在,甚至可能更具挑战性,但在其余部分则可以很大程度上避免。作者解释了为什么比了解人的意图更容易了解程序的“意图”。人类的进化没有让思维易于被他人建模,而程序则必须对运行它的计算机是可解释的,即需要无歧义的语义。此外,人类编写和维护程序也需要理解代码。这些选择压力使得程序易于理解。现在,这些优势在程序中体现为它们能够请求编写新代码以更好地完成工作。

这种优势的最佳体现是经济中只包含AI与AI交互的领域,而非与人类交互。这样的环境可以最大化自动推理的可读性。一个自动化工作生态系统可以朝着预先设定的规范递归自我改进,或者一组竞争和合作的代理可以共同进化出它们自己的规范。无论哪种方式,我们都能轻松获得机器可读的基本目标描述,并定期将其转化为新程序的需求。作者用示意图说明:左侧是当今世界,大量AI代理需要直接与人类协调,迫使从难以表达需求的利益相关者那里收集需求;右侧是未来世界,大部分经济由AI代理处理,它们自然形成集群,只有少数守门人需要与人类交互。集群内部是秩序和清晰需求的场所,绝大多数程序处于内部并受益于清晰的需求来源。

关键在于,我们不是事后才去描述代理生态系统的行为和期望,而是有机会从早期就将形式化规范和验证融入其设计之中。我们的挑战变成编写覆盖整个AI生态系统的规范,迫使其中的参与者以符合我们目标和价值观的方式进化。这一需求收集挑战至少和以往一样困难,但作者指出,在这样的AI气泡内部,许多其他工程项目变得更容易框定,并且应该成为持续软件工程工作的主体。

这种现象已经以更温和的形式存在,例如实现新Web浏览器的团队受现有技术标准的约束,互联网标准中已经包含了大量需求。随着更多经济由AI代理处理,更多的上下文将类似地被标准化或至少体现在可分析的现有代码中。值得注意的是,当今最流行的AI软件——深度学习,有一个明显劣势:个体程序(包括学习到的元素如模型权重)几乎没有明显的结构,难以理解。作者认为,这应该促使我们更多地使用其他旨在可理解性和能够用数学论证精确界定行为的方法。我们可能有一个短暂的窗口来决定是生活在一个不可解释的学习系统世界,还是推动那些被证明满足明确要求的系统。第二条道路不仅对防止恶意AI至关重要,而且对AI自我改进的效率也至关重要。

最后,作者具体说明了软件工程的早期阶段如何变得更便宜。假设用户程序遵循良好实践并拥有完善的需求文档,那么请求新程序的程序可以简单地复制其需求中的相关内容。而人类用户则不会以机器可读的形式全面发布其人生目标。更广泛地看,技术创新经济可以被视为计算机科学意义上的分布式系统,不同代理在一组重叠的优化问题中合作与竞争。软件参与者更可能拥有严格的形式化规范。这种经济系统在某种程度上是一个不断自我优化的程序。例如,一个计算特定数学函数的程序可以注意到改进自身结构的途径,以更高效地计算该函数。未来的软件工程项目将更多类似于这种自我优化,而不是我们所习惯的模式。一个拥有目标但对如何实现只有模糊概念的程序将请求编写新的代码来帮助其更好地完成任务。

总之,虽然为整个AI生态系统制定顶层规范仍然困难,但内部的软件工程任务将变得更容易,因为需求来源明确且易于自动化处理。这一转变有望显著降低软件开发成本并提高可靠性。