博舍

AI 项目到底适不适合开源 人工智能适不适合女生发展呢

AI 项目到底适不适合开源

当然了,AI的模型训练确实也还是有跟别的技术不太一样的东西的,那就是需要大规模甚至超大规模的数据。对于学术界来说,往往使用一些网上公开的数据集就可以了。而对于工业界来说,数据的保密性可能就存在一定的问题。数据的无法开源也会影响到开源模型的有效性和实用性,这方面是值得注意和研究的。总之,个人认为并不存在什么适合不适合开源的问题,而主要是愿意不愿意开源,以及开源到什么程度的问题。

InfoQ:依赖开源算法,AI技术是否可以完成深度落地?

霍博士:这个问题不好回答,但如果能改成“借助开源算法,是否可以促进AI技术高效落地”,那这个答案就是比较肯定的了。

开源只是一个能够促进协作创新、提高开发效率的手段,而并不是一个无所不能、能够包打天下的东西。不同的群体对于开源的贡献和索取的期望值不尽一致,导致开源内容的品种和质量也是五花八门、良莠不齐的。比如学术界开源的项目可能更倾向于一些理论、算法的验证,距离实际生产应用会较远一些。工业界对于开源的态度,出于利益竞争的考虑,可能也会有一些掐头去尾,不太可能把自己的老底完全兜出来的;有些企业拿出来用于开源的代码和自己在现网生产系统中使用的代码可能是两套完全不同的东西,从算法和系统运行的性能、安全性、可靠性、稳定性、适用环境等方面都会打一定的折扣。所以,要完成AI技术的深度落地,可能并不能完全依赖开源算法。

但是,不完全依赖开源并不是说就完全不依赖开源,AI技术的落地还是要而且必须要借助于开源算法的。借助开源的效果,最主要的就是提高开发和生产效率。对于一个面向实际生产运营的项目,拿一个开源代码过来不加修改直接运行几乎99%是不太可能成功的,但是利用现有的开源代码进行二次开发,通过采取扩展功能、改善性能、增强安全性可靠性等措施,或者仅把开源代码当做参考原型,借助其工作原理来重新进行代码设计和开发,与完全不参考开源代码自己一切从头开发比起来,其开发效率都必然会大大提高,达到事半功倍的效果。

InfoQ:2019年,中国联通为推动5G与AI融合创新,发布了CubeAI智立方平台,当初为什么选择开源?

霍博士:关于CubeAI智立方这个平台的开发和开源,其实也并不是一开始就规划好要做开源,而是有一个逐渐演进和发展的过程的。CubeAI智立方是中国联通研究院自主研发的集AI模型自动化服务封装、发布、共享、部署和能力开放等功能于一体的开源AI算能服务平台,其核心作用在于打通AI模型开发至实际生产应用之间的壁垒,加速AI创新和应用进程,促进AI应用从设计、开发直到部署、运营整个生命周期的自动化快速迭代和演进。

CubeAI其实主要实现了以下三个功能:AI模型的自动化服务封装、自动化模型发布和自动化模型部署。所谓自动化服务封装,就是将原先只能在本地调用的模型推理程序通过简单的代码模板套用自动封装成为可通过网络远程访问的API服务。所谓自动化模型发布,就是将经服务化封装的模型推理程序自动打包成微服务容器,一键发布至CubeAI提供的模型共享托管平台,供用户进行浏览、评价、交易和部署。所谓自动化模型部署,就是将CubeAI模型共享平台中的模型推理微服务一键部署至k8s等云原生算力平台,部署之后直接向用户提供基于API接口的AI能力开放服务。

最开始我们想要做这个平台的时候,主要是基于内部项目的一些需要。刚开始并没有想要完全自己做,而是打听到有一个叫做Acumos的开源项目,能够提供类似的一些功能。Acumos是Linuxfoundation下面的一个深度学习基金会立项的一个开源项目,但它的开发者主要来源于AT&T公司,跟我们联通一样都属于电信运营商。刚开始我们是想直接利用Acumos的代码,希望能够直接把它跑起来,最多是在它的基础上根据我们的需求改吧改吧,来满足我们的应用。但在实际使用过程中,我们发现这样的做法并不太行得通。首先下载下来的代码在我们的机器上就跑不起来,好容易想尽各种办法把它勉强跑起来了,好多功能调用的时候又出错,几乎无法使用。其次发现他们的代码过于庞杂,而且不是我们想要的微服务架构,二次开发和代码维护的难度都非常大。

所以我们就决定不直接基于Acumos代码进行二次开发,而是重起炉灶搭建我们自己的代码框架,然后参考和部分借用Acumos的代码来进行开发。也就是说,我们不直接使用Acumos已经编好的筐,而是新编一个我们自己的筐,然后把Acumos筐中觉得好用的蛋拿到我们的筐中来,实现我们需要的功能。

基于这个思路,我们很快就完成了CubeAI平台第一个版本的开发,并在2019年的世界移动通信大会进行了发布。考虑到它并不是一个单一的产品或平台,而是需要与产业界各方进行交流合作,共同来构建产业合作生态环境,于是我们在发布这个版本的同时就决定将其同步进行开源。当然在决定开源的时候,除了面向产业链生态合作方面的因素之外,我们也考虑了其他的一些理由。首先我们的这个CubeAI最初是在参考开源软件Acumos的基础上进行开发的,虽然后来我们实际上已经完全脱离了Acumos的体系,但最初毕竟还是受到了它的影响,既然来源于开源,也就应该回馈于开源,这是其中一个考虑因素。另外就是我们觉得我们刚开始参考的这个Acumos开源软件做的并不太好,而且不太适用于我们中国人使用,而我们自主开发的这个CubeAI从好几个方面都比外国人做的东西更好用,我们就希望能把它开源出去来向外界进行展示,也算是一种宣传吧。

InfoQ:从目前人工智能行业发展来看,AI模型开发与实际生产应用之间有哪些壁垒?作为开源AI算能服务平台,CubeAI智立方是如何打通这些壁垒的?

