0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器编程究竟是什么?发展难点在哪里?

我快闭嘴 来源:中国电子报 作者:李佳师 2020-12-14 12:00 次阅读

11月,《时代周刊》将2020年最佳发明奖给了儿童编程机器人Matatalab;12月4日,英特尔在其研究院开放日上宣布将机器编程与集成光电、神经拟态计算、量子计算等列为影响未来10年的颠覆性技术;目前包括微软、谷歌、Facebook等在内的全球巨头,都加入了机器编程的赛道。机器编程究竟是什么?它会在未来给我们的世界带来颠覆性改变吗?它会让未来的程序员丢掉饭碗吗?它与目前流行的低代码开发是不是一回事儿?

未来程序将无处不在

如今IT业界赫赫有名的大佬很多是编程出身,包括微软创始人比尔盖茨、Facebook的创始人扎克伯格,也包括中国的诸多互联网大佬——腾讯的马化腾、百度的李彦宏、小米的雷军、360的周鸿祎、微信之父张小龙、字节跳动的张一鸣等,全都是写程序出身。这从另外一个角度佐证了编程是创富和改变世界的“神笔”这一说法。

几年前,微软的联合创始人保罗·艾伦在回忆起当年写下的那几行代码时非常感慨:“没想到那几行代码竟然带领微软公司走到了今天。”现在大部分人的电脑上都运行着微软的操作系统,微软也成了世界上市值最高的公司之一,深刻地影响了全世界。也是在不久前,腾讯公司展示了微信第一版的几行代码,就是这个程序,历经8年的成长,现在变成了影响几亿人生活、工作的重要工具。

编程对于这个世界的意义,当然不仅仅是创造了一批赫赫有名的IT大佬,创造了微软和腾讯。进入软件定义一切的时代,我们越来越相信这个世界是由软件驱动的,看看拥有代码最多的公司竟然不是软件巨头微软,而是飞机制造企业。看看从上天的飞机火箭到我们身边的各种小物件,从报税到买菜我们都离不开软件,从工厂到各个机构都离不开软件的驱动,我们就能够很好地理解为什么编程对这个世界举足轻重了。

为什么需要机器编程?

我们为什么需要机器编程?一方面,会编程的技术人员依然太少。在全球78亿人中,只有2700万人会编写代码,占比不到1%。根据code.org的数据,美国有50万个编程人员岗位空缺,欧盟目前只有10%的编程人员受过计算机科学专业训练。

另一方面,编程的门槛还是太高。要想开发出高质量的软件依然非常困难,而且随着异构计算的发展,硬件环境变得越来越复杂,编程开发难度进一步变大。为什么996程序员们早早掉发,为什么马化腾早年编程会落下腰疾,说明编程是一件非常折磨人的事情。

英特尔首席科学家Justin Gottschlich讲了他妈妈的故事。他的母亲是房地产行业的权威,对市场的理解敏锐且细致,她的决策需要基于一系列的因素进行复杂的分析。但现有的工具不支持她所想表达的意图,需要定制一种新的工具来支持其决策所需的精细度、精确度、微妙性。在没有现成工具的情况下,她分别使用不同的工具,进行数据收集、分析,经过一个月之后,得出结论。但在她得出结论的时候,整个市场环境变化了、数据变化了,所有时间都浪费掉了。事实上,这样的事情不仅发生在Justin母亲身上,在农业、野生生物、建筑、医疗、金融分析等领域,很多专家清楚地知道自己想要软件做什么,但这样的软件目前不存在,不足以表达他们的意图。

那么,试想一下,如果人人都会编程,如果机器能够听懂人的指令,能够按照人的指令编程,那么世界将完全是另外一回事。如果完全实现了机器编程,那么每个人都能自由地表达创意,无需编写任何代码就可以开发属于自己的软件,我们进入数据驱动世界的步伐就会大大加快。

就像微软亚洲研究院首席研究员楼建光在接受《中国电子报》记者采访时所言,机器编程不仅仅是希望解放程序员,将程序员从低端的重复性开发中解救出来,将更多精力用在如何将程序逻辑设计得更高效上,更重要的是机器编程能够加速AI在各个领域的落地。

“事实上机器编程是AI落地非常重要的一环。要把AI落地到每一个领域,需要将每一个领域的商业逻辑和人的决策指令自动转化为可操作的程序,由机器人来执行。将行业规律变成逻辑语言,变成可操作的组合,其实就是程序。我们需要将大量的各行各业的商业流程和规律变成机器可识别的逻辑语言,这就是机器编程希望助力人们实现的事情。”楼建光表示,如果机器编程成熟,将大大推进AI在各个领域的应用。

“机器编程将改变关于软件创建的所有既定规则,最终赋能所有人创建软件。”Justin说。从这些角度来看,机器编程应该是软件定义时代的颠覆性技术,将真正提速AI助力人类的进程。

那么机器编程会不会取代程序员,未来是不是程序员就会失业?答案是否定的,因为编程更难的事情是在程序的逻辑设计上,而不是写代码本身。所以写代码的事情可以让机器来完成,而让编程人员做更高级的逻辑设计,让程序更高效。

