回顾过去几年的上榜技术,越来越多与AI有关的技术入选榜单,例如2008年的机器学习、2009年的 Siri、2013年的深度学习、2014年的神经形态芯片、2016年的语音接口与知识分享型机器人以及 2017年的自动驾驶与强化学习等,可见AI影响之深。
但另一方面,我们也发觉,尽管AI影响范围如此之广,但仍然还只是亚马逊、谷歌等大体量企业的“玩具”以及部分创业公司的显著标签。对于绝大多数企业来说,AI 的成本高、全面部署困难等特性依然为它的落地带来不小的困扰。
基于这样的背景,有人称,AI这波来势汹汹的浪潮实在需要一个智能化的坚实“底座”来加以支撑,才能“站得住脚、走的更远”,云计算就被“首当其冲”列入了备选阵营中。那么,如何利用云计算降低AI落地的门槛?企业又当如何通过“云端赋能”,降低研发成本、加快方案迭代呢?10月27日,UCan下午茶深圳站,来自UCloud、达观数据、探智立方的技术专家们分享了他们的技术经验与实战心得。
AI公有云平台实践
AI算法依赖于大量计算资源,对于想涉猎AI的企业来说,第一步面临的就是成本压力。这其中包括服务器成本、运维成本、人员培养学习成本等。因此,如何有效降低成本,加快AI方案的试错,是每个想把AI算法产品化的企业都需要考虑的问题。UCloud深度学习开发工程师范融,就如何利用公有云的规模效应和分时租赁特性,讲述了使云用户在不改变AI算法开发流程的基础上,降低企业的AI转型门槛的方法和工具。
一般,一个AI项目的研发周期包含场景的选择、AI框架/算法的选型、训练环境/推理环境的选择以及配置,最后才是进行AI训练和推理工作。目前,业界主流的AI算法和框架非常多,如何在繁杂的组合里选择合适的算法和框架?范融分享了AI平台构建时需要考虑的五大要素:算法兼容性、平台扩展性、集群化、纵向拓展、易用性,用户可以以这五大要素为基准点,根据平台构建的目的来搭配最适合的场景、算法和框架。
基于上述的五大要素,UCloud构建了自有的AI基础平台,包含AI Train训练和AI Inference在线服务两大核心功能。如下图所示,最上层是训练日志和TensorBoard框架,下面接着就是图形化界面,这里面主要是完成一些基本的部署操作,右侧是Python SDK接口,接入层下面即为平台核心的AI Train和AI Service服务功能,最底层封装了所有的硬件和存储接入。
现场,范融以图像分类为例,详细讲解并演练了UCloud AI平台的应用。以Dockerfile打包为例,用户只需通过创建Dockerfile、编译镜像、上传镜像、下载并上传数据、即可在UCloud的AI平台山进行训练并获取训练结果。
此外,UCloud在GitHub开源了自身基于AI基础平台的公共镜像库和SDK,用户可以通过开源的SDK,将UCloud开源的镜像库打包成自身可以应用的镜像,开发者可以在本地镜像使用,也可以放在UCloud的在线服务或者说训练的平台,这些都是完全兼容的。感兴趣的同学也可以访问链接https://github.com/ucloud/uai-sdk/,进行深入了解和演练。
云计算助力人工智能快速搭建底层资源
众所周知,人工智能的入门门槛非常高,需要整理原始的数据源、购买底层服务器资源、搭建不同的算法框架、保障平台的稳定性等,这给运维和研发带来了庞大的工作量。UCloud的解决方案架构师徐强,围绕数据的整理、模型训练及在线服务等维度,探讨了何利用云计算助力人工智能快速搭建底层资源,让用户专注于自身的算法以及业务代码。
徐强认为,当今AI落地的挑战主要源于两个方面:一是基础环境的选择,如AI框架、算法、依赖环境、硬件设备、存储资源的选择等等;二是AI系统的建设,一个稳定的、可用的AI系统,不仅需要兼容各类AI框架和算法,同时还要具备平台扩展能力以及弹性伸缩能力,以支持业务规模不断扩大。
要解决这些问题,可以从以下四个方面着手:数据共享、环境分离、底层资源共享和可扩展性建设。
·数据共享:不管是AI训练还是AI推理,都需要大量的数据做支撑,对于初创企业和个人开发者而言,收集大量可用于AI训练的数据是非常困难的。为了解决数据收集的难题,UCloud基于区块链技术,研发了一款数据共享平台安全屋。安全屋首先通过云计算让用户可以把数据上传,但是用户无法下载;其次,通过区块链技术确保每个用户对数据操作进行全方面的记录,一旦发现数据泄露,即可全程追踪,并实施相应的处罚。如此,即可保证在数据所有权不变的情况下,实现数据使用权的可信流通共享。
·环境分离:环境分离可以使运行环境完全隔离,不同任务之间不会产生软件冲突。UCloud采用了容器封装和数据接入两种方法实现环境的分离 ,将不同功能的AI框架、依赖环境、硬件设备、存储分隔开来,让不同的模块实现不同的功能。
·底层资源共享和可扩展性建设:UCloud是公有云平台,底层可以提供海量的计算、存储、网络资源,并通过负载均衡(ULB)、分布式存储、动态扩缩容等技术,实现AI服务的横向扩展和纵向扩展。
文本智能处理的深度学习技术
文档资料的内容自动化处理是人工智能技术落地的关键应用之一,达观数据联合创始人张健演讲过程中,分享了在对篇幅较长的文本进行内容理解和信息挖掘过程里,如何应用深度学习技术来进行更好的分析挖掘,以及工程实践中值得注意的应用点等实践知识。
文本智能处理的应用非常广泛,包括文本分类、情感分析、分词、NER、机器翻译等领域,但不管是哪种应用,其处理过程基本上是一致的。首先需要对文本数据进行预处理,这种预处理主要是将数据转换成模型需要的形式,然后通过深度学习模型识别信息,再通过一些后处理,将信息转化为人类可以识别或者需要的结果。
在整个过程中,最重要的步骤就是构建学习模型过程,以文本分类为例,传统的机器学习技术在进行文本分类过程时,主要流程为首先选择分类器SVM、KNN、LR(不同领域成本比较高,通常需要分类算法提升效果),然后再深度学习处理文本分类任务,这过程中,输入的是序列,输出为具体要分类的标签。传统机器学习的好处是不需要特征工程构造特城,缺点是不同领域的定制优化成本高,常常需要分类算法融合提升效果。
为了解决这个问题,可以通过端到端的深度学习方式来减少大量特征工程,并使用非监督语料训练字词向量提升效果。这种方式主要是通过对词的级别、句子级别进行注意力机制处理,通过输出结合注意力机制挑选出认为重要的词,然后根据注意机制输出一个比较重要的句子,实现分类的目的。
端到端的深度学习模型可以使用非监督数据训练字词向量,提升泛化能力,同时一些模型结构能够克服传统模型的缺点,但在小数据量的情况下其挖掘效果不一定理想且调参工作量有时不亚于特征工程。
因此,在业务场景下,张健建议尽量收集并理解数据,分析问题本质,进而选择合适模型。在初始阶段可以使用传统机器学习模型快速尝试,作为baseline版本,碰到疑难问题时可以使用端到端的方式,或许会有惊喜。但具体问题还需具体实践,不断尝试才能有新的收获。
AutoML人工智能自动化模型设计与进化算法实现
AutoML是当前人工智能发展的一个重要方向,受到Google,Facebook,等诸多公司的重视。近期,在AutoML领域,特别是深度神经网络模型搜索有了很多突破性的进展。探智立方CTO钱广锐着眼于目前在机器/深度学习模型搜索方法的进展,对不同方法之间的差异进行了详细的分析,并介绍探智立方的DarwinML自动化模型设计平台底层进化算法实现、特性以及DarwinML在金融、制造业领域内的实际案例。
AutoML主要用于解决AI应用中数据特征提取和扩增、机器学习和深度学习模型合成以及模型超参调优等,其实现方式包括序贯模型优化、迁移学习、强化学习、元学习、进化算法以及基于连续假设的梯度求导方法(DARTS)等。
目前,主流的神经网络架构搜索中,进化学习(evolution)和强化学习(Reinforcement)是采用得比较多的,但这两种方法的搜索空间都是不可微的。DARTS提出了一种可微的方法,它认为可以用梯度下降来解决架构搜索的问题,效率可以比之前不可微的方法快了几个数量级。如图,每两个节点之间都连着所有的边,点和点之间所有连接的权重为alpha(加权平均,和softmax类似),alpha称作一个权值矩阵,可以通过梯度下降优化alpha矩阵。当然这个算法有也比较大的问题,它在简单的网络里面效力会非常快,但是在复杂网络系统里还有很多需要改进的地方。
一个效果好的AI模型通常需要大量的经验调优,这个过程包括:数据预处理、特征选择、模型算法的选择、调参、上线后的模型优化升级、效果评估。探智立方在这方面也做了大量的探索实践,并以AutoMl为核心技术,发布了人工智能模型自动设计平台-DarwinML 1.0。该平台以自动化机器学习以基因进化理论为设计思想,用户只需要具备人工智能基本概念,即可设计开发机器学习和深度学习模型,从而缩短建模人员及数据科学家创建模型的时间及门槛。
·首先,DarwinML 平台会提取数据的统计信息。
·然后它开始自动进行模型设计。在进化到每一代时,都会对模型进行一次评估,以选择继续演化的方向,同时防止种群,也就是所有模型的整体早熟(避免重复使用前期效果比较好的相同或者相近的模型,尽量让选择在解空间里分散化)。
·当演化到达客户的准确率或者时间限制要求后,DarwinML 平台会再固定模型结构进行一次参数精调,同时进行超参数的局部优化。
·最后,在整个过程结束后,以报告的形式将模型的特征、硬件配置、各项表现指标返回给用户。
值得一提的是DarwinML 平台是一个全生命周期管理平台,基于其基因库,平台具有自我演化、自主设计的特性,可以加快模型设计收敛速度,提供ML模型可解释性,能够无缝与生产系统对接,并对生产模型实时优化。