霍博士:大家都知道AI的使用主要包括模型训练和模型推理两大步骤。模型开发者首先使用大量数据训练出一个模型来,然后模型使用者调用这个预训练好的模型,输入自己的数据来执行模型推理,计算出自己的预测结果来。现在AI方面大量的工作主要集中在模型训练方面,而对于如何将训练后的模型交付给最终用户进行使用关注得并不多。究其原因,可能主要是因为模型训练过程本身就包含了模型推理,大多数模型开发者并没有觉得调用和执行模型推理是一件什么难事。而实际上,在真实的行业应用中,广大的模型使用者可能对AI模型训练和推理的具体技术细节并不是太了解,让他们直接使用与模型开发者一样的编程环境来进行模型推理实在就有点勉为其难了。

举个例子,现在学校里的研究生发表AI相关的论文,一般都还同时把自己的源码上传到类似Github这样的开源托管平台上;审稿人在阅读论文的时候,如果想亲自核实一下论文算法的运行效果,就需要先把作者开源的代码下载到本地,然后根据README指示在自己的电脑上从头配置一套运行环境,然后再在这个环境中运行模型推理代码。由于每个作者每个模型的运行环境千差万别,这个从头配置环境并运行代码的过程有时是十分困难的,没有非常熟练的AI模型开发经验的人员一般很难轻松搞定。当然,在这个例子中的审稿人通常是行业专家,完成这些工作也许不是什么大的问题,但也会浪费很多时间。而对于像我这样的对于什么是神经网络、什么是张量等等都搞不懂的普通人来说,如果也想去试试,就不是那么简单的了。而在其他的行业应用中,真正的用户其实大部分就是类似我们这样的普通人,而不个个是AI和编程专家。

为了解决这个问题,一个办法就是把AI模型服务化,把它部署到云端,然后用户不需要在自己的本地电脑上安装配置运行环境,而是直接通过调用云端提供的服务化API接口来获取模型推理结果就可以了。这种方式现在已经大量存在,好多商业化的网站和生产应用系统也都采用的是这种模式。但是,这种模式虽然方便了使用者,但却给普通的模型开发者带来了麻烦。因为在这种模式下,要想把一个模型推理程序变成云端服务器上的服务化API接口,是需要由网站运营者针对每一个模型程序专门进行服务化定制开发和部署的,不仅流程繁琐、工作量大,而且对于普通的模型开发者也是可望而不可及的,只有那些实力雄厚、拥有自己服务器和网站的企业才可能做到。以上面提到的论文审稿为例,一个研究生可以很轻松把自己的模型代码放到github等代码托管平台上,但是却很难有渠道将其服务化部署到一个大家都可以访问的网站上去。

我们做的这个CubeAI智立方,刚好就可以解决这个问题,打破模型开发者到模型使用者之间的这个障碍,使得模型开发者不需要了解云端网站开发和服务化封装的基本原理和编程知识,只需要简单套用一下CubeAI提供的模板程序,就可以将自己的模型程序一键发布和部署至云端网站,以服务化API的方式对所有用户提供模型推理服务;而模型使用者也不需要了解和掌握任何AI编程和运行环境配置等知识,只需要使用经CubeAI封装的非常简单的方式调用网络API接口就可以了。

InfoQ:CubeAI智立方由AI建模、AI模型共享(AI商城)和AI能力开放三大平台组成。分别解决了AI模型使用者的哪些问题?

霍博士:在最初的规划中,CubeAI是打算由AI模型训练、AI模型共享和AI能力开放这3个平台组成。在实际做的过程中,我们实际上没有自己去做模型训练这一块。当然这样说也不太准确,我们曾经自己也开发过一个模型训练平台的,但做出来后发现做的并不太好,跟目前市场上已经有的一些模型训练平台相比,采用的技术和实现的功能都大同小异,但好用性和可用性等方面都不是太好,所以后来就决定放弃这一块,不再自己做,而是直接使用现成的训练平台。不论用哪一家训练平台训练出来的模型,都可以与我们的模型共享平台进行对接。例如,百度的AI-Studio就是一个很好的AI训练平台,从界面友好性等方面都比我们当初自己做的那个要好用得多。启智社区的AI协作平台功能就更加强大了。

AI模型共享平台可以看作是一个经服务化封装的AI模型推理程序运行体的托管仓库。这个经服务化封装的AI模型推理程序运行体的具体表现形式目前就是一个Docker容器。把每一个模型推理程序封装成一个Docker容器,这样就实现了云原生,可以随时随地将其部署至任何可以运行Docker的环境中运行并提供模型推理服务。打个比方,跟GitHub等传统的静态代码托管平台相比,我们可以把CubeAI的模型共享平台看作是一个可以运行的“活体程序”的托管平台。通过平台提供的界面,用户可以浏览、搜索自己感兴趣的模型,也可以像市场中的商品一样对模型进行评价、收藏、交易、分享,对于已购买的模型,可以将它部署至任意云平台或者本地电脑。目前,因为还没有商业化运行,我们暂时还没有实现模型交易这个功能,所有模型都还是免费的,所以我们暂时还把这个平台叫做AI模型共享平台,而没有叫做AI商城。

在AI模型训练平台到AI模型共享平台之间,实际上还是有一个AI模型服务化的过程的。在这里我们主要是开发了一个叫做ServiceBoot的AI模型服务化引擎,还有一个模型服务化程序模板。模型开发者只需要套用这个程序模板对他开发好的模型推理程序进行非常简单的代码封装,就可以达到模型服务化的效果,利用ServiceBoot引擎以网络API接口的形式对外提供模型推理服务。封装好的模型服务器程序,再经过一键发布操作,就可以将其发布至AI模型共享平台。在模型发布过程中,AI模型共享平台会自动将经服务化封装的AI模型推理程序打包成微服务形式Docker容器镜像,模型运行所需要的Python环境、AI框架等等都会被自动选择并打包进去,而不需要用户的手动干预。

最后再来解释一下这个AI能力开放平台。本质上来说,用户可以将从AI模型共享平台购买的AI模型部署至任何可以运行Docker容器的环境中进行运行,例如各类云平台、本地电脑等等。但是考虑到很多用户自己并没有合适可用的云平台,所以我们就开发了这样一个AI能力开放平台,用于进行模型的部署和运行管理。我们目前采用k8s来搭建AI能力开放平台。模型部署至k8s之后,通过AI能力开放平台提供的用户界面,用户可以查看模型的运行状态;还可以对模型运行的生命周期状态进行管理,例如执行实例扩缩容等操作;还可以使用模型提供的API接口进行模型推理测试;甚至还可以利用模型开发的Web界面进行可视化模型演示。

