人工智能即服务(AI as a Service)是一种由第三方对外提供的人工智能服务。即第三方公司依托云计算的优势,把人工智能软硬件资源作为一项服务对外提供,使用企业和公司可以购买这项服务来满足自身需求。
人工智能即服务对提供方和使用方都是有利的。对于提供方来说,人工智能作为一种新型的服务需求,在不久的将来具有很广阔的市场前景,提供方可以把人工智能服务作为自己的主要业务,采购一批人工智能硬件设备,部署相应的人工智能服务器,规范管理和高效利用这些软硬件资源,对外提供来创造收入。
另一方面,使用方不需要采购高昂的人工智能硬件设备,搭建自己的人工智能平台,便能使用人工智能服务,可以更加专注于公司的主要业务,而不是成为某个方向的人工智能专家。由于人工智能作为一项服务对外提供,使用方可以评估和对比多个提供方的多个人工智能方案,在降低购买成本的同时,也能使用更符合自身要求的解决方案。最后人工智能即服务可以提高使用方的战略灵活性,在企业发展的各个阶段制定不同的人工智能计划方案,针对性地使用不同的人工智能服务,既能满足阶段性的需求,也可以降低企业风险。
人工智能即服务通过web形式为用户提供人工智能服务。用户将本地数据上传至服务器,按照数据访问的频率分别存放在不同的物理存储单元中,既可降低数据存储费用,也可以提高存储介质资源的利用率。
此外,人工智能服务的提供方支持多平台和多语言的选择,例如亚马逊支持Caffe、PyTorch、CNTK、Tensorflow等多种平台使用,微软支持C#、Python、Java和Ruby等多种语言的使用。
模型在服务器进行训练,使用方可以通过Web控制台查看训练日志来掌握模型运行时的变化情况,查看后续预测结果来分析模型的性能优劣,还可以直接修改特定的超参数来继续调整和优化模型,最后将训练好模型封装为API接口进行调用。
人工智能作为一项服务对外提供,不同的提供方其收费方式亦不同。以谷歌、亚马逊和微软三家为例,下表1是其收费的异同点。
本章节简要列出谷歌、亚马逊、微软三大主流人工智能即服务提供商的服务体验,可以看出人工智能即服务使用主要包含以下几个步骤:
(1)开通账户,绑定必要的支付通道。
(2)选择存储,确定训练和测试数据。
(3)在云端训练模型。
(4)调用云端服务接口。
表1 厂商收费异同点
(1)开通方式
第一步,打开Google Cloud Platform,登录Google账号,填写个人信息。然后新建项目,填写项目名字和存储位置。
第二步,打开“storage”界面,新建一个Bucket,填写存储介质的名字和默认存储类别,以及选择介质所在的物理地址。
第三步,打开“home”界面,点击“激活Cloud Shell”,输入命令创建一个Cloud TPU资源,这个Cloud TPU会使用对应版本的TensorFlow作为机器学习的框架,当Cloud Shell的“username@project”变成“username@tpuname”之后,表示成功登录。
(2)训练和测试过程,以MNIST数据为例
第一步,在Cloud Shell输入命令下载并解压MNIST数据集,此时数据集并不在指定的Bucket中,还需要输入命令将其上传到Cloud Storage。
第二步,在Cloud Shell输入相关命令运行MNIST模型,包括训练和测试过程。
(3)清除资源
项目完结需要删除TPU资源时,首先先断开与Compute Engine VM的连接,再删除Compute Engine VM和对应的Cloud TPU资源,可以输入命令查看当前实例信息,检查上述两项是否成功删除,最后删除存储空间Cloud Storage Bucket。
(1)开通方式
注册Amazon Web Services账号,填写信息
(2)训练和测试数据,以预测购买商品的潜在客户为例
第一步,从Amazon云服务官网下载样本和测试数据,保存到本地,并上传数据到Amazon S3控制台。
第二步,在Amazon控制台上选择数据存放位置,并输入存储分区名字和设置权限,最后再输入数据字段信息,完成数据源的建立。
第三步,在Amazon控制台上新建ML模型,输入ML模型的基本信息和设置。如果要监控模型训练的过程,可以在控制台设置模型AUC性能指标;如果要查看潜在用户为特定比例对应的数值,可以设置预测的分数阈值。
第四步,在使用Amazon ML模型进行训练时,可以生成两种预测类型,一个是实时预测,另一个是批量预测。对于实时预测,可以在控制台上提交一个测试样本,获得当前模型的预测结果;而批量预测,可以在控制台上提交一定数量的测试样本并查看其对应的预测结果。
(3)清除资源
首先在控制台上删除样本数据和测试数据以及对应的temp文件,然后删除对应的批量预测的数据,最后删除训练的ML模型。
(1)开通方式
登录Azure官网注册并登录账号,使用Jupyter Notebook设置开发环境,导入Python程序包,从config.json获取信息并连接到工作区,创建远程计算环境Azure Batch AI群集作为定型环境。
(2)训练和测试过程,以MNIST数据为例,这里全部使用python代码,也可以使用C#,Java,PHP和Ruby等
第一步,下载MNIST数据集,并保存在本地,然后上传数据到云存储分区。
第二步,利用Notebook编写代码建立模型和加载数据。此时脚本未运行,存储位置在Azure工作区。
第三步,创建Azure Batch AI群集对象,包含脚本目录,脚本所需参数以及必要的Python包,运行该群集对象创建模型并加载数据,进行训练和测试。
第四步,在控制台上可以查看群集运行进度,显示运行结果。模型训练完成后,可以注册模型,用于后期查询、检查和部署该训练好的模型。
(3)清除资源
在控制台上选择删除包括集群在内的所有资源。
随着AI技术的发展以及用户需求的增加,人工智能即服务未来会获得更大的发展,会呈现以下一些特点:
(1)人工智能即服务会成为主流云计算服务提供商的选择。人工智能的普及必然会让更多的用户尝试人工智能技术,在初期阶段使用云服务是一种便捷的选择,无需采购大量物理集群,并且能够快速体验人工智能技术。
(2)支持主流人工智能计算平台和常用编程语言。不同的用户习惯的人工智能平台往往不同,尽管每个云计算服务提供商有自主研发或更加擅长的平台,但考虑到用户需求,每个云计算服务提供商还是会提供多种人工智能平台,并提供多种编程语言供使用。
(3)使用者相对碎片和轻度使用。使用人工智能即服务的用户一般是无需长期或者没有能力采购物理集群,并且不愿意维护相应的系统。这种用户一般多为碎片化的用户,也就是临时需要使用资源,否则用户会选择更加经济合理的自主集群模式。
(4)硬件加速能力是人工智能即服务的重要竞争力。人工智能的模型训练一般需要大量的计算资源,仅依赖CPU无法满足快速训练需求。因此使用特殊硬件如GPU、TPU、FPGA会称为人工智能的重要选择。