全新开源AI代码工具诞生!超越谷歌DeepMind旗下AlphaCode

本文主要是介绍全新开源AI代码工具诞生!超越谷歌DeepMind旗下AlphaCode,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

听说,谷歌DeepMind开发出的AlphaCode,和上个月刚刚由Gemini推出的AlphaCode 2两位“老大哥”被超越了

没错,全新开源人工智能代码生成工具AlphaCodium,诞生了!

其开发不得不说受到了两位老大哥的启发,但令人惊喜的是,AlphaCodium现在已经“青出于蓝胜于蓝”,甚至在本周致使X(Twitter)处于混乱和激动的情绪当中。

AlphaCodium是前所未有的最好的代码生成方法,正如上文所说,它已经凌驾于AlphaCode和新AlphaCode2之上,且需要调整的地方少之又少。说不定它的诞生离让AI比人类能够生成更好的代码这一愿望又近了一步。

OpenAI的Andrej Karpathy曾在特斯拉担任人工智能总监,他强调了AlphaCodium在改善代码生成方面用到的 “流程引擎(一种迭代式代码编码法)”的方法。

听起来有点复杂,意思就是“从朴素提示转变而来”,即:答案范式转向流程范式,在这种范式中,答案是迭代构建的

为了提高LLM在特定代码问题上的性能,AlphaCode的“流程引擎”重新引入了GAN架构(由Ian Goodfellow于2014年开发)的元素,包括一个生成代码的模型以及一个通过测试、反射和规格匹配提供代码完整性的对抗模型。这一操作挣脱了只使用思维链提示工程的局限性。

下面我们来大概看看流程图是如何执行的。

从输入开始,接下来再是一系列预处理步骤。AlphaCodium在这些步骤中思考问题并最终得出第一个代码解决方案。下一步,它会生成一些额外的测试来帮助完善解决方案,并最终得出实际可行的最终版本。

CodiumAI开发AlphaCodium的故事

总部位于特拉维夫的初创公司CodiumAI开发了AlphaCodium,并在CodeContests数据集上进行了测试,该数据集包含约10000个竞争性编程问题。

据该公司网站介绍,CodiumAI的使命是“让开发人员能够更快地构建零错误程序”。它在CodeContests基准测试中的表现也证明,其性能将GPT-4的准确率从19%提高到44%。根据CodiumAI的说法,这一结果不仅仅是数字上的提高,更多是LLMs在代码生成方面能力的飞跃,为该领域树立了新的标杆。

CodiumAI成立于2022年,于2023年3月筹集了1060万美元。CodiumAI分享了AlphaCodium GitHub知识库和一篇附带论文《Code Generation with AlphaCodium: From Prompt Engineering to Flow Engineering》。

CodiumAI联合创始人兼首席执行官Itamar Friedman在接受VentureBeat采访时表示,AlphaCodium迄今为止引起的关注是出乎他意料的,但他补充说,这同样是一个突破,可以帮助整个开发者社区——他强调AlphaCodium不仅仅是一个模型,而是一个系统和算法,可以实现代码生成模型和“CRITIC”模型之间的交流。

这才是最核心的创新——重要的是要把它看作一种流动和迭代,这就是为什么我们称之为“‘flow engineering”。这种流程使人工智能不仅可以生成样板代码,还可以生成有效且准确的代码。

OpenAI VS 谷歌DeepMind,最大的人工智能编码竞争

Friedman指出,他认为开发了Codex的OpenAI和开发了AlphaCode、AlphaCode 2的谷歌DeepMind是CodiumAI在编码竞争中的强大对手,但话又说回来,最大的竞争对手还是代码完整性技术本身。

Friedman认为DeepMind带给他们很大的启发,在他与OpenAI首席执行官Sam Altman的谈话中,也提了代码完整性的重要性。

Friedman和Sam有非常高的一致性,他们都认为代码完整性不仅对下一代代码构建超级重要,而且对人工智能一致性也超级重要。AlphaCodium实际上是为了提供“下一代”代码的完整性。这或许会体现在,达到预想规范、获取文化活动类文献、达成个人信仰和其他准则。

Friedman表示,谷歌DeepMind在其AlphaGo解决方案中包括了流程引擎的一些方面,但在AlphaCode中没有。他认为可能是因为这种想法不属于“只是单纯地需要一个更好的LLM”这一所谓主流叙事的一部分。

Friedman认为,人工智能不生成工作代码的原因不是因为需要更好的LLM,而是因为我们需要流量。

最后,还是希望能够看到在不断的更新换代中,AlphaCodium能带给我们更多的惊喜。

参考资料

 [1]https://venturebeat.com/ai/new-open-source-ai-coding-tool-surpasses-its-inspiration-google-deepminds-alphacode

这篇关于全新开源AI代码工具诞生!超越谷歌DeepMind旗下AlphaCode的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/662245

相关文章

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软

Java List排序实例代码详解

《JavaList排序实例代码详解》:本文主要介绍JavaList排序的相关资料,Java排序方法包括自然排序、自定义排序、Lambda简化及多条件排序,实现灵活且代码简洁,文中通过代码介绍的... 目录一、自然排序二、自定义排序规则三、使用 Lambda 表达式简化 Comparator四、多条件排序五、

Java 压缩包解压实现代码

《Java压缩包解压实现代码》Java标准库(JavaSE)提供了对ZIP格式的原生支持,通过java.util.zip包中的类来实现压缩和解压功能,本文将重点介绍如何使用Java来解压ZIP或RA... 目录一、解压压缩包1.zip解压代码实现:2.rar解压代码实现:3.调用解压方法:二、注意事项三、总

Linux实现简易版Shell的代码详解

《Linux实现简易版Shell的代码详解》本篇文章,我们将一起踏上一段有趣的旅程,仿照CentOS–Bash的工作流程,实现一个功能虽然简单,但足以让你深刻理解Shell工作原理的迷你Sh... 目录一、程序流程分析二、代码实现1. 打印命令行提示符2. 获取用户输入的命令行3. 命令行解析4. 执行命令

利用Python实现Excel文件智能合并工具

《利用Python实现Excel文件智能合并工具》有时候,我们需要将多个Excel文件按照特定顺序合并成一个文件,这样可以更方便地进行后续的数据处理和分析,下面我们看看如何使用Python实现Exce... 目录运行结果为什么需要这个工具技术实现工具的核心功能代码解析使用示例工具优化与扩展有时候,我们需要将

SQL Server身份验证模式步骤和示例代码

《SQLServer身份验证模式步骤和示例代码》SQLServer是一个广泛使用的关系数据库管理系统,通常使用两种身份验证模式:Windows身份验证和SQLServer身份验证,本文将详细介绍身份... 目录身份验证方式的概念更改身份验证方式的步骤方法一:使用SQL Server Management S

Python+PyQt5实现文件夹结构映射工具

《Python+PyQt5实现文件夹结构映射工具》在日常工作中,我们经常需要对文件夹结构进行复制和备份,本文将带来一款基于PyQt5开发的文件夹结构映射工具,感兴趣的小伙伴可以跟随小编一起学习一下... 目录概述功能亮点展示效果软件使用步骤代码解析1. 主窗口设计(FolderCopyApp)2. 拖拽路径

Spring AI 实现 STDIO和SSE MCP Server的过程详解

《SpringAI实现STDIO和SSEMCPServer的过程详解》STDIO方式是基于进程间通信,MCPClient和MCPServer运行在同一主机,主要用于本地集成、命令行工具等场景... 目录Spring AI 实现 STDIO和SSE MCP Server1.新建Spring Boot项目2.a