InfoQ:经历3年的发展,CubeAI智立方在技术方面实现了怎样的突破?在5G与AI融合方面有怎样的探索?目前在攻克的技术难题是什么?

霍博士:CubeAI从2019年开始做,到现已经断断续续开发了不短的时间,也迭代了不少的版本。这个过程中还是做了一些比较有价值的事:

第一个就是AI模型服务化引擎的开发。模型服务化其实可以算作是CubeAI中最核心最关键的一个东西,与普通的Web框架相比,关键是要能够实现对普通的模型推理程序进行自动化服务封装,还有就是要实现模型加载和模型推理两个过程的分离,以便提升模型推理的性能。刚开始我们直接使用Acumos提供的一个叫做acumos-model-runner的服务化引擎,但在使用过程中发现它这个东西仅仅对TensorFlow等少数AI框架有效,连对PyTorch这样主流的框架都不支持。于是我们就经过分析之后对acumos-model-runner进行了改造,基本能够支持对所有AI框架开发的模型进行服务化封装。再后来我们进一步研究,发现acumos-model-runner的实现原理和使用方式都非常别扭,有把简单问题复杂化的倾向,导致开发效率、运行性能和用户体验等方面都不是很友好。于是我们就又彻底抛弃acumos-model-runner,完全重新设计和开发了一个全新的服务化引擎,不论从技术原理、开发效率、运行性能还是用户友好性等方面,都取得了超越acumos-model-runner的非常好的效果。我们最开始给这个服务化引擎起了个名字叫作iBoot。

第二个是基于微服务框架的平台开发和重构。前面说过,CubeAI最初是参考开源项目Acumos开发的。但是由于我们对Acumos的代码结构不是很满意,所以一开始我们选择了采用基于SpringCloud的开源微服务框架来搭建代码主体框架,仅仅是参考Acumos的部分代码来实现平台功能,这样就形成了CubeAI的最初版本。在使用SpringCloud微服务框架的开发过程中,我们也遇到了一些问题,促使我们决定试着开发一个自己的微服务框架。首先是这个框架非常庞大,调用关系非常复杂,虽然号称是开源的,但有些组件深入debug之后发现还是找不到源码,从而导致对有些功能的实现知其然不知其所以然,有些不符合自己使用习惯的东西想改又不知道该怎么改,有些搞不清的东西也不知道到底敢不敢用。其次是这个框架只支持java编写的微服务,不支持其他语言开发微服务的接入,不利于微服务的兼容扩展。再次是Java编程的学习和调试难度较高,而我们的开发力量和水平有限,导致开发效率不太高。考虑到现在绝大多数AI模型都是基于Python进行开发的,大多数AI开发者对它都比较熟悉,而且Python也相对比较容易学习,能够大大提高开发效率,所以我们就试着使用Python对整个CubeAI平台代码进行了重写,包括其中的微服务框架部分。

第三个是微服务引擎和微服务框架的抽象和重构。最开始用Python重写的CubeAI平台,其代码结构还是比较繁琐的,特别是涉及到网络并发处理等操作,其中的异步编程机制不仅编程麻烦,而且一般人很难理解和学习。正在为这个问题犯愁的时候,突然想起来们的iBoot既然可以用来对AI模型程序进行服务化封装,那是不是也可以用来开发普通的微服务程序呢?于是我们就参考iBoot又开发了一套通用的微服务引擎,起名叫作ServiceBoot。ServiceBoot对微服务访问的各类异步并发操作以及API接口映射、参数处理机制等等进行了统一的抽象和封装,提供了一套简单易懂的函数式网络编程接口,能够大大简化编程复杂度,提高微服务开发的效率。在这个基础上,我们又把整个平台中提供微服务框架的基础组件抽象出来,使用ServiceBoot重新编写,这样就构成了一套独立的通用微服务框架基础组件,我们给它起了个名字叫作CubePy。CubePy是一套通用的微服务框架,包括微服务注册和发现、API网关、用户认证授权、应用管理、文件和镜像管理、前端微服务模板等基础组件,它不仅可以用于开发CubeAI,而且可以用于开发其他任意的云原生微服务类应用。CubePy的基础组件虽然是使用Python和ServiceBoot写的,但是它并不限于仅支持Python微服务接入,用其他语言写的微服务,只要符合CubePy的相关接口要求,也都是可以接入到CubePy框架来进行管理的。

因为历史的原因,之前iBoot和ServiceBoot一直是按照两个产品来进行开发和维护的,一个专门用于AI模型的开发和服务化封装,一个专门用于CubePy微服务的开发。前一段时间我们刚刚对这两个东西进行了融化整合,把它们整合成了一个产品,名字定为ServiceBoot。这样对内对外都比较方便。对外便于用户理解和使用,对内便于开发团队的开发和维护。也就是说,以后不论是开发普通的微服务应用,还是开发AI模型推理服务,都使用这个统一的ServiceBoot就行了。而且,ServiceBoot不仅仅可以用来对AI模型进行服务化封装的,实际上它可以用来对任意的Python程序进行服务化封装,在开发和部署效率、服务性能和用户友好性等方面都明显好于其他的PythonWeb框架。

InfoQ:CubeAI智立方进入OpenI项目培育管道后,有怎样的体验?获得了哪些助力?您如何评价OpenI?

霍博士:CubeAI大概是在去年7月份,经过启智社区严格的评审流程,正式被社区采纳,作为重点开源项目贡献至启智社区并进入社区项目孵化管道的。进入社区这一年多来,在社区的支撑和培育之下,我们的项目得到了良好的发展,取得了显著的进步,总体感觉是非常不错的。

我们以单位名义、以会员方式正式加入了社区,并且在社区正式立项了开源项目,所以就可以光明正大地来搞开源,不再受制于一些条条框框的约束和限制了。

