分享好友 最新动态首页 最新动态分类 切换频道
AI 系统首次实现真正自主编程,完爆初级程序员
2024-12-26 20:14
                                   

【导读】让AI自动编程是人工智能领域长久以来的梦想之一。现在,来自彭博和英特尔实验室的两位研究人员,号称实现了首个能够自动生成完整软件程序的AI系统“AI Programmer”,这个“AI程序员”利用遗传算法和图灵完备语言,开发的程序理论上能够完成任何类型的任务。AI自动编程的时代,大幕已开。



让AI自动编程一直是计算机科学家的梦想。目前这个方面的成果还非常有限,比如让AI自动补完编程语言,或者执行简单的加法程序。今天我们要介绍的这项工作,号称是第一个能够全自动生成完整软件程序的机器学习系统“AI Programmer”。 


研究人员表示,他们用这个系统证明了长久以来的假设,那就是功能完备的程序确实能够被自动生成。具体到这项工作,AI Programmer利用机器学习中的遗传算法,模拟复杂的指令。虽然现在AI Programmer生成的程序,复杂程度与人类新手程序员编写的结果相当。但研究人员认为,AI Programmer编写的程序完全可以超越传统范畴,不受人类时间和智慧的局限。

如果你想要系统地学习人工智能,那么推荐你去看床长人工智能教程。非常棒的大神之作。教程不仅通俗易懂,而且很风趣幽默。点击这里可以查看教程。


AI编写的程序只是在测试复杂度和计算资源之间找得到最适合的点。换句话说,可能性无限。


研究人员还表示,我们需要重新思考,设计新的、面向机器的编程语言,因为当前的编程语言是面向人类的,不适用于基于ML的编程。“在考虑ML驱动程序生成的未来时,我们需要放弃和重新考虑典型程序语言创建的方法。”


研究人员写道,只有这样做,我们才能开始设想一个由AI系统驱动,以人类创造力和设计为指导的计算机软件开发的新未来。


AI Programmer的软件架构。从图中可见,由人类驱动的部分非常少,只需要在开始输入指令,最后接收适用于某项任务的函数即可,剩下部分全部由机器完成。


AI Programmer:利用遗传算法自动生成程序,理论上能够完成所有类型的任务


根据论文,研究人员选择了无类型编程语言,只包括了8种指令来驱动AI Programmer生成软件。



AI Programmer使用的编程语言是图灵完备的,如表1所示。理论上,在时间和内存不限的情况下,图灵完备编程语言能够处理任何编程任务。本质上,任何一种具有这种特质的编程语言都能够解决海量编程问题。同样,AI Programmer生成的软件能够完成所有任务。


有了这个保障,再来看AI Programmer的核心——遗传算法。


要使用遗传算法生成软件程序,必须首先创建一个基因组(genome)。基因组是一组被组合在一起作为单个单元的基因。AI Programmer的基因组编码为浮点数组,每个唯一指令的固定值范围在0和1之间,如上面表1的基因范围列所示。


创建好基因组后,AI Programmer就将其转换为相应的程序,执行,并根据程序的输出为结果程序分配适合度。生成的程序越靠近解决提供的任务,适应度就越高,越有可能继续进行下一代的进化。在每一代,AI Programmer利用随机选择以及交叉和变异来创建子程序,其中包含轻微的随机扰动,并且可能比其父母更好的基因组来解决目标任务。



图3展示了从浮点数组中构建基因组的实例。每个值范围映射到编程语言中的特定指令。最初,这些值是随机的,导致生成的程序无法正常运行。但是,其中必将有一两个能够运行并执行一些有效的指令。一个程序执行得越成功,就越有可能继续使用代码,实现更成功的后代。



为了创建后代,父母将其基因的一部分交给孩子,这个过程如图4所示。除了继承父母的编程指令外,每个孩子也可能会遇到突变,也就是对特定基因增加受控但随机的扰动。这导致特定基因的值发生修改,使所得到的编程指令发生变化,进而改变整个程序。




可执行程序根据其执行情况进行排名,如图5所示。其中,特定程序会被立即从基因组池中删除,成功的方案则被推进以产生新的后代。


AI Programmer使用结果:输出“Hello World”,反转字符串,加减乘,输出斐波那契数列……


AI Programmer由C#.NET设计的模块化框架组成。包括运行遗传算法的引擎,基因组编码器和解码器,用于执行模拟程序的沙箱解读器,以及将代码转换为二进制可执行文件的编译程序。虽然最初设计AI Programmer的时候使用C#,但需要注意的是,设计原则并不限于使用C#。


研究人员指出,AI Programmer的适应性测试软件框架具有延展性,并已被开发。用户可以自己设计无数的定制化软件,最终指导系统的遗传算法(GA)生成和软件程序演变。

