与 Gemini 生成式人工智能模型一起,Google今天上午发布了 AlphaCode 2,它是Google DeepMind 实验室大约一年前推出的代码生成 AlphaCode 的改进版。AlphaCode 2 实际上是由双子座模型(Gemini)驱动的,或者至少是它的某个变种(Gemini Pro)在编程竞赛数据的基础上进行了微调。Google表示,至少在一项基准测试中,AlphaCode 2 的性能远远超过了它的前身。
据Google公司称,在Codeforces(一个编程竞赛平台)主办的编程竞赛子集中,AlphaCode 2(使用Python、Java、C++和Go等语言编码)的平均表现优于约85%的竞争对手。相比之下,前代AlphaCode在同一子集上的平均成绩仅为50%。
"我们选取了最近举行的 12 场有 8000 多人参加的竞赛,这些竞赛要么来自第二组,要么来自难度更大的'1+2'组。这使得我们总共解决了 77 个问题,"AlphaCode 2 的技术白皮书中写道。"AlphaCode 2 能在 10 次尝试内解决 43% 的问题,接近原版 AlphaCode(25%)的两倍。
AlphaCode 2 可以理解涉及"复杂"数学和计算机科学理论的编程难题。DeepMind 研究科学家雷米-勒布隆德(Rémi Leblond)在一段预先录制的视频中解释说,除其他相当复杂的技术外,AlphaCode 2 还能进行动态编程。
AlphaCode 2 不仅知道何时正确实施这一策略,还知道在哪里使用它。Leblond 说,AlphaCode 2 不仅知道何时正确实施这一策略,还知道在什么情况下使用这一策略。考虑到需要动态编程的编程问题是最初的 AlphaCode 的一大绊脚石,这一点值得注意。
Leblond 说:"[AlphaCode 2]需要显示一定程度的理解、一定程度的推理和代码解决方案的设计,然后才能实际执行,解决[一个]编码问题。它能在从未见过的问题上完成所有这些工作"。
AlphaCode 2 解决问题的方法是,首先利用"策略模型"系列,为每个问题生成大量代码样本。不符合问题描述的代码样本会被过滤掉,而聚类算法会将"语义相似的代码样本"分组,以避免任何冗余。最后,AlphaCode 2 中的评分模型会从 10 个最大的代码样本"集群"中各选出一个最佳候选者,这就是 AlphaCode 2 对问题的答案。
现在,所有人工智能模型都有缺陷,AlphaCode 2 也不例外。根据白皮书,AlphaCode 2 需要大量的试验和错误,规模化运作的成本太高,而且在很大程度上依赖于能够过滤掉明显不好的代码样本。白皮书推测,迁移到功能更强的 Gemini 版本(如 Gemini Ultra)可能会缓解部分问题。
DeepMind 产品副总裁伊莱-柯林斯(Eli Collins)在一次简报中暗示了这种可能性。
柯林斯说:"最新结果中最让我兴奋的一点是,当程序员与[由Gemini提供支持的AlphaCode 2]协作时,通过定义代码所遵循的某些属性,[模型的]性能会变得更好。未来,我们将看到程序员利用高能力的人工智能模型作为协作工具,协助从推理问题到协助实施的整个软件开发过程。"