谷歌发布由Gemini驱动的AlphaCode 2
Google今天除了推出了Gemini生成式AI模型以外,还揭示了AlphaCode 2,这是Google的DeepMind实验室大约一年前推出的代码生成工具AlphaCode的升级版。
AlphaCode 2实际上是由Gemini提供动力的,或者至少是其某个变体(如Gemini Pro),在编程比赛数据的基础上进行了优化。而且,它比其前任要更强大,至少在一个基准测试中是如此,Google表示。
根据谷歌的数据,AlphaCode 2在Codeforces举办的一系列编程竞赛中表现优于平均85%的参赛者。Codeforces是一个面向编程竞赛的平台,AlphaCode 2支持Python、Java、C++和Go等多种编程语言。相比于之前的版本,在相同的竞赛子集上,AlphaCode 2能够击败大约50%的对手。
在《AlphaCode 2》的技术白皮书中,我们选择了12个最近的比赛,参与者超过8000人,他们来自2级分组或更难的'1+2'分组。总计有77个问题。” “AlphaCode 2 在10次尝试中解决了43%的问题,解决的问题数量接近原来的AlphaCode(25%)的两倍。”
《AlphaCode 2》能够理解涉及“复杂”数学和理论计算机科学的编程挑战。DeepMind研究科学家Rémi Leblond在预先录制的视频中解释说,除了其他相当复杂的技术,AlphaCode 2 还能够进行动态规划。
动态规划通过不断将复杂问题分解为较简单的子问题来简化问题;勒布朗表示,AlphaCode 2不仅知道何时适当实施这种策略,还知道在哪些地方使用它。这值得注意,因为需要动态规划的编程问题曾让原始的AlphaCode遭遇重大困难。
“在解决编程问题之前,[AlphaCode 2] 需要展示一定程度的理解、推理和代码设计能力,”Leblond说。“而且它在以前从未见过的问题上进行所有这些操作。”
AlphaCode 2通过首先利用一系列的“策略模型”解决问题,为每个问题生成多个代码示例。不符合问题描述的代码示例被过滤掉,而聚类算法将“语义相似的代码示例”分组以避免冗余。最后,AlphaCode 2内部的评分模型提供了10个最大代码示例“聚类”中的最佳候选答案,这构成了AlphaCode 2对问题的回答。
现在,所有的AI模型都有不足之处——AlphaCode 2也不例外。根据白皮书所述,AlphaCode 2需要大量的试错,运营成本过高,并且严重依赖于能够过滤掉明显的糟糕代码示例。白皮书推测,迁移到更强大的Gemini版本,例如Gemini Ultra,可能会缓解其中一些问题。
关于我们是否可以期待AlphaCode 2在某个时候达到产品化,DeepMind的产品副总裁Eli Collins在一次简报中暗示了可能性。请注意,AlphaCode从未发布过。
“对我来说,最令人兴奋的事情之一是最新结果显示,当程序员与[由Gemini驱动的AlphaCode 2]合作时,通过定义代码遵循的某些属性,模型的性能甚至可以更好,”Collins说道。“未来,我们预见程序员们能够利用高度能干的AI模型作为协作工具,帮助解决问题并辅助实施整个软件开发过程。”