当人们对一个新生事物不了解的时候通常会有两种态度,一种觉得与自己无关,所以不想了解,另一种是觉得与自己有关,但看过去却觉得充满神秘。
AI(Artifical Intelligence)人工智能带来的恐惧都写在了科幻电影里,人工智能的能力正在渗透到我们的生活,当你觉得有一天手里的工作可能会被人工智能取代的时候,那么,你便是相信人工智能与你有关系。
人工智能其实是一门数据科学,做的是一件并不难理解的事儿:根据现有的数据,总结出规律,然后当新的数据出现的时候,做出判断,分析或者是预测,这就是人工智能,就是要找出数据之间的联系,没人能说清楚为什么有这种关系,这不是人工智能要解决的问题。在不了解人工智能的人看来,这就是黑匣子,因为黑匣子自己也不知道自己在做什么。
以最基础的线性回归来看,我们看这样一个例子,说一个人去银行贷款,提供了若干条个人信息,比如有两条重要的信息,年龄和工资水平,还有最终贷款了多少钱,这三个数据就是一条可用来做预测的数据,如果能找到几十万个这样的人,提供几十万条这样的数据,那么,机器就知道,如果未来又有一个人去贷款,并且能给到这些信息,机器就能预测出来,可能会得到多少的贷款。
这就是人工智能。为了得到更精准的预测效果,训练的过程需要不断反复,调整参数,使得预测值和真实值的差距越来越小。
人工智能离我们有多远呢?在AI开发者看来,一点都不远,大部分AI开发者的工作时间并不长,可能因为群体比较小,也没有人太照顾这些人的感受,随着新一波人工智能的热潮,人们发现手里的数据多了,电脑运算的更快了,但实际上,这些AI开发者使用的工具并不顺手。
AI开发者面临的核心问题有两点,一个是慢,可用来训练的数据获取的慢,处理数据慢,另一个是贵,计算力太贵,显卡太贵。这是华为郑叶来在全联接大会上总结的两个字儿,基本涵盖了现实问题。
慢的原因在于,人工智能首先需要大量的数据,很多数据并不具有直接拿来做训练的价值,经典的几个数据集宝库泰坦尼克号的获救数据集,加利福尼亚住房数据等,都是十分规整的数据,数据处理有一种是去除明显无用的数据,记录错误的数据。
还有一大类是做数据标记,比如你要告诉机器,一张图片上的是什么,以文字的形式标记出来,不然机器不知道这是什么,机器学习的算法分析图片的数据,然后建立与标记内容之间的联系,这就是训练的过程,但这需要非常大量的数据处理工作。
为了获得这样的数据,世界上出现了数据标注员这样的工种,在国内工资大部分在5k到10k之间,在国外出现了专门的数据标注网站,最著名的国外有Amazon Mechanical Turk,很多人可以全职做数据标注工作,像滴滴抢单一样的节奏,每天工作八小时,干得好的可以靠这个来养家,这是一个新兴的职业,背后是对可训练的数据的实际需求在支撑。
慢还在于需要不断反复调参数,调batchsize,调learning rate,调steps等等多种参数,当然还要选择合适的算法,每一次调参的结果人为来完成,过程可能非常耗时,计算力不足导致模型训练过程进行的太慢,更昂贵的可以更快,但问题就是太贵了。
在一个就是贵,确实,常用于AI计算的GPU、FPGA、ASIC从购买到真正用起来还是太贵了,AI的基础资源太贵了,除了平台还有电费,专用的AI处理器致力于专门做这一类负载,效率会跟高,新的AI芯片一定要做到这点,否则没什么存在的意义。在全联接大会上,华为也发布了AI芯片,具体用起来如何还要等到明年Q2以后吧。
如上文所说,数据标注很麻烦,费时费力费钱,郑叶来说数据的准备时间占整个开发时间点50%,有很多数据也在说,开发者95%以上的时间在做数据处理的工作,然后在做模型训练,最后需要部署到实际环境中,整个过程还是比较麻烦的。
华为推出了一个叫ModelArts的AI开发平台,类似于AWS的SageMaker,数据处理,训练模型,发布模型,最终到应用都可以在这个平台上完成。
没有这样的平台的话,开发者只能在jupyter里做实验,在eclipse或者prcharm这样的ide里写python代码,还要在系统中配置各种框架,Tensorflow,Caffe,PyTorch等,还要配置各种依赖,这些麻烦事儿,都是平台应该做的。
数据处理阶段,ModelArts可对数据采样和筛选,预标注,缩减需要标记的数据量,降低工作量。
训练阶段主要就是调参,一直有人说,人工智能这么厉害,为啥训练人工智能的人不能解放自己让人工智能来训练人工智能呢?其实这是可以的,就像牧羊人的牧羊犬一样,用犬来看羊,帮人预测数据参数,帮人推荐算法,是逻辑回归,决策树还是随机森林,贝叶斯,华为ModelArts能做一部分自动化的调参,还能推荐一些算法,部署的时候可以一键部署到多个平台环境中。这些功能初级开发者可以用,熟练的开发者也能用到。
其实这样的平台应该具备很像扩展的能力,很多人工智能框架都是单机的,云环境要能水平扩展,多台机器分配这些工作,训练时间就能缩短,做法可以参考hpc集群任务调度的软件堆栈。
当开发AI开发完成的流程走完之后,现在留下这样积累素材,未标注的数据,训练前的标注数据,训练后的数据,当然还有数据模型,API管理平台。整个就是一个AI开发的大管家。
前几天一直在说华为的AI战略中芯片的重要性,虽然芯片很重要,但是华为在AI领域的基础服务提供的倒也应有尽有,今年上半年笔者注意到AWS推出了一个叫Deeplens的智能摄像机,这次华为全联接大会上,华为也推出了一个叫HIlens的视觉开发平台,一台具备AI能力的摄像机,连名字都很相似,明显对标Deeplens。看这个名字,就知道用的是海思(昇腾)的处理器,另外,华为对硬件更了解,这点从华为手机就能看出来,做起来跟AWS的相比很可能还有不少优势。
华为全联接大会现场,华为还介绍一款线下开发套件Atlas 200,能做到线上线下一致体验,就是说可以不联网,连到这个设备来数据处理,开发和训练以及部署的功能,开发套件大家都很熟悉了,类似的有物联网开发的zigbee,arduino以及树莓派开发套件,华为的这个开发套件有一个外壳,用的也是华为的海思处理器(昇腾)可能是市场部为了美观需求所以才这么玩弄的吧。据了解,这一开发套件也已经开放给高校以及企业客户在用了。
这是华为给AI开发者的服务,其实,AI是一种平民技术,除了算法以外,AI入门的门槛不算高,相关的教程也很多,如果想成为一名AI工程师其实并不难,难的是结合应用场景来做AI开发。
消费级市场上的用户在感受互联网公司的人工智能服务,如今看来应用最广泛,最成熟的就是用在火车站的人脸识别、小区停车场的车牌识别等图像类服务,企业级市场上,许多巨头跟华为一样,也都各尽所能地推出了一些人工智能服务。
包括华为云,AWS,阿里云,Azure,Ucloud等众多云服务厂商都推出了AI服务,最基本的都有基础计算资源服务,华为云刚推出的类似AWS的Sagemaker的服务则更为细致,除了这类服务,一些AI相关的公司也在推广人工智能培训课程,谷歌推出了一个基于Tensorflow的叫Machine Learning Crash Course的在线学习课程,NVIDIA 深度学习学院 (DLI)的在线学习服务,基于Caffee,Torch,以及Tensorflow等丰富的机器学习框架,当然硬件都是NVIDIA的GPU。
相比之下,华为作为一家大型的ICT服务商,从做云计算到做AI服务,这种跨度,或者说扩展的步伐还是比较快的。人工智能时代依旧离不开硬件的支持,而且人工智能产业进一步发展和应用更依赖于硬件的发展,华为一直以来对硬件的了解是已知的一大优势,而表现出来的发展活力令人印象深刻,不断刷新人们对这家CT,IT服务商的认识。