尽管存在严重的危险,但使用生成式人工智能工具进行编程的效率优势几乎是无法抗拒的。人们需要一种全新的人在循环中的软件管理方法。
有充分的证据表明,包含生成式人工智能的软件开发工作包含了与任何人类程序员可能犯的错误完全不同的错误。然而,大多数企业修复人工智能编码错误的计划都依赖于简单地将有经验的人类程序员插入循环中。
有经验的程序员直观地知道程序员会犯什么样的错误和捷径。但是,他们需要接受培训,以便在软件创建软件时发现出现的各种错误。
AWS公司首席执行官Matt Garman的评论加速了这一对话,他预计大多数开发人员最早将在2026年不再编码。
开发工具领域的许多供应商都认为,这可以通过使用人工智能应用程序来管理人工智能编码应用程序来解决。就连金融巨头摩根士丹利也在考虑用人工智能来管理人工智能。
作为一个实际问题,唯一安全和远程可行的方法是培训编程经理了解生成式人工智能编码错误的本质。事实上,考虑到人工智能编码错误的本质是如此不同,培训新人来管理人工智能编码工作可能会更好,这些人还没有沉浸在发现人类编码错误的过程中。
部分问题在于人性。人们倾向于放大和误解差异。如果管理者看到一个实体——无论是人类还是人工智能——犯了管理者自己永远不会犯的错误,他们往往会认为这个实体在编码问题上不如管理者。
但考虑到自动驾驶汽车的情况,我们不妨考虑一下这个假设。据统计,这些车辆比人类驾驶的汽车安全。自动化系统从不疲劳,从不醉酒,从不故意鲁莽。
但自动驾驶汽车并不完美。而它们所犯的各种错误,比如全速撞上一辆停下来等车的卡车,这会让人类争辩说:“我绝不会做这么愚蠢的事情。我不相信他们。”
但是,仅仅因为自动驾驶汽车会犯奇怪的错误,并不意味着它们比人类司机更不安全。但人性无法调和这些差异。
管理编码也是同样的情况。生成式人工智能编码模型可以非常有效,但当它们偏离预定时,它们就会走得太远。
SaaS公司Query Pal的首席执行官DevNag一直在从事生成式人工智能编码工作,他觉得许多企业IT高管还没有准备好接受这项新技术的不同之处。
Nag说,“它犯了很多奇怪的错误,就像来自另一个星球的外星人。代码的行为是人类开发人员不会做的。它就像一个外星智能,不像我们那样思考,而且它的方向很奇怪。人工智能会找到一种病态的方式来与系统博弈。”
TomTaulli撰写了多本人工智能编程书籍,包括今年的《人工智能辅助编程:更好的规划、编码、测试和部署》。
Taulli说:“例如,你可以让这些llm(大型语言模型)创建代码,它们有时会组成一个框架,或者一个想象的库或模块,来做你想让它做的事情。”他解释说,LLM实际上并没有创建一个新的框架,而是假装这样做。
人类程序员甚至不会考虑这样做,Taulli指出,“除非人类程序员疯了,否则他们不会凭空编造一个想象的库或模块。”
当这种情况发生时,如果有人注意的话,很容易被发现。“如果我尝试安装它,你会发现那里什么也没有。如果出现幻觉,IDE和编译器就会给你一个错误。”
把应用程序的全部编码,包括对可执行程序的创造性控制,交给一个周期性产生幻觉的系统,在我看来是一种可怕的方法。
利用生成式人工智能编码效率的更好方法是将其作为帮助程序员完成更多工作的工具。正如AWS的加曼所建议的那样,将人类排除在外将无异于自杀。
如果生成式人工智能编码工具可以让它的思维漫游,并创建一些后门,这样它以后就可以在不打扰人类的情况下进行修复,这些后门也可以被攻击者使用?
企业往往在测试应用程序,尤其是自主开发的应用程序的功能方面相当有效,以确保应用程序能做它应该做的事情。当检查应用是否可以做任何不该做的事情时,应用测试往往会失败。这是一种渗透测试的心态。
但在生成式人工智能编码现实中,这种渗透测试方法必须成为默认方法。它还需要由在生成式人工智能错误的古怪世界中受过良好教育的主管来管理。
企业IT肯定在寻找一个更高效的编码未来,程序员承担更多的战略角色,他们更多地关注应用程序应该做什么以及为什么要做,而花更少的时间去费力地编码每一行。
但这种效率和这些战略收益将付出高昂的代价:支付更好的、受过不同训练的人来确保人工智能生成的代码保持正常运行。