人工智能云平台:原理、设计与应用
上QQ阅读APP看书,第一时间看更新

1.2 人工智能云平台

近年来,与人工智能算法的突破相适应,人工智能软件工具得到了快速的发展。这些工具大大扩展了人工智能算法服务的训练生产能力,缩短了智能服务的上线、更新周期,提高了人工智能服务的生产效率。

在众多的人工智能软件工具中,一类非常典型的工具就是智能算法开源库和计算框架。除了scikit-learn、XGBoost、OpenCV等面向传统机器学习的经典算法库外,在新的智能浪潮下,谷歌、脸书、亚马逊、百度等科技公司纷纷推出了面向算法开发者的人工智能深度学习开发框架。他们推出的TensorFlow、PyTorch、MXNet、飞桨(PaddlePaddle)等开源框架拉近了人工智能理论与实际应用的距离。

然而,原生的scikit-learn、XGBoost、TensorFlow、PyTorch、MXNet尚不足以支持人工智能的全流程生产化应用,而且它们也仅面向个人开发者和研究人员,管理个体研究人员的少数计算设备资源。算法科学家不得不面对琐碎的开发环境配置和软件安装、数据共享管理等工作,并不得不小心翼翼地处理与服务器上其他同事之间的环境兼容问题。而在模型训练和智能服务封装出现后,他们往往无暇再担负对封装的算法模型服务进行上线部署的工作以及处理服务并发、监控等一系列问题。算法科学家不应该也不擅长担负过长的链条环节,而应该被解放出来,只聚焦整个人工智能服务应用全流程中的最擅长的环节——模型的设计、训练和调优。

因此,为了提升智能服务和应用的生产效率,搭建人工智能平台是极为重要的一环。它可以在能够进行大规模模型训练的云计算资源上提供面向多租户的智能学习全流程服务,提供诸如海量样本数据共享存储和预处理、多用户模型训练、资源管理、任务调度和运行监控等能力,提供人工智能生产流程的抽象、定义和规范流程,避免重复性的工作,最终显著降低用户形成生产力的成本。可见,人工智能不仅需要数据科学家研发新模型、软件工程师应用新模型,还需要兼具人工智能专业背景的系统架构师和软件工程师来建设人工智能云平台。

【定义】人工智能云平台为用户提供构建智能应用程序的工具箱。平台将智能算法与数据结合在一起,从而使算法开发人员和数据科学家能够从复杂的计算、存储设备环境配置、框架参数选择中解脱出来,专注于算法模型的设计和优化。人工智能平台对不同的用户有不同的设计考虑。门槛较低的平台提供预先构建的算法和简化的工作流,可以可视化拖曳基本模块搭建算法流程,获得最终解决方案;而更加专业的平台则需要用户具备更丰富的开发和编码知识。

开发人员经常使用AI平台来创建学习算法和智能应用程序。除了资深的人工智能算法工程师外,缺乏深入开发技能的用户将受益于平台预先构建的算法和诸如自动调整参数(以下简称调参)、模型自动构建等高级特性。

因此,一个人工智能云平台必须具备以下基本能力:

为构建人工智能应用程序提供一个算法模型设计、开发的环境;

为算法研究人员或数据科学家提供集群计算、共享存储和任务调度的管理平台,管理调度细节尽量对用户透明;

允许用户创建机器学习算法或为更多新手用户提供预先构建的机器学习算法,从而构建应用程序;

为开发人员提供数据和算法互联互通的机制,以便他们快速启动试验和任务。

人工智能平台为用户提供了便捷的机器学习工具和环境,替用户屏蔽了计算、存储以及运行环境的复杂性。这在云计算的应用场景中显得尤其具有商业价值。然而,在公有云/私有云上构建能够适配大型集群的人工智能云平台却是远比在实验室环境中构建人工智能云平台更加复杂的工程。本书将围绕构建面向集群设备的人工智能云计算平台相关技术展开讨论,为读者展现人工智能云计算平台的构建图谱。