其次社区提供了AiForge这样一个非常好的代码托管协作开发平台。在加入启智社区之后,经过一段时间的试用,我们就喜欢上了这个平台,并且把CubeAI项目的所有代码开发活动都切换到了这个平台之上。主要原因就是因为它的好用,一个是速度快,浏览、提交、合并代码都非常流畅,几乎没有什么卡顿;二是用户界面友好、操作简单方便,没有太多啰嗦和看不懂的地方;再就是它本身也是一个持续迭代开发的开源项目,你可以在线看到它的持续更新,而且每次都是向着更好的用户体验。不仅如此,在使用过程中如果遇到什么问题,都可以及时提出并得到反馈,好的修改建议会很快出现在下一个发布的版本之中。这些都是以前用其他代码托管平台和工具时所无法体验到的。

还有就是在加入社区之后,社区给我们提供了很多展示和宣传项目的机会和平台,例如EngineClub论坛讲座、启智校园行、苏州智博会、启智开发者大会、中国开源大会等等。通过参与这些活动,一方面宣传和扩大了CubeAI的影响,另一方面也学到了更多开源方面的知识和先进经验。在年初召开的启智开发者大会上,CubeAI还有幸荣获了启智社区颁发的优秀开源项目奖,我们的开发团队成员也荣获了启智社区的优秀开发者称号。最近一段时间社区搞的“我为开源打榜狂”活动也很有意思。我觉得所有这些都是对开源开发者很好的鞭策和鼓励,促使大伙能够更好地投入到开源事业的建设和发展中来。

InfoQ:之后对CubeAI智立方平台的发展有何规划?

霍博士:作为一个平台型的开源软件,CubeAI要真正发挥作用主要还是在于运营,特别是面向公众互联网的运营,潜在用户目前来看主要应该是广大的AI个体开发者或中小型开发团队。目前互联网上应该还没有类似的平台。但是很遗憾CubeAI项目现在还只是处于开源孵化阶段,还没有得到实际的应用。所以对于它的发展规划,我们最希望的就是有人能够把它真正投入运营,真正的应用起来。大家都知道开源的东西跟实际真正运营的产品之间还是有一定差距的,目前的开源系统最多可以看做是一个原型产品。如果要实际投入运营的话,还是需要根据真实的运营需求对这个开源平台进行适当的功能扩展和优化开发的。

InfoQ:如今开源AI平台越来越多,AI技术应用门槛不断降低,“人人都可以做AI开发”,您怎么看待这个技术应用趋势?

霍博士:从某种意义上来讲,我是同意这种说法的。之所以出现这种趋势,我觉得大致主要得益于以下几方面的因素。

第一,人工智能技术的发展,特别是这些年来基于神经网络的深度学习技术的突破和流行。与传统机器学习相比,深度学习的最大优势之一就是可以进行端到端的学习,而不需要人工进行特征提取,这就在模型算法研究和设计的层面降低了技术门槛。

第二,各类开源AI框架的出现和普及。深度学习中的神经网络层次多、网络结构复杂、参数数量庞大,这样就会导致模型训练和推理的程序代码结构复杂,普通开发者很难搞定。特别是神经网络模型训练中的反向传播算法,需要一层层的计算梯度,也就是针对各类函数求偏导数,不仅公式复杂,而且数量庞大,这就更不是一般人能够搞得明白的了,更不用说编程实现了。而AI框架的出现就解决了这个问题,它把各类虽然复杂但是可规律性重复使用的代码封装起来,并且自动实现了计算图构建、偏导计算等复杂操作,这样就使得模型开发者只需要使用若干比较有限的通用API接口就能够构建神经网络,执行模型训练和模型推理等操作,从而大大降低模型开发的难度和复杂度,在AI模型开发这个层面降低了技术门槛。

第三,各类增强型开源框架或平台的出现。它们首先开发一些通用模型,利用大量通用数据集训练出一些预训练模型出来,把它发布到网上。然后不同应用领域的模型开发者可以在这些预训练模型参数的基础上,使用自己拥有的部分领域数据集来进行增强和优化训练,得到更加适合于自己领域的模型参数。这样就进一步降低了应用型AI模型开发的技术门槛。

第四,各类开源AI集成或应用服务平台的出现。这些平台直接提供面向各类应用的训练好的模型,应用开发者只需要从中选择合适的模型,进行简单的参数配置或者编排组装之后就可以直接调用。这样就大大降低了各类需要用到AI技术的应用开发者的技术门槛,他们可以基本上不用学习和掌握AI的理论和编程知识,就可以进行应用开发了,从而真正实现“人人都可以做AI开发”。

总之,一个技术要想营造良好的应用生态环境就必须吸引更多的人来参与,要想吸引更多的人就必须降低技术门槛,而开源正是降低技术门槛的最有效的手段之一。

InfoQ:国内的公司关于AI的开源项目并不少,基本上大厂都开源了自己的AI框架,有的还不止一个,但是后续维护和推广做得好的并不多,产生这种现象的原因是什么?您又是如何看待国内厂商争相构建AI开源框架这件事的?

霍博士:确实,国内目前做AI开源项目的很多,特别是开源AI框架,好多公司还有一些大学等研究机构也都在做,但是在业界有比较大名气和影响力的,目前似乎只有PaddlePaddle和MindSpore。出现这种情况的原因主要有以下几个:

首先,用户的使用习惯、学术生态和对国外主流的依赖心理的因素。普通的AI研究和开发者,最早接触和使用的是国外的TensorFlow和PyTorch等知名的主流框架,在国际上发论文、学术交流等也都普遍采用这些主流框架,这就使得一方面使用习惯了不太愿意去换新的工具,毕竟任何新的东西也都还是有一定的学习成本的;另一方面使用新的东西可能会失去与他人特别是国际上一些学术圈子交流的机会,因为一个新的东西要想混入圈子是会遭到当前圈子里主流的排斥的。至于像PaddlePaddle和MindSpore这两个现在之所以能够搞出点名气来,本身产品过硬是一方面,我觉得最主要的还是靠着公司的财大气粗硬挺出来的,而且主要还是在面向产业应用的领域,在学术界还是不太流行。

第二,做开源并不是一件轻松的事情,还是需要有相当大的人力物力财力来支持的。比如说要有雄厚的技术储备,要有强大、持续的创新开发人才队伍,要建设和运营社区,要有强大的算力和网络资源,要持续进行大规模布道、宣传、推广等等,所有这些都不是一般的财力不足的小公司能够长久持续应付得了的。这可能也是一些开源项目后续维护和推广做得不太好的一个原因吧。