如果目标程序旨在生成一个字符串,如”Hello World”(见上图,测试分数可能是字符串中的数字。但由于AI Programmer是在字节级生成代码,测试分数应将输出字符的增量差考虑在内。


研究人员表示i,他们能用AI Programmer生成很多软件程序。表2是所生成程序的名单。

一开始,研究人员让AI Programmer生成了一个非常简单的程序来输出“hi”。经过5700代后,测试成功。生成代码如图9所示。


经过580,900代后,生成了“hello world”,如图10所示。

经过6,057,200代后,AI Programmer成功生成了”I love all humans”,如图11所示。


AI Programmer生成反转字符串的程序。生成代码如图13所示。

AI Programmer能在92,400代之后生成加法程序;在177,900代之后生成减法程序,如图15所示。



图16所示的生成程序可以从两个初始输入值来输出斐波纳契序列。

论文:AI Programmer,使用遗传算法自动创建软件程序




摘要


在本文中,我们介绍了首个能够自动生成完整软件程序的机器学习(ML)系统,全程只需最低限度的人类参与。这个系统名叫“AI Programmer”,以遗传算法(GA)为核心,加上紧密约束的编程语言,将其ML搜索空间的开销降到最低。AI Programmer的新颖部分源于(i)独特的系统设计,包括用于效率和安全性的嵌入式手工解释器(hand-crafted interpreter,以及(ii)对遗传算法的增强,纳入了指令基因(instruction-gene)随机化绑定,以及编程语言特定的基因组构建及消除技术。我们详细介绍了AI Programmer的系统设计,详细介绍了系统的工作原理,以及使用主流CPU来演示其软件生成功能和性能的实验数据。

最新文章
福布斯:2025年人工智能(AI)的十大趋势
美国《福布斯》日前刊登题为《人人都必须为2025年的十大人工智能趋势做好准备》的文章,作者为未来学家伯纳德·马尔。文章深入剖析了2025年人工智能(AI)的十大趋势,这些趋势不仅预示着技术的不断进步,也反映了人类社会在面对科技变革时
竞价推广代运营,价格优惠,助您轻松上阵
标题:竞价推广代运营:价格优惠,助您轻松上阵亲爱的读者朋友们,您是否在为如何提高网站流量、增加销售额而苦恼?今天,我要向您介绍一种高效且实惠的推广方式——竞价推广代运营。价格优惠,助您轻松上阵,让您的企业迈向新的高度!一、
用AI画美女-快速生成超真实的AI写真教程!
如果你曾经在社交媒体上流连于那些精美绝伦的美女写真,或是梦寐以求拥有一位虚拟的女朋友,那么今天的内容一定会让你兴奋不已!我们将深入探讨几款优秀的AI绘画工具,尤其是如何通过它们生成超真实的美女写真,满足你对美的追求和创作的需
金舟windows优化大师
金舟windows优化大师是一款让用户能轻松优化各种系统安全的常用软件工具,这款软件非常安全可靠,多种数据优化清理更多垃圾,保护自己电脑安全,感兴趣的小伙伴赶紧下载试试吧。1.更轻巧:极少资源占用,不影响电脑性能;2.更简单:一键解决
究竟神马搜索推广与 UC 信息流推广存在哪些差异呢?
本文旨在阐释神马搜索与 UC 推荐新闻中的广告存在何种差异,各位仅需 5 分钟阅读便能知晓。如此也能对 UC 广告的投放宣传有所掌握。究竟何为神马搜索?众多用户并不清楚神马搜索是何物。其实,神马搜索乃是 UC 浏览器默认的搜索引擎。不仅
百度云网盘高速通道加速破解版 去广告纯净版干净云
在网上终于找到了一个可以破解高速同道的百度云软件了,这下各位朋友下载不用龟速了。如今百度网盘火了以后开始限速并且出售VIP,使得原本非常棒的网盘根本达不到现在普遍的带宽。而之前的老版本却又被强制升级。今天在52破解
超逼真美女写真生成:用AI工具轻松创建你的梦中女友!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个科技飞速发展的时代,AI技术不仅改变了我们的生活方式,也让我们在追求美好事物的过程
鸿蒙智行集中发力,仅24.98万起售
有网友留言想看,今天它来了。接下来就让我们看看它。先来看下问界M7的外观,问界M7车头显得十分时尚动感, 让人过目不忘。再配合头灯,整体看上去充满了质朴感。该车配备了LED日间行车灯、,自动开闭,自适应远近光,延时关闭等。来到车身侧
搜索热门关键字,发现更多精彩内容
在这个信息爆炸的时代,我们每天都被各种内容所包围。为了让自己脱颖而出,吸引更多的读者,我们需要学会搜索热门关键字,发现更多精彩内容。介绍如何通过搜索热门关键字,发现更多有价值的内容,并提供一些实用的建议,帮助你更好地利用这
相关文章
推荐文章
发表评论
0评