除了其Gemini生成式人工智能模型之外,谷歌今天早上发布了AlphaCode 2,这是谷歌DeepMind实验室大约一年前推出的代码生成AlphaCode的改进版本。
事实上,AlphaCode 2实际上由Gemini提供支持,或者至少是由Gemini的某个变体(Gemini Pro)在编程竞赛数据上进行了优化。谷歌表示,AlphaCode 2在至少一个基准测试上要比其前身更具能力。
根据谷歌的说法,在Codeforces平台上举办的一些编程竞赛的子集中,跨足Python、Java、C++和Go等多种语言的AlphaCode 2在平均水平上表现优于大约85%的竞争对手。这与其前身在相同子集上成功击败大约50%的竞争对手相比有了显著提升。
“我们选择了12场最近的比赛,共有超过8,000名参与者,来自第2组或更难的第1+2组。这总共涉及77个问题,” AlphaCode 2的技术白皮书中写道。“AlphaCode 2在10次尝试内解决了43%的问题,几乎是原始AlphaCode(25%)的两倍。”
AlphaCode 2能够理解涉及“复杂”数学和理论计算机科学的编程挑战。DeepMind研究科学家Rémi Leblond在一段预先录制的视频中解释说,AlphaCode 2除了其他相当复杂的技术之外,还能进行动态规划。
动态规划是通过一次又一次地将复杂问题简化为更容易解决的子问题来解决问题;Leblond表示,AlphaCode 2不仅知道何时正确地实施这种策略,还知道在何处使用它。这值得注意,因为需要动态规划的编程问题曾是原始AlphaCode的一个主要障碍。
AlphaCode 2首先通过使用生成每个问题的多个代码示例的“策略模型”来解决问题。不符合问题描述的代码示例被过滤掉,聚类算法将“语义相似的代码示例”分组,以避免冗余。最后,AlphaCode 2内的一个评分模型展现了“最佳候选”中的每个最大代码示例“簇”——这构成了AlphaCode 2对问题的答案。
现在,所有的AI模型都有缺陷——AlphaCode 2也不例外。根据白皮书的说法,AlphaCode 2需要大量的试错,以规模运行成本太高,并且严重依赖能够过滤掉明显不良代码示例。白皮书推测,迁移到更强大的Gemini版本,如Gemini Ultra,可能会缓解其中的一些问题。
至于我们是否可以期望看到AlphaCode 2在某个时候成为一个产品——AlphaCode从未发布过——在一次简报中,DeepMind的产品副总裁Eli Collins暗示了这种可能性。
“对我来说,最令人兴奋的是关于最新结果的一件事,那就是当程序员与由Gemini提供支持的AlphaCode 2合作,通过定义代码应遵循的某些属性,模型的性能会更好,”Collins说。“在未来,我们看到程序员将高度 capable的AI模型作为协作工具,协助整个软件开发过程,从思考问题到辅助实施。”