第三,持续的创新能力。有些开源项目可能刚开始做得很好,但是后续时间长了如果不能持续推出新的东西,自然也就会逐渐失去人们的关注,自己也失去信心,无法再坚持做下去了。

当然,这里说的只是开源项目可能做不好的部分原因,并不表示我国的大多数AI开源项目就都做得不好。事实上我觉得我们国内有些名气不是太大的开源项目做的可能还是非常好的。所谓的专尖特精,有些公司或团队只是在AI相关的部分领域有自己独到的创新之处,由于方向相对比较窄,受众范围比较小,再加上宣传力度跟不上,所以开源之后就只能在自己特定专业领域的部分小圈子内进行传播,而无法在更大的范围内引起轰动。

所以说对于目前国内厂商都在争相构建AI开源框架这件事,我认为这其实是件好事。因为不同的厂商必定都有各自独到的创新之处,争相开源的话就会形成一种百花齐放的局面,在这个基础上大家通过相互学习借鉴、取长补短、竞争融合,最后可能就会打造出几个集大成者的优秀项目出来,成为带动我国AI开源蓬勃发展领头雁。当然要造就这种局面,是需要一定的政策和市场融合竞争机制的,使得参与开源的不同的企业和团队之间能够友好合作、互相促进,而不是勾心斗角、恶性竞争。我相信这种局面是会出现的。

InfoQ:目前行业里存在哪些技术挑战?在未来,是否可以通过“开源”得到解决?为什么?

霍博士:从AI技术的应用这方面来说,将来AI模型部署和运行的形态到底应该呈现个什么样子,我不是太有把握。现在大家谈起来,一般都有云边端这样的说法,但是到底什么情况下应该布到云、什么情况下应该布到边、什么情况下应该布到端,这里边都还是有一个技术、人力、财力等方面的成本和收益的考虑和权衡的。现在算力网络这个概念比较火,利用算力网络是否能解决这个问题?在算力网络中又如何去实现AI模型的最优化部署和算力调度以使得模型的开发者、运营者和使用者都能够得到最大的实惠和便利呢?我想这些问题可能现在都还没有一个比较好的现成的答案,是值得去挑战挑战的。

举个例子,就像GPU算力设备的使用和调度,目前做得好像都还不是太理想,还不能像使用CPU那样随心所欲。一方面,对于开发者来说,编程时还需要考虑不同的驱动版本、需要指定将数据复制到哪一个GPU板卡上去,简直是太不友好了。另一方面,GPU等AI计算设备在各类云环境中的虚拟化和共享技术目前也还不成熟,无法做到真正的按需调度和使用。我觉得在理想的算力网络中,模型开发者应该对算力设备不感知才对,不管你有没有CPU、GPU或者其他什么PU,更不管你这些有多少或者放在什么地方,开发者只关注于写算法就行了,至于在哪个PU上计算,那应该是算力网络来完成的事情。但现在不论哪个AI框架,编程和计算设备都还没有解耦,这似乎在目前还不太好解决。

另外,开源是解决这些问题所需要借助和依赖的一个非常必要的机制和手段,但是光靠开源可能也是不行的,还是得多措并举。

(正文完)

作者:技术大院

简介:传播知识、开阔视野,有种、有趣、有料。返回搜狐,查看更多

人工智能行业有哪些岗位

重庆造价员培训/重庆资料员培训,建筑行业适合女性的培训

一、建筑行业中哪些岗位适合女孩子?

技术类岗位虽然都比较辛苦,但是如果能坚持下来,慢慢积累经验,是越老越吃香的。

施工、测量、监理等一些岗位因为要经常到施工现场、吃住在工地,显然不适合女性。而预算员(造价员)、资料员(城建档案员)、设计等岗位,相对而言不需要经常下工地,并且女孩子心细,对今后的工作和自身发展都有很大帮助。此类岗位比较适合女性。

二、适合女孩子学习的专业主要有:建筑资料员和造价员。从难易程度看,资料员比预算员要简单一些,偏向于文字及档案管理工作;从含金量看,预算员的技术含量比资料员的高。学员可根据自身的情况进行选择!

三、建达学校长期开设施工员造价员资料员零基础技能培训班,每月开班。有白班、周末班、多种班型供你选择。总校还有住宿可供外地及远地方学员住宿学习。

四、造价员主体课程:

1、建筑图集。——教会学员看懂基本工程图纸,并能自己进行手算,这样,才能为软件的运用打好基础,通过对软件进行准确的设置,了解怎么样能多算、少算钢筋量。

2、平法手算。——教会学员11G平法图集中柱、梁、墙、板节点和计算,框架工程手算对量,对比了解11G,读懂平法。

3、算量、计价软件。——教会学员自己作软件,能利用广联达正版钢筋、图形算量软件计算整个一套图纸的工程量,并能利用神机计价软件套用定额、清单。

4、定额、清单。——教会学员理解定额及清单的相关规则及他们的区别,并能正确的套用定额以及清单,使学员今后遇到相似的问题也可以迎刃而解。

5、实际工程案例。——教会学员实战三个实际工程-多层、高层和别墅,为以后实际做工程打下坚实的基础。

五、资料员培训课程:

建筑识图、施工技术、建筑工地实训、CAD制图、天正CAD、施工技术工地实训、

概预算、城建档案管理基础、城建档案法规手册、建设工程/市政工程技术用表、资料软件、招投标、资料实训等等。

六:选择建达学校有什么优势:

重庆建达职业培训学校是由重庆市人力资源和社会保障局批准成立的建筑类培训学校;

是重庆市定点的建筑类培训机构;

是重庆市造价协会会员单位;

零基础教学,多媒体上课,结合多个工程案例反复演练,小班授课,老师手把手教学;

独立的师资队伍,成熟的硬软件设施,让广大学员能够更安心更专注的学习;

我校拥有独立的机房可以同时容纳100余人,先进的多媒体教室可以同时容纳300余人,给大家提供一个有保障的学习环境;

总校有专门的学生宿舍,免费停车场,方便外地学员前来就读学习