谈及机器编程,人们自然会想到目前热门的低代码开发。楼建光认为:“机器编程与目前流行的低代码开发完全不同,虽然两者都有程序自动生成的字样,但机器编程与AI相关,低代码与传统开发更为接近,低代码是通过自动化根据模板生成的,是将常用的功能中间件化或者称之为中台化、标准化,通过模块化、标准化、可视化的技术,将原来需要代码完成的功能转换成只要进行简单的拖拽操作就能完成,从而实现自动化。”

机器编程难在哪里?

“通过机器学习和其他自动化方法,设计可以自动编写软件的软件”的机器编程并非今天才有,上世纪50年代就已有学术机构开始涉足机器编程的研究。

但Justin Gottschlich说:“与以往不同,今日的机器编程融合了机器学习、形式化方法、编程语言、编译器、计算机系统等多个领域。它所使用的自动编程技术,既包含精确方法(比如形式程序合成),也有概率方法(比如可微分编程)。机器编程汲取了我们迄今为止获得的所有软硬件知识,站在了历史的拐点上。新的机器学习算法、新硬件与优化硬件、海量而多样的编程数据,这三者是发展机器编程的要素。”

楼建光表达了与Justin Gottschlich一致的观点,因为机器学习算法的进步,算力的高速发展以及海量的编程数据,让机器编程的发展进入了新的拐点。不过楼建光认为:“目前机器编程的发展尚在早期,机器编程的难点在于目前机器AI还没有组合与泛化的能力,只是能够进行简单的编程,稍微长一点的程序就无法完成。”楼建光进一步解释说,复杂程序是由简单程序组合而成的,而程序组合中有很多逻辑和思想,现在的AI没有组合能力,缺乏逻辑思维。

Justin Gottschlich将机器编程的难点概述为三点,也称之为三大支柱:意图(Intention)、创造(Invention)和适应(Adaptation),这三者,代表着从一个编程的想法到最后产生一个产品级代码的过程。

英特尔中国研究院院长宋继强在接受《中国电子报》记者采访时透露,自己也曾做过程序员,所以深知编程中的各种难题,他进一步解释了Justin谈及的机器编程的三大支柱。

“意图”指人类向机器表达自己的想法。目前在这个维度的发展是通过自然语言的方式,而无需敲代码,直接告诉机器你要做什么,机器通过自然语言便能够了解。

“创造”是指机器以用户的意图为基础,然后合成一个高级程序,创造符合用户意图的程序、数据结构和算法。这个过程需要生产一堆代码,或在代码库中找出元素代码,然后按照一定思想逻辑组合,目前这个维度仍有大量挑战。这应该就是楼建光谈到机器尚无“组合能力”的部分。

“适应”这一步需要将程序进行更高级的转换和优化,以便在所处的软件和硬件生态系统中以最高效率运行,从而化解异构硬件挑战。

关于“适应”,做过编程人员的宋继强透露,事实上在编程过程中有一个非常重要的维度是针对不同的硬件环境进行优化,如果一个程序只是跑在CPU环境上效率很高,但当它要跑在CPU+GPU或者云上时,或许就会慢下来,所以程序需要针对不同硬件环境进行适应。

“但是擅长在CPU硬件上进行程序优化的人,可能在程序员里还不到10%,擅长GPU优化的也可能不到10%,但要想擅长在CPU+GPU上进行优化的可能只有1%了,如果是CPU+GPU+ASIC上进行优化的,可能就是0了。”宋继强表示,如果这些事情机器编程能够实现,就可以大大加速高质量程序的设计。

机器编程的发展尚在早期,让AI学会写程序,是人们的普遍预期,从全球机器编程的进展看,不同领域有不同进展,在特定领域,已经取得不错的突破。但在通用领域就像通用AI的发展一样,尚未取得实质性突破,仍需要产、学、研各界齐发力,加速机器编程的突破。

在这条加速AI学会编程的赛道上,目前正在涌入越来越多的公司。除了微软、谷歌、脸书等,在中国包括百度以及一些创业公司也加入了机器编程的研发行列,不同的公司有不同的技术路线。据楼建光透露,微软亚洲研究院在该领域的研究取得了很多实质性的进展,不但在深度学习模型的组合泛化能力方面做了深度探索,而且他们的从自然语言自动生成SQL程序的技术也已经实用,被集成到微软的Excel产品中。

英特尔在不久前的研究院开放日上,推出了机器编程研究系统ControlFlag,它可以自主检测代码中的错误。目前该系统仍处于早期阶段,这个自我监督系统希望帮助软件开发者发现隐藏的bug。为什么英特尔选择从检测代码bug的自动化切入,宋继强给出的答案是:“我自己做编程的时候,可能花在写程序上的时间只是30分钟,而调试则需要2个小时,所以调试检测会占据程序员大量时间。如果这一步让机器来完成,会大大提升编程的速度。”

