编程就是一场游戏

35

人工智能代理在编程方面迅速取得显著进展,这已不是什么新鲜事。然而,大语言模型聊天机器人在过去一年里的进步却并不明显。这是为什么呢?

虽然我并不从事人工智能代理的研发,但普遍认为,编程能力的提升很大程度上得益于程序自带的测试反馈机制。代理可以编写代码、撰写测试用例,并验证代码是否通过这些测试。

这意味着,代理在解决每一个问题时都需要采用两种截然不同的方法:编码与测试;并且必须确保这两种方法的结果相互一致。

从两个不同角度切入问题,有助于避免聊天机器人常见的错误,例如推理失误或幻觉。当然,代理也可能完全误解任务要求:最终仍需人类来确认程序是否解决了正确的问题。

值得庆幸的是,相较于逐字逐句地核查细节,人类更容易从宏观层面进行把关。如果允许我使用一个流行词,这正是真正的协同效应。

编程还有其他一些特性使其特别适合由代理来完成:海量且高质量的开源及源码开放软件作为范例,以及一套严格、有据可依的规则——程序只有遵循这些规则,才能成功构建并运行。

巧合的是,还有一些领域同样具备测试、范例和严格规则的特征,比如国际象棋或围棋等策略类游戏。事实上,人工智能代理早在几年前就已经在这些游戏中达到了超人水平。

尽管我当时并未预料到这一点,但事后看来,它们能够将这种模式迁移到另一些具有相同本质特征的领域,也并不令人意外。

一个自然的问题是:还有哪些人类活动领域可能符合这一模式呢?

法律体系或许是一个候选者:有大量的案例可供参考,规则也相对明确且有据可查。然而,对代理而言,不利的是,虽然实际诉讼可以充当“测试”,但每一起案件的解决往往需要数月甚至数年时间,这显然不利于快速迭代与开发。

尽管医学常被视作人工智能大有可为的领域,但它并不符合上述模式。医学领域的规则大多不成文,新疗法的验证周期极为漫长,而且医学中充斥着难以预料的副作用(不妨称之为“反向协同”)。

尽管人工智能的搜索能力或许能为那些鲜少受到关注的罕见病带来突破,但从定义上讲,绝大多数人群并不患有罕见病。要实现惠及大多数人的医学突破,还需要人工智能在方法论上取得重大创新。

在此期间,我们至少可以享受编程效率的提升带来的红利。

参与讨论