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

    文章

    6719

    浏览量

    107355
  • 机器人
    +关注

    关注

    213

    文章

    30590

    浏览量

    219632
  • AI
    AI
    +关注

    关注

    89

    文章

    38121

    浏览量

    296711
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在山区实现自动驾驶的难点在哪里

    在城市道路实现自动驾驶或许不难,但想把自动驾驶车应用到山区道路,其难度会比想象的大得多。城市里路标、车道、红绿灯比较多,车流也比较规则;而很多山路却没有清晰车道、路面起伏大、天气变化快,还有随时掉落的石头或横穿的牲畜的风险。山里的这些“突发性”和“不规则性”会把很多在城市已经足够好的技术逼到极限,甚至露出短板。想在山区实现自动驾驶是否现实?
    的头像 发表于 11-08 14:57 2715次阅读

    qkey软件包在内核V5.02下运行出错是哪里的问题?

    ) == RT_Object_Class_Memory) assertion failed at function:rt_smem_alloc, line number:290 ; 然后内核改成V4.1.1就没任何问题。 因为v5.0.2下引入backtrace也始终有编译问题,所以不好跟踪究竟是为何。
    发表于 09-15 07:46

    实现环境计算真正的瓶颈究竟在哪里

    20世纪90年代初,计算机科学家Mark Weiser提出了“泛在计算”的理念,其核心思想是让技术融入日常生活环境中[1]。尽管智能家居组件、传感器网络和智能设备取得了进展,但环境计算这一概念依然难以实现。如今,我们已经拥有了硬件基础和连接能力。那么,真正的瓶颈究竟在哪里
    的头像 发表于 09-10 16:21 652次阅读

    功率半导体究竟是什么

    站在战略升级的关键节点,闻泰科技正在全力聚焦半导体业务,开启全新发展阶段。值此之际,公司特别推出 《探秘“芯”世界》系列专题,邀您一同探索半导体的奥秘,见证闻泰科技以创新引领行业的 "芯" 力量。
    的头像 发表于 07-09 11:42 1027次阅读

    超声波液位计究竟是什么?

    液位计
    jzyb
    发布于 :2025年06月03日 16:10:12

    PLC为什么容易烧坏?主要原因在哪里

    PLC(可编程逻辑控制器)作为工业自动化控制的核心设备,其稳定性和可靠性直接影响生产线的运行效率。然而,在实际应用中,PLC烧毁的故障并不罕见,这不仅会导致设备停机,还可能引发安全隐患。那么,究竟是
    的头像 发表于 05-12 08:42 2222次阅读
    PLC为什么容易烧坏?主要原因<b class='flag-5'>在哪里</b>?

    FOC电机控制究竟该如何学?

    学习FOC电机控制究竟是学哪些内容? 电机知识 软件知识 纯分享贴,有需要可以直接下载附件获取完整资料! (如果内容有帮助可以关注、点赞、评论支持一下哦~)
    发表于 05-09 14:09

    工程师在产品选型的时究竟是选CAN还是CANFD接口卡呢?

    很多工程师在产品选型的时候会疑惑,究竟是选CAN接口卡还是CANFD接口卡呢?两者之间有什么区别呢?影响选择的关键因素又是什么?我们今天一个一个来拆解。1.波特率传统的CAN接口卡仅有一个波特率,即
    的头像 发表于 03-21 11:37 716次阅读
    工程师在产品选型的时<b class='flag-5'>究竟是</b>选CAN还是CANFD接口卡呢?

    IGBT模块如何助力新能源发展

    在全球积极推进能源转型的大背景下,新能源领域蓬勃发展,而 IGBT 模块作为其中的关键器件,发挥着不可替代的作用。它究竟是如何助力新能源发展的呢?今天就带大家深入了解。
    的头像 发表于 02-21 15:41 1743次阅读

    人工智能的下一站在哪里

    DeepSeek的爆发进一步推动了AI行业的发展速度,这让人们不得不想象AI的下一站在哪里?维智科技所深耕的时空大模型与AI发展的逻辑轨迹又是如何联系的?
    的头像 发表于 02-14 10:27 805次阅读

    室内导航究竟是如何实现的

    作为物联网智能硬件的引领者,云里物里当然不是来聊电影的,而是想借此机会,和大家探讨一下:室内导航究竟是如何实现的?它背后的技术原理是什么?接下来,让我们一起揭开室内导航的神秘面纱。
    的头像 发表于 02-12 13:50 892次阅读

    ADS1298R PACE_OUT1和PACE_OUT2这两条引腿究竟是输入还是输出?有什么用?怎样使用?

    PACE_OUT1和PACE_OUT2这两条引腿究竟是输入还是输出?有什么用?怎样使用?
    发表于 02-12 07:56

    静力水准仪在实际操作中有哪些难点

    看这些难点究竟是什么。1、管道长度的限制静力水准仪的工作原理是基于连通器原理,也就是要求管道内的液体达到液面平衡。然而,当管道过长时,水流在管道内流动的阻力会增大
    的头像 发表于 02-11 13:41 969次阅读
    静力水准仪在实际操作中有哪些<b class='flag-5'>难点</b>

    ADS1281EVM-PDK板子无法使用怎么解决?

    板子上正负10V电压已加,USBStyx driver 已经安装,通过母板供电,但最后 软件界面上的Acquire 按键呈现灰白色,无法按下,如下图红圈区域所示: 有哪位能告诉我究竟是哪里出了问题?该不会是硬件坏了吧?
    发表于 01-22 07:54

    ADS8383没有busy输出是哪里出了问题?

    的实现,理论上应该busy有输出,但是busy测试到没有输出,电源供电正常,时序也正常,那么接下来该如何考虑究竟是哪里出了问题?
    发表于 12-26 06:38