现在看来,让AI编程只是在各个“点”有了突破,但就像万里长征是一步步走出来的一样,“不积跬步,无以至千里”,现在各公司的每一步探索,都会对未来机器编程产生深刻的影响。
责任编辑:tzh

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微软
    +关注

    关注

    4

    文章

    6565

    浏览量

    103950
  • 机器人
    +关注

    关注

    210

    文章

    28191

    浏览量

    206492
  • AI
    AI
    +关注

    关注

    87

    文章

    30098

    浏览量

    268386
收藏 人收藏

    评论

    相关推荐

    嵌入式和人工智能究竟是什么关系?

    嵌入式和人工智能究竟是什么关系? 嵌入式系统是一种特殊的系统,它通常被嵌入到其他设备或机器中,以实现特定功能。嵌入式系统具有非常强的适应性和灵活性,能够根据用户需求进行定制化设计。它广泛应用于各种
    发表于 11-14 16:39

    PCM1861 INT脚究竟是输出还是输入?

    这个芯片activce或是idle. 是否有人解释下,INT脚究竟是输出还是输入。我希望是输出,我需要读取到是否有analog audio输入的信息。 或者,输入输出与否还要靠其他什么地方设置? 盼望有人回复解答,不胜感激!
    发表于 10-29 07:29

    超高频读写器究竟是什么,能做什么?一文读懂!

    在物联网技术日新月异的今天,超高频读写器作为射频识别(RFID)技术的重要组成部分,正逐渐渗透到我们生活的各个领域。那么,超高频读写器究竟是什么?它又能做些什么呢?本文将带您一探究竟。一、超高频
    的头像 发表于 10-23 14:41 149次阅读
    超高频读写器<b class='flag-5'>究竟是</b>什么,能做什么?一文读懂!

    揭秘贴片功率电感发烫究竟是不是烧坏了

    电子发烧友网站提供《揭秘贴片功率电感发烫究竟是不是烧坏了.docx》资料免费下载
    发表于 09-30 14:44 0次下载

    电感器线径究竟是粗好还是细好

    电子发烧友网站提供《电感器线径究竟是粗好还是细好.docx》资料免费下载
    发表于 09-20 11:25 0次下载

    tas5756m使用GPIO口加内部PLL产生MCLK的方法究竟是怎么样的?

    tas5756m使用GPIO口加内部PLL产生MCLK的方法究竟是怎么样的?
    发表于 08-19 06:06

    请问cH340G的TX引脚电平究竟是3v还是5v?

    用CD34G来实现usb转串口的时候,直接用usb口的5v作为电源电压,它的tx引脚输出的高电平究竟是5v还是3v,我实测是3v,但网上有的人是5v,想进一步得到大家的确认。
    发表于 05-14 08:15

    工业物联网究竟是什么呢?它又有哪些作用呢?

    随着科技的快速发展,物联网技术已经逐渐渗透到我们生活的各个角落,而 工业物联网(IIoT) 更是引领着工业领域的数字化转型。那么,工业物联网究竟是什么呢?它又有哪些作用呢?本文将对此进行深度解析
    的头像 发表于 04-22 15:26 347次阅读

    STM32擦除后数据究竟是0x00还是0xff ?

    STM32擦除后数据究竟是0x00还是0xff ,百度查了许多发现大多数都是0xff的多,都说SD卡(TF)储存介质是Flash 所以擦除后为0xff,但是我遇到了读出来的数据是0x00的情况,为什么呢
    发表于 04-18 07:59

    吸尘器究竟是如何替你“吃灰”的【其利天下技术】

    如今,吸尘器已成为大多数人居家必备的小家电产品,那么说起吸尘器,你对吸尘器有了解多少呢?不知道大家知不知道它的原理是什么?今天我们就来说一说吸尘器究竟是如何替你“吃灰”的。
    的头像 发表于 03-07 21:17 836次阅读
    吸尘器<b class='flag-5'>究竟是</b>如何替你“吃灰”的【其利天下技术】

    “其貌不扬”的共模电感究竟是如何做到抗干扰的呢?

    “其貌不扬”的共模电感究竟是如何做到抗干扰的呢? 共模电感是一种用于滤除电子设备中的共模噪声的重要元件,其主要作用是提供阻抗来滤除共模干扰信号。尽管外观看起来“其貌不扬”,但共模电感通过其特殊
    的头像 发表于 01-11 16:27 702次阅读

    用CCES进入Debug调试BF609时出现错误是哪里出了问题呢?

    仿真器测试连接已经试过了,都是通的,就是没法连上板子,究竟是哪里出了问题呢?感谢解答!
    发表于 01-11 07:17

    同步电机的转数同步究竟是与什么同步啊?

    同步电机的转数同步究竟是与什么同步啊? 所有的同步电机的转数都一样吗?还是与电机的极对数有关系呢?
    发表于 12-19 06:44

    伺服电机和普通电机相比优点在哪里

    伺服电机和普通电机相比,优点在哪里
    发表于 12-11 07:59

    半导体内部电荷运动的机制究竟是什么呢?

    半导体内部电荷运动的机制究竟是什么呢? 半导体材料的内部电荷运动机制是半导体物理学和固体物理学的重要研究领域之一。在这篇文章中,我们将详细、真实地探讨半导体内部电荷运动的机制,从电子的能带结构到
    的头像 发表于 11-30 11:28 804次阅读