我校地理位置靠近川外,学习氛围浓厚,可以利用闲暇时间去锻炼身体,品尝美食;学籍两年内有效,在这期间可以重复插班学习,包学会。学完的学员可以推荐就业。

咨询报名地点:

总校:重庆市沙坪坝烈士墓壮志路49号建达学校(外地学员可住宿)

沙坪坝校区:沙坪坝三峡广场庆泰大厦8-10

江北校区:江北观音桥步行街北城天街阳光城大厦25楼

南坪校区:南坪万达广场4号写字楼25-21

人工智能发展现状及应用

导读:

人工智能(ArtificialIntelligence),英文缩写为AI。人工智能被认为是第四次科技革命的核心驱动力,目前许多领域都在探索AI技术的应用,可谓方兴未艾。那么什么是人工智能,它经历了怎样的发展历程,现阶段发展状况如何,它有哪些应用。本篇文章就为大家做个简单分享。同时也会为大家详细介绍一下百度的AI技术体系。

 

本文主要内容:

1.人工智能概念

①智能

②人工智能

2.人工智能的发展

①人工智能的发展历程

②AI是中国的机遇

3.AI与百度

①百度AI的发展历程

②百度AI的技术体系

③百度AI的场景化应用

 

 

1.人工智能概念

1.1智能

谈到人工智能,需要首先理解“智能”一词的具体含义。智能是指人类才具有的一些技能。人在进行各种活动的过程中,从感觉到记忆再到思维产生了智慧,智慧产生了人类本身的行为和语言,行为和语言统称为能力;智慧和能力结合在一起就是人工智能中的智能一词。

比如,人类的语言表达能力就是一种智能(语言智能);人类进行复杂数学运算的能力也是一种智能(数字逻辑智能);人类的交往能力也是一种智能(人际智能),人们对音调、旋律、节奏、音色的感知能力,也是一种智能(音乐智能)。他们都属于智能的范畴。

1.2人工智能

把智能的概念与人的逻辑理解相结合,并应用到机器中,让机器能更好的模拟人的相关职能,这就是人工智能。人工智能就是要让机器的行为看起来就像是人所表现出的智能行为一样。

人工智能概念,最早可以追溯到上世纪90年代初,这个时候需要提到一位科学家:图灵。

