购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 人工智能平台

如前所述,虽然人工智能非常重要,可以提升已有业务效率,也可以催生出新的业务或产品形态,但是人工智能应用又非常复杂,包含软件、硬件、算法、模型等。在开发人工智能应用时,需要经历很多环节,包括数据的获取、软硬件的准备、算法和模型的开发、模型打包和上线等,流程非常冗长。其实,人工智能应用的开发流程大多数是类似的,如都会用到类似的数据处理工具,或用到类似的硬件、软件来做模型训练。因此,将这些有通用性的组件抽象出来,形成标准化流程,并构建一套人工智能平台,就可以缩短人工智能应用开发流程,提升效率。

人工智能应用开发完之后,需要部署才能被真正使用起来。因此,需要人工智能应用部署平台,以方便部署和使用。使用者仅需直接调用部署好的AI应用接口即可使用,而无须关注底层软硬件细节,以及应对其他问题(如调用流量的变化等)。

人工智能应用开发平台面向的用户是人工智能应用开发者,而人工智能应用部署平台面向的用户是人工智能应用使用者。这两种用户之间实际上形成了一种供需关系,需要通过人工智能分享交易平台来连接。因此,人工智能平台其实分为三个子平台,如图1-2所示。此外人工智能分享交易平台上可流通的对象不仅是人工智能应用,还可以是人工智能开发中遇到的任意实体对象。无论是人工智能应用开发平台、人工智能应用部署平台,还是人工智能分享交易平台,它们的目的都是加速人工智能应用商业化的效率。

图1-2 人工智能应用涉及的三大子平台之间的关系

开发和部署人工智能应用都需要很深的技术栈,因此从技术分层架构的角度看,人工智能平台的基本逻辑架构如图1-3所示。

人工智能算法的计算有一定的独特性。很多算法(如大规模深度神经网络算法)对密集型计算要求高,而且通常计算量特别大、可并行度高,有些算法(如大规模推荐算法)对内存要求也很高。此外,由于较大的计算量和分布式需要,人工智能对硬件系统中其他模块(如存储、通信等)也带来了新的挑战。无论是云计算、边缘计算还是终端计算,都需要对硬件系统进行重新设计。类似地,软件层也需要考虑这种计算模式的变化,因此专用的人工智能计算引擎也就应运而生。面向人工智能的专用软硬件协同设计可以极大提升计算效率。

在人工智能专用计算引擎之上需要人工智能应用开发、运行框架实现更高效易用的开发(如第6章的MoXing框架)和运行管理(如第8章的AIFlow框架),并且可以很方便地调用开发和运行中所需要用到的数据、算法、知识、模型和应用等必备要素。这些可以大大降低人工智能应用开发和运行的门槛与成本。在此基础上,通过AI应用开发管理、AI分享和交易、AI应用运行管理三方面的能力就可以组成完善的基础平台。在面向上层领域(如智能制造、安防、智能交通等)具体业务时,可以基于基础平台构建面向行业的领域平台。

图1-3 人工智能平台的基本逻辑架构

因此,可以看出,人工智能平台需要提供从硬件到软件、算法工具再到云服务的全栈优化,才能够真正提升人工智能应用开发的效率。

整个人工智能平台需要同时支持端、边、云三种使用场景。在开发态,人工智能应用所涉及模型的训练(见第6章)通常需要大量的训练资源,非常适合云上完成;而在部署态,人工智能应用的计算量取决于具体场景和业务要求,有些适合云上部署,有些适合边缘或者终端上部署。

ModelArts提供了一站式人工智能应用开发、部署平台及分享交易平台(AI市场),主要对应于图1-3中的“AI基础平台层”。华为云ModelArts的总体界面如图1-4所示。ModelArts支持从数据、算法开发、模型训练到应用部署上线等全流程管理,并且支持AI的分享和交易。

如前文所述,目前常用的人工智能算法大多基于概率统计实现,所以具有一定的不确定性和概率性。例如,在图像分类场景下,任何人工智能应用都不可能实现100%的分类准确率,不确定性是一个基本属性。而传统软件应用(如Web应用、手机App等)基本都在执行确定性的操作,要么执行正确,要么执行错误,很少会出现较大的概率性误差。这就是人工智能应用和传统软件应用最大的区别。由于严重依赖场景和数据,人工智能应用也具备一系列的其他特点(见1.2.1节)。另外,人工智能应用开发本身也包括了软件的开发,因此人工智能应用的开发比传统软件应用开发更加复杂。如表1-1所示,从需求分析、产品设计、架构设计、开发、测试、发布再到运维的全生命周期的每个阶段中,人工智能应用开发和传统软件应用开发都有很大的区别。

图1-4 华为云ModelArts总体界面

表1-1 人工智能应用开发与传统软件应用开发的对比

从表1-1中的流程可以看出,为了开发一个人工智能应用,往往需要反复迭代,并且可能尝试多个算法。因此,一个人工智能应用开发的过程也是一个不断试错的过程。最终人工智能应用发布之后,这个过程才可以稳定下来。因此,人工智能应用开发除了产出一个可用的人工智能应用之外,还有一个副产品就是该人工智能应用所对应的一套开发流程模板。当需要解决其他类似的问题时,可以优先考虑复用这套模板,以尽快产出一个人工智能应用原型。

另外,由于人工智能应用开发不仅要懂软件开发,也要懂算法开发,还要有一定的业务理解,因此这个模板的价值就非常大,当后续有类似的业务场景时,其他开发者就可以利用这个模板快速进行实验,这样可以很大程度上降低人工智能应用开发的技能要求门槛,同时也可以提升开发效率。

ModelArts提供了多种通用模板(图像分类、目标检测、声音分类、文本分类等),可以基于这些通用模板快速开发出一个人工智能应用。ModelArts也进一步提供了多种专业模板(OCR、零售商品识别等),支持企业级人工智能应用的快速开发(具体请参考第10章)。开发者可在这些模板中找到最匹配自己问题的模板,并进行快速开发。

资深的人工智能应用开发者可以脱离模板,从零开始开发人工智能应用,这种开发模式更加灵活深入。但是为了能够达到更好的知识复用效果,建议资深的应用开发者可以在开发完之后形成模板,便于自己或他人后续重复利用。 Tm6uJ2E7XsqB5/pMo8laENEcOOaeHOuBCbIw6OdNZi29SF6hw6upXO82stvGqyTn

点击中间区域
呼出菜单
上一章
目录
下一章
×