走近EasyDL:一文教你制作自己的AI应用

当下科技

    文/当下君
    本文是《深科普:认识飞桨》的姊妹篇。上次的《认识飞桨》发表后,引发了较好的反响,甚至有出版社邀请当下君写一本关于深度学习的科普著作。
    而当下君的想法是,《认识飞桨》只是AI“深科普”系列的第一篇,接下来将推出若干篇,每篇文章说一个方面,单篇大概5000字为限。把深度学习技术及其产业应用进行深入浅出的解读,解读到几乎每个读者都能理解的程度。
    从长远来看,这样的科普工作和飞桨深度学习平台的发展是并行和伴生的,也只有如此,才能让更多人真正能认识深度学习、直接运用飞桨去解决问题。
    本文的主角叫EasyDL,它是飞桨全景图里企业版中的零门槛AI开发平台。它的作用就是让没有AI开发经验的人(并不仅仅是程序员),都可以便捷的使用这个平台开发出自己需要的AI应用。
    是的,没有看错,网上的那些“小学生开发出AI模型”的神奇案例,基本上都是EasyDL的功劳。
    不过,EasyDL的作用可不是一个“少儿AI兴趣培养工具”,它真正的价值在于让千行百业的非专业人士都能零门槛应用AI。
    没错,读完这篇文章,你立即就可以动手尝试了。
    1
    什么是低代码/零代码开发?
    东濒大西洋、大部地区丘岗起伏的美国马萨诸塞州,是美国独立时最初13州之一。世界学府哈佛大学和麻省理工学院都位于该州,而著名的全球性独立研究、数据和咨询服务公司Forrester,也发源于此。
    所谓的低代码/零代码开发平台(Low-Code Development Platform)的概念,就是由Forrester正式提出的。
    上世纪80年代,编程语言进入到第四代,也就是“结构化语言”。在这些语言中,最小的单位不再是“代码“,而是封装好的“代码块”,当编程人员要系统实现某个功能时,只需发出指令,计算机就知道要运行对应的封装好的代码。
    
    △组装“代码块”
    因为作者是个吃货,所以在这里用吃举个例子(话说,用吃来举例是本系列文的一大特点)。比如,你如果按传统菜谱来准备做一道“红烧肉”,那么你就需要临时调制由酱油、醋、糖等勾兑的“酱汁”来给菜肴“定味”。可红烧肉又是没点手艺做不出来的菜,很容易把糖烧焦。而所谓结构化语言,就是超市里出售的已经勾兑好的“红烧肉调味料”,免去了你调制的过程,做菜的时候兑水直接倒进锅里就可以,还保证色香味俱全。
    而到了2000年,VPL(可视化编程语言)出现了,它的特点是,在前述的“结构化语言”的基础上,把编程的过程用视觉可见的方式呈现,例如图标、表格、图表等形态。
    可以说,结构化是低代码实现的前提,可视化是低代码外化的界面。
    在这两种追求的相互作用下,又随着SaaS等软件的兴起,Forrester敏锐的发现——软件的开发过程中,有大量的时间成本都浪费在重复的功能编程上,于是,该机构在2014年首次提出低代码和零代码的概念——只需用很少甚至几乎不需要代码就可以快速开发出系统,并可以将其快速配置和部署的一种技术和工具。
    看上去这是一个为“懒人”准备的技术,其实,它极大的降低的不仅仅是开发的时间,还因为可视化降低了不同需求方之间沟通的成本,所以一经问世就大红特红——2021年初,海外研究机构Infolob表示,预计到2022年,低代码应用程序市场总规模达212亿美元;Gartner则预测,到2024年,应用软件开发活动中,65%将通过低代码方式完成。
    在所有的编程工作中,为人工智能(AI)编写模型是一项难度极高的工作,因此,实现低代码化对于AI开发的意义并不止于降低成本,更大的意义在于迅速的让许多没有AI开发能力的技术人员、甚至是非技术人员能够开发AI模型,迅速推广AI的应用。
    然而,给AI准备低代码开发可不仅仅像普通编程那么简单,AI的模型设计需要选择模型、超参数调整、训练、部署,还需要调度“云、管、边、端”各方资源,还要兼顾语音、图像等异构数据的处理交互,还要适应不同的部署条件,可想而知,AI的低代码化的开发难度之大。
    如果说普通编程的低代码化是让你用半成品炒出一道红烧肉,那AI的低代码化就如同让你用半成品做出一道“佛跳墙”——在同等的操作难度下,AI的低代码化对后台的要求更高。
    但这挡不住人们追求让AI应用开发加速进入产业界的决心,2013年低代码工具AutoWEKA发布,2014年的ICML(国际机器学习大会)开始举行AutoML研讨会(AutoML是自动机器学习的缩写,后文的AutoDL,即自动深度学习)研讨会,AutoML成为学术界的研究热点之一;2018年,谷歌将AutoML的概念产品化,引发产业界的全面关注。
    然而,就在谷歌发布这一产品的前几个月,大洋彼岸的北京,百度于2017年11月发布了EasyDL,百度也因此成为国内乃至全球最早推出零门槛深度学习开发平台的公司。
    2
    用AI创造AI的飞桨“精华版”
    今年的博鳌亚洲论坛2021年年会分论坛上,百度CTO王海峰分享了一个重要观点:“当前人工智能已经开始影响各行各业,我们不可能要求每个行业都有足够多的精通深度学习底层算法的专家,比如飞桨深度学习平台目前已经有260多万名开发者,这些开发者不需要每个人都从第一行人工智能的算法代码开始写起,而是直接调用这些框架”。
    这里,王海峰说的是飞桨,也包括飞桨企业版EasyDL。
    我们说过,一切深度学习框架的共性,都是为了降低开发的门槛,不需要开发者从复杂的神经网络开始编代码。
    还是那个熟悉的例子——如果直接编写模型的高阶AI大师是用画笔描摹世界的画家,那用深度学习框架开发模型的就是高明的Photoshop达人,而EasyDL的用户,就是用美图秀秀却也能做出不俗效果,且操作极度简便的普通人。
    某种意义上说,EasyDL其实可以看做是飞桨的“精华版”,它和飞桨有千丝万缕的联系。它的模型库,内置的模型是从飞桨的模型库中精选出来的;它的训练和推理过程,也是来自飞桨经验的升华;而EasyDL的底层,结合的是飞桨自研的AutoDL/AutoML技术,基于少量数据就能获得出色效果和性能的模型。
    但是,各位看官,EasyDL绝不简单的等于精简版、自动化版的飞桨,否则此文就没有写作的必要了,这是因为AutoDL理念的工程化,实在是一个难度很高的工作。
    EasyDL绝不是把模型开发的几个过程整合在一起,然后提供一些选项让开发者打几个勾那么简单,虽然从外在形式上来说,这么描述也没大错,但背后的工程化难度之高,是难以想象的。
    简单的说,EasyDL(以及各类的AutoML/DL)的共同理念,就是“用AI技术来帮助人们设计AI”,换句话说,开发一个AI模型的流程中,涉及的数据处理、特征提取、模型选择、参数调节、训练部署等环节,都利用AI能力才实现了高度的自动化,这才达到了使得EasyDL在构建深度学习模型的过程中,在很少人工干预的情况下,即可简单的被应用。
    而且,简单不等于简陋,按照谷歌CEO的说法,谷歌AutoML创造模型的水准,至少相当于一个AI专业博士生的水平,而从某种意义上来说,EasyDL还要胜过于谷歌版的AutoML,因为EasyDL设计模型的水平,就像高级工程师,这个且在后面讲。
    当我们打开EasyDL的界面时,的确给人的感觉就是极度简单,因为你所需要的模型分类已经非常详尽的开列了:
    
    △EasyDL上的模型类型
    这后面的过程其实用几句话就可以讲完,在选择模型后,系统会要求你上传数据,过程不会比给一封电子邮件上传附件更复杂;此后,通过Auto Augment(自动数据增强)、Auto Finetuner(自动超参搜索)、NAS(自动网络架构搜索)等自动化建模技术,进行模型自动调优,大大降低模型调优的成本,一个新的模型就呼之欲出了。
    EasyDL的价值,就在于用AI支持了整个流程的运转,使之可以高度实用化。
    我们看几个关键点,比如数据是一切模型的基石,但数据的标注和清洗,是一个成本很高的工作,甚至还诞生了数据标注师这样的一个职业。
    因此,EasyDL发布了EasyData智能数据服务平台,提供一站式的数据采集、数据清洗、数据标注、数据回流的完整解决方案,助力开发者高效获取AI开发所需的高质量数据。
    也就是说,哪怕你的数据只是用普通手机拍摄的照片、或者用家用摄像头在低照度下拍摄的一段视频,就像一件脏兮兮且占满油渍的衣服,扔进这台自动的“洗衣机”里,最后输出的结果简直就像高级染烫店里精心干洗熨平过的一样。
    接下来可能还要说到的是“调参”,这是一个高难度、累死开发者的活儿,但也是模型打造的灵魂。
    EasyDL实现的是自动调参,也就是说针对一个目标,自动调节超参数,这里的超参数包括batch_size、 learning_rate等等。
    这后面的技术太深,也无需展开。简单说,自动优化涉及的是一个应用数学的问题——就拿最近比较火的贝叶斯优化来说,所谓优化,实际上就是数学中一个求极值的过程,贝叶斯优化可通过一种名为「代理优化(surrogate optimization)」的方法,通过有限的采样数据点来解决这一问题。
    可能看到这里你有点想撤退了,那我们讲故事来调剂一下——
    举个例子,中国食品药品检定研究院希望做一个中草药识别的AI开发,这属于典型的定制化需求,一般来说,需求定制化越高,客户的标注数据就越有限,训练数据成本就越高。
    而EasyDL的价值就在于,帮助客户通过较少的数据,快速获得可用且准确率较高的模型。
    这种情况下,从头搭建模型不仅慢,也不符合客户的实际情况, EasyDL就会使用“迁移学习”这个概念——大家都知道,百度APP的“拍照识别植物”的功能是非常强大的,那么,迁移学习就可以把百度已经有的植物识别模型迁移到中草药识别当中去,把百度已经大规模标注的数据集用于预训练,这样就能把原本不可控的时间变成几分钟甚至更短,从而大大提高效率——事实证明,这个模型的准确率>97%、训练耗时<10分钟、单图识别速度<50毫秒。
    也许有人问,超高精度训练效果仅仅是靠迁移学习么,也不尽然。应该说,主要是靠百度的AI技术积累和业务实践, EasyDL里面的模型,是基于百度超大规模数据训练的预训练模型,包括超大规模视觉预训练模型,文本预训练模型文心ERNIE等等,这就相当于用国宴厨师的经验来做一桌家常菜,属于典型的把高维技术下放使用,你用到的每一个模型、甚至是参数,都是百度十年千亿投资在AI上的技术外溢。
    所以,EasyDL里的每一步,都充满了智慧,让AI创造AI,是EasyDL的灵魂。
    也许你会问,相比于谷歌的AutoML,百度的EasyDL如何呢?这里我们不比一些细节,而主要是看应用面——AutoML的特点是针对AI落地中的特定环节,而EasyDL的特点是真正解决AI落地的全流程实际问题,基于EasyDL训练完成的模型,可发布为公有云API、设备端 SDK、私有服务器部署、软硬一体方案,灵活适配各种使用场景及运行环境。
    也就是说,用户无需关注模型转换、适配加速、服务部署等细节,就能获得可直接运行、部署的镜像及可进行二次开发的SDK。
    可能实际的市场反馈才有说服力,根据IDC的数据,在机器学习平台方面,百度EasyDL占比强劲增长,2020年再度登上市场份额首位。数据还显示,EasyDL的用户认知度最高,也是受访者使用频率最高的平台。
    3
    我们为什么应该用EasyDL?
    这个问题你也许会觉得奇怪,难道不是为了开发AI应用而使用EasyDL么?
    答案还真的不是如此,当下君建议你,无论有没有确切需求,都要用用EasyDL。
    为什么这么说呢,有这么几个理由:
    第一,EasyDL可以让每个人都零门槛的感受到AI的魅力。让每个人都觉得AI不是遥不可及的,而是触手可及、随时可用的。
    第二,EasyDL也许会让你得到极大的惊喜。
    比如你是一个大型企业的运营人员,这样规模的企业早就实现了信息化甚至是数字化,服务器里积累的数据量,每2到3年时间就会成倍增长。
    然而根据研究,虽然这些数据蕴含着巨大的商业价值,但企业所关注、能利用的通常只是占总数据量的2%~4%左右的显性数据,远远谈不上最大化地利用已存在的数据资源,而你完全可以利用这些庞大的数据,通过某种AI的形态进行数据的有效挖掘,最终可能会产生远超出你预期的结果。
    第三,EasyDL在解决实际问题方面,可以说已经大放异彩。限制你使用EasyDL的绝不是技术能力,而是你的想象力。
    每次笔者去西藏、青海旅行的时候,都会得到再三的叮嘱——这些地方有较高的寄生虫感染风险,而且通常很不好治疗。
    微生物的世界是变换莫测的,说一个数据你可能不相信,根据临床统计,一个从业了4年的专业医生,对最常见的五种寄生虫,用显微镜人工镜检的准确率,只有80%。
    某种程度上,这是因为基层一线医疗单位,很少能有技术过硬的检验人员所导致的。
    所以有个在西藏工作的普通医生,可能是偶尔看了一次EasyDL的介绍,看到了AI在检测医学影像方面大放异彩的报道,他就想到,能不能用AI来识别寄生虫的虫卵呢?
    于是他就借助EasyDL开发了一个很简单的模型,而且手头的数据也不多。但就是这样,通过实际训练对常见5种的寄生虫卵的图片的识别后,产生出的模型测试识别准确率97%以上,现在这个模型已经在西藏农牧地区开始试点。
    EasyDL的用户并不仅仅在中国,在美国纽约州、新泽西州、宾夕法尼亚州等七个州的160个超市收银台较高,面临收银员无法目测清楚购物车下层是否有未结算的商品的实际痛点。
    然而,通过EasyDL训练的模型的精度识别准确率95%以上,部署1600台摄像头设备拍摄的照片中,EasyDL模型不仅能准确分辨出是否有未结算商品,还能准确识别残疾人购物车和儿童购物车,远超之前靠传感器判断的准确率。
    还记得前几年引发风投领域震动的“无人货架”大战么?这次大战的主要败局,其实就是因为当时根本没有一种实用程度可以进入商用领域的无人货架方案——RFID方式成本太高、重量传感方式不够精确,而纯视觉方案当时又不成熟。
    通过对无人货架大战失败经验的总结,卓因达基于EasyDL开发了纯视觉方案的无人药柜,它们的数据比较丰富,120多种药品对应着9000多张图片,通过EasyDL中非常成熟的一个类目“物体检测”,训练出了药品识别模型。由于数据质量较高,模型准确度近100%,仅需500ms即可获得识别结果,进而可以实现C端自助选药、扫码购药,24小时不间断服务,随时满足用户应急购药需求。
    如果这个技术在当年“无人货架”大战开始的时候就出现,完全可能开辟一个新的行业赛道,这也是百度信仰的——用科技让复杂的世界更简单。
    其实,如果将EasyDL的案例铺开,会发现非常非常的长,涉及我们生活的方方面面。
    这让我想到一个故事,有个日本富豪买下了马斯克火箭公司的第一张绕月飞行船票,并赞助10位艺术家与自己同行。他的原话是:“过去的人类宇宙史里,只有科学家能上太空。我希望让艺术家也能去看看太空,看看另一个曼妙的世界。”
    EasyDL也有这样的愿景和能力——让AI开发不再是高级技术人员的专利,让不会代码的人也能尝试用技术改变世界的力量。