艾伦·麦席森·图灵(英语:AlanMathisonTuring,1912年6月23日—1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。

图灵最早定义了什么是人工智能,怎样去界定一个机器(或一个设备)是否具备智能。他最早提出了图灵测试(即:一个人在不接触对方的情况下,经过某种特殊的方式和对方进行一系列的问答,如果在某些时间之内,他无法根据这些问题判断对方是人还是计算机,那么我们就认为这台机器具备智能化的思维)。直到2000年左右,才真正有计算机通过了图灵测试,才实现了一个突破。在2014年图灵测试大会上,出现了一个通过图灵测试的机器(或者称为智能聊天的机器人)。这两年人工智能的高速发展,也印证了最早的图灵测试,这也让我们反向看到了图灵在人工智能定义方面做出的突出贡献。

现今,在做图灵测试时,判断这个设备是否具备人工智能,更多的还是从模拟人的角度来考量。但在当前科技背景下,人工智能需要涵盖更广的内容,它不仅仅要模拟人本身的职能,还需要具备一些扩展、替代甚至延伸的职能。

举个例子,在医疗领域,需要经常在实验室进行病毒化验,人处这样的实验环境下会比较危险,经常会出现一些事故,如果能够用机器替代人来做这些实验,这些事故就可以避免。此时,这台机器就不仅仅是在模拟人,而是在替代人,机器本身就具备了替代人的能力。

当前,很多人在担忧:人工智能的发展会不会对人类造成威胁。其实,目前人工智能还处于早期的阶段(或者称之为婴幼儿阶段),我们还处于弱人工智能时代。

当然,随着时间的推移,将来我们可能会把弱人工智能时代推进到强人工智能,甚至再往前推进到超人工智能和智能爆炸时代。但至少目前,我们离这样的时代还有非常远的距离,要实现这样的目标,需要非常多的时间积累,可能要通过几代人甚至十几代人的努力。所以大家不要有过多的担心,人工智能现在更多的还是用于服务人类,用来提高人们的工作效率。

上图引自MIT大学一位教授。

针对人工智能所覆盖的领域,这位教授提出一个观点:“我们要尽可能避免做这些容易“进水”的工作,以免被日后所淘汰掉”。

这张图水平面以下的工作,如存储,计算、甚至象棋活动等,已经被海平面淹没。在海平面边缘的工作,如翻译、驾驶、视觉和音频等,很有可能在未来的一段时间,随着技术的进步也会被淹没。再来看图上高海拔地区的工作,如艺术创新、科学研究,文学创作等,让人工智能替代人类去做这些工作,在现阶段是比较困难的。要让人工智能实现像人一样具备主观能动性,还需要比较长的时间。我们在选择工作,或者在做技术探索的时候,应该从更高的层面布局,而把那些可以被人工智能替代的工作交给计算机去做,这样我们就可以从一些重复性、冗余性的工作中抽离出来,去专门从事创造性的工作(比如艺术创作等)。

2.人工智能的发展2.1人工智能的发展历程

我们回顾一下人工智能发展的历程。

人工智能并不是特别新鲜的词,在计算机出现后不久,大家就已经开始探索人工智能的发展了。

1943到1956年这段时间,为人工智能的诞生期,期间有很多人尝试用计算机进行智能化的应用,当然此时不能称为人工智能,只是有类似的概念。

人工智能的分水岭是1956年达特茅斯会议,在本次会议上正式提出了AI这个词。

1956到1974年这段时间,是人工智能发展的黄金时代,是人工智能的第1个高速发展期,通常把这段时间称之为人工智能大发现时代。

1974到1980年这6年的时间里,进入了人工智能发展的第1个低谷,在这个低谷期,出现了非常多的问题,比如计算上的问题、存储上的问题、数据量的问题,这些问题限制了人工智能的发展。

1980到1987年这段时间是人工智能的第2个繁荣期。期间诞生了大量的算法,推动了神经网络的高速发展,同时出现了许多专业的科研人员,发表了许多创造性的论文。

1987到1993年这段时间是人工智能的第2个低谷期,期间有个词叫“AI之冬”。有大量的资本从AI领域撤出,整个AI科研遇到了非常大的财政问题,这是导致”AI之冬”的主要原因。

1993年之后,人工智能又进入到高速发展期,期间出现了许多经典案例,比如1997年IBM公司的深蓝案例,2001年IBM的沃森案例,2016年谷歌AlphaGo案例。这些案例是人工智能在应用层面的体现。

上图概括了人工智能的发展历程。

可以看到,从1956年达特茅斯会议AI这个词诞生,一直发展到现在,人工智能共经历了60多年的跌宕起伏,并不是仅在2016、2017这两年间才出现了人工智能这个概念。

从宏观上看,AI的发展历程经历了三次比较大的起伏。

第1次起伏是从1943年到1956年,首次出现了神经网络这个词,把人工智能推到一个高峰,期间出现了许多大发现。而第1次低谷使人工智能进入到了反思的阶段,人们开始探讨人工智能的应用。

第2次起伏是在上世纪80年代,期间BP算法的出现,神经网络新概念的普及,推动了人工智能又进入第2次高峰和发展。然而从1987年到1993年又进入到了了第2次低谷,这主要因为一些财政原因导致。

第3次起伏从2006年开始,由辛顿提出了深度学习的概念,把神经网络往前推动了一大步,也把人工智能推到了高速发展阶段,尤其是近几年在非结构化领域取得了许多突破(例如在语音与视觉方面),给人工智能进入商业化应用带来许多的基础性技术沉淀。

人工智能为什么会在前面的发展过程里遇到了那么多的坎坷?为什么在最近这几年会进入一个高速发展期?

我们归结了近几年人工智能高速发展的三点原因:

①算力飞跃

人工智能(尤其是深度学习),对底层计算能力的要求非常高。早期的计算受到了极大限制,从CPU发展到了GPU,使得算力几乎能达到几倍甚至十几倍量级的增长。再从GPU到TPU,计算速度能达到15~30倍的增长,使得在算力层面不断取得突破。此外,大量云资源的出现将我们计算的成本压到了最低,我们在处理海量计算的同时,也可以享受比较低的成本。再者,芯片技术的发展,使得端处理能力持续提高,这些都帮助我们在算力层面取得了很大的突破。

②数据井喷

从PC互联网时代到移动互联网时代,再到可穿戴设备的应用,都产生了大量的数据。这两年,每年产生的数据量可以达到50%左右的增长。2017年到2018年,这段时间内基本上每个月产生的数据量可以达到几十个亿的量级,数据量已经非常高。物联网的连接,能帮助我们把更多的数据采集回来,帮助我们在数据层面做更多的积累,这是数据井喷带来的积极影响。

③算法突破

近几年来,从机器学习到深度学习,算法不断取得突破。使得我们可以处理更多的大规模、无监督、多层次等复杂业务。

算法、算力、数据是人工智能的三要素,算力是骨骼,数据是血液和食物,算法就是大脑,三者不断取得突破,才能促进人工智能高速发展。

2.3AI是中国的机遇

人工智能技术的发展也促进了很多产业的发展。中国目前有非常好的历史机遇,不仅仅是在技术上有大量的积累,同时,国家也为人工智能的发展提供了非常好的政策环境。此外,市场空间、资金支持、人才储备,也都为人工智能的发展提供了非常好的条件。

通过上图可以看到,人工智能的研发人才目前还比较短缺。图上数据来源于领英在2017年所做的全球AI人才报告。以2017年的数据来看,全球人工智能专业的人才数量超过190万,在这190万人才中,美国处于第一梯队,有85万+;而中国在人工智能领域的人才积累比较少,从数据上来看,目前国内人工智能方面的专业技术人才可能只有5万+,当然这是2017年的数据,现在可能会有一些增长,但是量级也没有达到我们想象的那么大。

所以从国内目前来看,这约5-10万的AI技术人才,对比AI产业的高速发展需求,两者之间有巨大矛盾。那怎样更好的用这些人才作为突破,把人工智能方面的技术人才储备提高到百万级别。这正是整个百度(包括百度的教育合作与共建,包括百度所有对外输出的体系,包括我们今天所做的课程)所努力的方向,我们期望通过百度的技术赋能,真正的帮助人工智能取得更好的人才积累,真正培养一些在未来对人工智能行业有巨大贡献的专业人才,这是百度现在的定位目标。

AI浪潮已然到来,行业人工智能时代已经到来。目前,人工智能已经大量应用在2c和2b领域,怎么让人工智能跟具体行业有更好的接触,产生更多的积累,是我们正在重点探索的方向。

比如百度的搜索引擎,已经融入了很多AI元素。模糊匹配、拍照识图、深度挖掘检索等都应用到了大量的人工智能技术。

再如推荐系统,他会基于个人的一些喜好和历史阅读习惯来给用户做一些内容的推荐和匹配,这是很典型的结合大数据做的精准应用,实际上也属于人工智能的范畴。

再如人脸识别技术、语音技术、智慧交通和无人驾驶等,都是AI技术与行业应用的融合,并且这些技术正在不断取得突破。百度现在L4级别的无人驾驶车已经初步实现了一些小规模的量产,未来会有更多的人将真正的体会到无人驾驶给生活带来的便利。

3.AI与百度

3.1百度AI的发展历程

上图为百度在人工智能领域的发展轨迹,早在2009年,百度就开始尝试探索人工智能相关技术,直到2019年,百度用了近十年的时间布局人工智能。

2009年尝试性布局人工智能,2013年发布IDL,2014年成立硅谷实验室以及百度研究院,2015年首次发布DuerOS,2016年发布百度大脑1.0版本,同年,百度的自动驾驶技术进入试运营状态,2017年是百度人工智能技术高速发展的一年,不仅成立了深度学习国家实验室,同时也成立了硅谷第二实验室以及西雅图实验室,并且Apollo平台开始运行并对外推广,在2018年到2019年,DuerOS和Apollo平台发展到3.0版本,百度大脑发展到5.0版本。经过近十年的发展和积累,百度的人工智能技术目前处于相对领先的位置。

百度在人工智能领域领域取得的进展有目共睹,比如,百度成立了首个国家级AI实验室;2016年被美国《财富》杂志评选为深度学习领域四大巨头之一;百度的刷脸支付、强化学习、自动驾驶等技术入选MIT2017年全球十大突破性技术;在AI领域,百度的中国专利申请超过2000项。

3.2百度AI的技术体系

百度的技术体系非常全面,覆盖了计算体系、大数据技术体系以及人工智能技术体系等,在机器学习、深度学习、区块链、知识图谱、自然语言处理、量子计算等领域均有雄厚的技术积累。这些技术可以按内容划分成三个板块,第一是A板块(即AI技术板块),第二是B板块(即大数据板块),第三是C板块(即云计算板块)。这就是百度在2016年提出的ABC概念。从一开始的1.0版本,发展到如今的3.0版本,代表着百度在人工智能领域的整体布局。在人工智能领域的布局中,百度的探索不仅停留在最核心的技术上,也同时将核心技术与更多的领域相结合,如边缘计算、物联网(InternetofThings,IoT)和区块链等,得到了如ABC+区块链、ABC+DuerOS、ABC+Apollo等对外输出模式,向各行各业提供解决方案。

在A板块中,将百度大脑分成了不同的层次。最底层是算法层,包含机器学习和深度学习算法,使用百度的PaddlePaddle深度学习框架提供算法层的基础支撑;算法层之上为感知层,感知层可分为对声音的感知和对光的感知,其中,对声音的感知主要是语音技术板块,对光的感知主要是图像技术、视频技术、AR/VR等技术板块;在感知层之上是认知层,认知层更多的是处理人类听到和看到的内容,对其进行深度理解,深度理解需要自然语言处理(NLP/NLU)、知识图谱等技术作为支撑,同时也需要积累大量用户画像数据,这些技术能帮助人们快速的理解和分析人类听到和看到的内容,并对内容进行有效的反馈,这是认知层面的技术;在认知层之上是平台层,平台层将底层的内容进行融合、封装,对外提供开放、完整的AI技术,并引入大量的生态合作伙伴,共同探讨人工智能产业的布局。

百度人工智能整体技术体系,最底层是深度学习框架飞桨PaddlePaddle,作为底层计算框架,飞桨PaddlePaddle支撑着上层场景化能力与平台中的全部板块。在场景化能力与平台中,包含了诸多场景大板块,每个大板块下又细分为多个技术板块,比如语音板块包含了语音合成以及语音唤醒等技术板块;计算机视觉技术中的OCR技术,包括传统通用OCR识别,以及垂直领域OCR的识别,可以对30多个OCR识别领域进行精准识别,比如票据识别、证件识别以及文字识别等;在人脸/人体识别板块,同时也会引入图像审核以及图像识别方面的技术;在视频板块,有视频比对技术,视频分类和标注技术,以及视频审核技术;在自然语言处理板块,有机器翻译技术;知识图谱板块,有AR/VR技术。这些板块构成了人工智能体系的技术蓝图。

近两年来,人工智能技术在各行各业中的应用不断加深,实践证明,单一的技术在落地时会受到诸多限制,所以现在人工智能在落地时可能不仅仅用到某一个单独的技术板块,而是需要先把这些板块进行融合,然后再进行实际应用,比如在拍照翻译的应用场景下,既需要用到OCR技术,同时也用到NLP技术。因此在实际应用中,需要综合各个板块的技术,把不同的技术体系和技术内容有机地融合起来,再去解决行业中面临的痛点。

 

3.3百度AI的场景化应用

2014年到2015年期间,在计算机视觉领域的部分场景下,计算机视觉识别准确率已经超过了人眼识别。而利用深度学习技术的计算机听觉识别,在2017年左右也已经超过人耳听力极限。

人工智能业务场景化不仅依赖底层的硬件资源,也需要超大规模的标注数据,这是监督学习的特点,所以在人工智能早期研究中,有评论说“有多少人工就有多少智能”,这句话在特定角度来看是具有一定意义的。在监督学习中,训练模型需要庞大的标注数据,再结合GPU强大的数据处理能力去训练特定模型,也就是从算法的层面去做更多的工作,在训练模型的过程中需要发挥人的主观能动性,更好的解决在行业应用中出现的一些痛点,构建出行业专属的模型。

比如,将人体分析技术应用到实际行业场景中时,需要结合人脸识别技术和人体识别技术。可以通过基础手势识别,识别一个人在开车时有没有系安全带、是不是在打电话等。

利用人体分析技术,可以做到行为识别,首先设定特定区域,然后对区域内的人员行为进行识别,比如人群过密、区域越界、人员逆行、徘徊以及吸烟等,在特定场景下,行为识别能够帮助用户避免安全隐患。

自然语言处理有很多相关技术,比如说词法分析、词向量表示、语义相似度、短文本相似度、情感相似度分析等。这些技术用在不同的应用场景下。

在公检法系统应用中,为了避免出现非常严重的问题,如同案不同判,具体解决方案是当诉讼呈递给法官时,根据当前诉讼内容在公检法系统中寻找历史上类似的案件,参考历史类似案件的判决,给法官提供判案依据。

在媒体领域应用中,对基础的财经类新闻,可以由机器进行新闻文章的编写,即机器写作。这些技术都是基于NLP在相应领域做的智能化应用,可以让编辑或记者从重复性的工作中解脱出来。

人工智能从广义上来看,也包括大数据及云计算相关技术,这些技术也都涵盖在百度AI技术体系中。在大数据领域,主要包括数据采集、数据存储、数据分析以及数据可视化等,利用这些技术,我们在进行模型训练的时候,对数据进行科学的管理可以帮助我们提高模型训练效率。

百度AI技术体系也提供算力层面的支持,通过GPU服务器以及FPGA服务器提供的算力,更好的解决应用层面的问题。

百度AI就是这样一个从基础层,到感知层、认知层的完整体系,为多行业、多场景提供“一站式解决方案”,力求实现“多行业、多场景全面赋能”。

回顾

本篇文章,我们和大家分享了人工智能的相关概念,人工智能的发展历程,从中也可以看出AI是我们的历史机遇。同时本文也为大家详细介绍了百度的AI技术体系,经过10余年的努力,百度AI已经形成从基础层,到感知层、认知层的完整技术体系,为多行业、多场景提供“一站式解决方案”,力求实现“多行业、多场景全面赋能”。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