在上一篇文章中,小编为您详细介绍了关于《vivoX系列新影像旗舰官宣:6月1日拭目以待》相关知识。本篇中小编将再为您讲解标题百度算法大牛35页PPT讲解基于EasyDL训练并部署企业级高精度AI模型【附PPT下载与实操视频】。
原标题:百度算法大牛35页PPT讲解基于EasyDL训练并部署企业级高精度AI模型【附PPT下载与实操视频】
出品 | 智东西公开课
讲师 | 百度AI开发平台高级研发工程师 饼干老师
提醒 | 关注【智东西公开课】订阅号,回复关键词 AI模型,即可获取课件。
导读:
数据不足的情况下,我们可以利用数据增强的方式进行弥补;训练效率的问题,可以通过预训练模型+迁移学习的方式节省训练时间;而在整个“炼丹”的过程中,我们也可以通过超参推荐实现自我优化,减少人工调参的成本;同时加上灵活的部署方式,可以实现高精度AI模型一站式开发与部署。
在5月9日晚7点的高精度AI模型公开课百度EasyDL专场中,百度AI开发平台高级研发工程师饼干老师,为大家系统讲解企业在AI模型开发中的难点,以及针对这些难点,百度EasyDL专业版又是如何解决的。
本次专场在课后有作业评选活动,5月17日前,登录百度EasyDL官网,使用EasyDL专业版训练模型-CV方向(图像分类、物体检测),有机会获得超值奖品。感兴趣的朋友可以扫描文章底部海报里面的二维码提交作业。
本文为此次专场的实录。
正文:
大家好,我是来自百度的饼干老师,目前负责EasyDL经典版、EasyDL专业版、EasyDL零售版的一些相关开发工作和算法调研工作。
今天的课程主题为《基于EasyDL训练并部署企业级高精度AI模型》。本次讲解的内容分为下面几个部分:
1、企业在开发与部署AI模型中面临的挑战
2、AI开发平台EasyDL介绍
3、EasyDL技术原理解析
4、脚本调参和Notebook开发方式介绍
5、EasyDL企业应用案例
6、实操:饮品检测模型训练、调优与部署
1、企业在开发与部署AI模型中面临的挑战
目前各行各业都需要AI的落地,但是在落地的过程中,往往需要定制化地开发AI模型。在一次联合调研过程中,我们发现约86%的市场需求需要定制化开发业务场景下的AI模型。这里画一个重点,是“定制”这两个字。
百度的AI开放平台已经提供了一些通用的接口,但是这些通用接口只能满足一部分的需求,并不能满足所有的需求。比如科研机构的野生生物识别,这是属于一个细粒度图像分类的问题;还有工业上统计原材料的数量、或者说统计工业上的一些瑕疵;物流方面的包裹分拣;安防方面的厨师帽检测、安全帽施工检测;零售方面,统计SKU的数量、计算分销率、或者统计货物在货架上的占比等等。
然而在定制AI模型的时候,我们会遇到一些困难和挑战。数据采集与标注的成本非常高,而且由于大部分的开发者缺少训练模型的经验,导致整个模型迭代的优化时间会很长。其次我们需要将训练好的模型快速与业务系统紧密结合,因此在工程中的模型部署环节也需要花费很大的精力。
总体来说,目前定制AI模型面临着成本高、项目效果无法达到预期等问题。
2、AI开发平台EasyDL介绍
下面是第二部分,EasyDL的介绍。
EasyDL是一个企业级的一站式AI开发平台,同时支持定制化的训练模型。EasyDL为企业、以及个人开发者提供了AI模型开发中的全流程功能支撑,面对不同的群体提供多样化的产品形态。多样化的产品形态,包括EasyDL经典版,帮助零算法基础的用户定制高精度的AI模型;专业版,提供可编程操作,帮助开发者更加灵活地进行AI模型开发;零售版,结合零售场景中的数据、算法,做了一些场景优化和增值服务。
EasyDL底层基于百度自研的飞桨PaddlePaddle深度学习框架实现。支持图片、文本、视频、音频等输入数据。依托飞桨核心框架,提供数据预处理、模型训练、部署以及serving服务。目前提供的服务方式有4种:
1)公有云API:用户可直接调用百度云提供的API进行使用。
2)设备端SDK:做移动端、端设备、以及嵌入式的一些同学可以考虑使用设备端的SDK进行服务部署。
3)Edgeboard/十目软硬一体:目前我们所有的算法都会去优先适配这两款软硬体的设备。
4)本地服务器部署:针对一些有本地化、私有化部署需求的同学,我们提供本地化服务器部署的方式,同样可以达到serving的效果。
-EasyDL经典版
EasyD经典版是2017年11月份推出的全球第一个AI定制化开发平台,目前主要提供图像分类、物体检测、图像分割、文本分类、声音分类、视频分类等功能。其适合AI基础比较薄弱、或追求高效率开发的企业及个人开发者。
-EasyDL零售版
在经典版的基础之上,我们推出了零售版。提供结合了零售行业的数据、算法、工具等一些服务。其次,我们推出了一些增值功能,比如说SKU Cloud、货架拼接、智能排成、翻拍识别,门头识别等。
举个例子,比如说SKU Cloud,我们已经提供了一个1500类日常化品类的API ,在满足场景的情况下,可以直接使用提供的标准化API。如果有其他需求,则可以通过EasyDL零售版平台训练满足实际零售场景需求的SKU模型。该版本适用于有商品识别需求的零售行业企业或者服务商。
-EasyDL专业版
为了满足用户的深度编程、深度调参等需求,去年我们推出的EasyDL专业版。其中内置了百度自有的海量数据训练的预训练模型,目前在CV和NLP领域已经提供了多项的功能。其中在NLP领域,我们预置了百度自研的业界效果最好的预训练模型ERNIE和多种NLP经典算法网络。ERNIE在中英文的16个任务上超越了业界最好模型。2019年底,ERNIE以历史上首次超越90大关的成绩登顶自然语言处理领域最权威的GLUE评测榜单。之后在SemEval 2020 中摘得五项世界冠军。目前通过EasyDL专业版助力业界开发者,模型效果和开发效率全面提升。
最后介绍一下EasyDL的平台特性。与普通的机器学习工具相比,EasyDL从数据、模型训练、到最后的服务,提供了一站式的解决方案。我们面向用户也很广泛,可以是零基础的小白(经典版),也可以是有一定数据处理能力的开发者(专业版)。同时也提供了比较全面的定制化开发能力,包括分类、检测、分割、文本、声音等。在服务端我们提供了端云一体的解决方案,轻快即用,并内置大量的预训练模型。
3、EasyDL技术原理解析
然后我简单介绍一下EasyDL的一些基本技术原理。
在业务层面上,我们主要提供了数据集管理、模型训练、模型评估、模型校验和模型发布的功能,其底层依托于飞桨PaddlePaddle平台。
在工作流这一部分,我们自研了AI Workflow,可以实现数据服务、数据预处理、模型训练、评估模型、模型部署的整个Workflow定制化。
下面我们先介绍一下AI Workflow,然后主要讲一下数据服务,数据预处理和模型模型训练这三个部分。
-AI Workflow
提到模型训练,我们知道,不仅仅是训练这一个步骤,一般的深度学习都会经历从数据获取、数据预处理、模型训练、模型评估到最后服务部署的流程。EasyDL的AI Workflow,融合了传统的机器学习工作流和大数据处理,其中,数据获取是基于MongoDB和HDFS,数据预处理和评估是基于Spark这个大数据处理框架,模型训练是基于飞桨PaddlePaddle这个深度学习框架,serving也是基于k8s构建的一整套运维系统。
AI Workflow的基本功能就是要把这些架构完全不同的任务组织成工作流,自动完成流水线任务。进一步讲,AI Workflow还需要对任务进行并发管理、优先级管理、任务重试、支持幂等性等功能,此外,还需要对底层资源进行调度和分发,从而保障流水线可以高效有序地完成。
-数据服务
数据服务主要包括数据管理、智能标注、和数据闭环,其都可以通过EasyData来完成。EasyData是近期上线的智能数据服务平台,提供数据采集、标注、清洗、加工等一站式数据服务,助力开发者高效获取AI开发所需高质量数据。接下来重点介绍一下数据服务中的智能标注。
智能标注,只需要用户标注30%的数据就可以训练出与全量数据训练效果相等的模型,其标注的流程如下图右上角所示。当我们有成千上万的数据时,如果全部通过人工标注的方式进行标注,那么需要的工作量很大。所以我们可以先标注少量数据,启动智能标注,然后进行模型训练,通过少量数据训练出的模型自动对其他数据进行标注,而人工只需要对数据中的难例进行判断,如果符合标准,则可以直接进行标注,不符合标准,则启动下一轮智能标注的循环,极大地减少了人为的工作量。同时整个工作流也都可以通过AI Workflow来直接完成。
举个例子,如左上角所示。我们进行一个猫狗数据集的标注,如果利用模型进行识别,第一张图片中的小猫我们可以很容易地判断出它是一只猫,属于Easy Case,而后面两张图片就比较难识别,可能会被识别为其他的类别,属于Hard Case。所以,简单的Case是可以通过模型进行标注,而一些多样性比较大的Case还是需要人为进行标注。从最终标注的结果来看,我们大约只需要30%的标注数据,便可以达到100%标注数据所达到的效果,节省了70%的人力成本。
-数据预处理
我今天主要介绍一下数据预处理中的数据增强。举一个简单的例子,如下图所示。
比如说在我们采集到的数据中,品牌A的车头都是朝左,品牌B的是朝右,那么对于第三张图片,模型是识别为品牌A、还是品牌B呢?会不会将车牌识别为一样的呢?还是会识别车牌的朝向呢?
为了增强其类别的置信度,我们可以对原图进行数据增强,比如水平翻转、180度翻转、和270度翻转等。当然,翻转只是数据增强方式的一种,还有其他如抠图、裁剪等方式。
不同场景下所需要的增强方式是不同的。对于开发者来说,需要了解数据集与应用场景,以及每种数据增强方式的不同参数设置。
在EasyDL专业版中,我们提供了一种超参自动选择搜索的自动数据增强方式。在实际的操作过程中,我们会针对开发者提供的Training Data,提供预设置的增强策略,通过对策略和超参搜索,选择与该数据集特性强相关的增强策略,对数据进行有益地增强。
-模型训练
最后是模型训练部分。模型训练包括了四个部分,Transfer Learning、AutoDL、自动超参优化和分布式训练加速,下面我将为大家一一介绍。
Transfer Learning,所谓迁移学习,就是事先用一个大数据集训练出一个模型,然后用这个模型再接受用户自定义的小数据集来进行训练,对其中网络结构参数进行微调,从而使模型对于用户的小数据集更加敏感,达到好的识别效果。
那么为什么需要用迁移学习?我从0开始训练一个模型不行吗?一个是考虑用户数据稀缺性:从头训练一个深度神经网络模型,很依赖大规模的标注数据,但考虑到行业数据的收集难度和标注成本,非常难以获得。使用迁移学习的另一个原因是考虑训练时长:从0开始训练,往往需要几天甚至几周,但使用迁移学习,训练耗时只需要几小时甚至若干分钟,可以加快用户的模型迭代效率。
当然,迁移学习不是万能的。要使用迁移学习,前提是要保证源领域与目标领域的相似性,这里的源领域是指预训练模型所使用的数据集,目标领域指用户自定义的数据集。迁移学习要求它们具有相似性,只是目标领域更具定制化和细分化。
举个例子,比如你会骑自行车,那么应用迁移学习,相信你也能骑电动车,但若是你会骑自行车就想直接开汽车,那迁移学习做不到,因为差别太大了。因此,EasyDL是使用了百度自有的海量数据进行预训练,对用户涉及到的各个应用场景,基本上都会有涉及,所以才能满足这个前提。
AutoDL,利用强化学习设计深度学习的框架。具体来说,随着硬件、应用场景和模态的多样化,我们使用的模型结构也需要不断进化。那在设计新模型的过程中,这个搜索空间极为庞大,想要尽可能探索这一空间,就必然要从手工设计模型,转向自动化生产模型。我们实际使用到的技术就是利用深度增强学习完成模型设计,系统由两部分组成,第一部分是网络结构的编码器,第二部分是网络结构的评测器。
编码器通常以RNN的方式把网络结构进行编码,然后评测器把编码的结果拿去进行训练和评测,得到包括准确率、模型大小在内的一些指标,反馈给编码器,编码器进行修改,再次编码,如此迭代。经过若干次迭代以后,最终得到一个设计好的模型。
自动超参调优,做过算法调优的朋友都知道,人工调参,需要设定一组超参数,跑一组实验,然后根据结果再来调整超参数,这个过程会非常耗时费力,因此我们需要转向自动调参。要做自动调参,就要涉及到超参推荐策略,也就是根据上一组实验结果的反馈,推荐出下一组实验的超参值,从而让任务自动化。具体的推荐策略简单的有Random, Grid(网络搜索), 具有推荐算法的策略常见的有TPE,bayes等。
此外,自动超参调优还有搜索方式的优化。普通的搜索方式就是并行独立搜索,即并行跑多组实验,全部跑完后收集结果,哪组结果最好,就认为哪组超参最优。另一种搜索方式是叫PBT,它也是并行搜索,但不独立。
这里我举例来说明,如上图中,有两个并发进行的实验,初始时传入的超参和模型权重都不相同,经过一定轮数的训练之后,到第2步会对两个worker效果进行对比,发现worker 0效果比较好,就进行第3步,把workder 0的权重和超参值复制到worker 1,worker 0本身的训练不受影响,而对worker 1,还要进行第4步,对复制过来的超参值加入一些扰动,使之与worker 0参数有所差异,再继续训练。这样就相当于在训练过程中把worker 1上原始的超参值给过滤了,并在好的超参基础上进行进一步实验,从而加快搜索效率。
分布式训练,前面几个模型训练阶段的优化都是针对模型效果的,其实在训练效率上,我们也有优化加速,那就是使用DGC深度梯度压缩机制。
DGC是由清华大学和斯坦福大学共同发表的论文中提出的一种方式。在分布式训练的过程中,各个Worker和ps,或者是Worker之间(这与分布式方式相关),都需要进行大量的梯度数据同步,而数据同步会花费大量带宽,对训练环境要求较高,同时耗时也高,尤其是随着训练节点数的增多,通信开销也将成倍增长。基于此,DGC算法就是挑选出实际有效的梯度数据,并进行压缩,从而大大减少了分布式训练时的通信开销,在论文中,DGC在保证精度未受损的情况下,压缩比例达到了270倍至600倍。
飞桨PaddlePaddle从1.6.2版本开始也集成了DGC的优化机制,我们也即将应用到EasyDL专业版中。可以看下我们做的对比实验,在v100上dgc机制加速明显,其中两机两卡单batch加速9倍、两机四卡单batch加速7.4倍。分布式的DGC已经在4月份的EasyDL专业版上使用,大家可以在训练的时候选择多节点方式进行训练。
4、脚本调参和Notebook开发方式介绍
下面给大家介绍一下EasyDL专业版的两种开发模式,脚本调参和Notebook。
脚本调参,进入到脚本调参页面之后,首先是数据集的选择。数据集可以是提前准备的数据集,包括分类、检测。
然后是数据增强策略的选择。我们这边支持自动搜索,如果选择默认配置,我们对每一个模型都会选择一个比较通用的增强策略。选择手动配置的话,用户可以根据自己的行业经验去配置增强策略。针对不同的场景,不同的想法,都可以通过手动的方式进行配置。
其次,是网络的选择。我这边选择的是一个Faster R-CNN网络,你也可以选其他如YOLO、RetinaNet等网络。并且同时支持Python2、Python3两个版本。
重点来了,如果你想修改这个模型的结构,或修改一些模型参数,你可以在这个脚本编辑里面点立即编辑进行编辑。上面暂时并不支持Backbone 的修改,就是说ResNet50+FPN是不能修改,但是box head,就是头部是支持修改的。
还有Batch size、Input of size、Epoch、以及学习率的变化、Learning rate的变化都是支持修改的。包括对于检测任务来说,一些uncle base方法、基于锚框的训练方法,我们都可以设置一些关于锚框的一些训练参数。
Notebook,是一个类似于Jupyter的开发工具。左侧的这几个文件都可以通过本地上传,数据集也可以本地上传,也可以直接用EasyDL把之前上传过的数据集直接拉到这个训练环境当中。你可以把这个环境理解成属于自己的一个高性能GPU服务器终端,我们在Notebook 里面,为每个Notebook 的用户内置了一个32GB、V100的GPU,这个性能是很好的。大家可以用这个Notebook去实现一些简单的模型,这就是完全把主动权交给大家。
如果说之前的EasyDL经典版是一个黑盒,那专业版的就可以修改一些参数,通过Notebook的开发模式,用户可以自己实现模型的定义、数据的读取、数据的增强、以及最后的预处理。大家如果有新的想法,都可以去体验一下我们的Notebook 。
5、EasyDL企业应用案例
最后再讲一些在EasyDL上经典的应用案例。
这是一个扶贫办的案例。汉中扶贫办使用EasyDL训练房屋类型、医学条件的识别模型,并将识别模型加入到他们的平台系统中,极大地提高工作人员的效率。以前并不能做到家家户户地检查,而通过这种方式,就可以做到全覆盖检查。
这是一个工业喷油嘴瑕疵的质检。柳州源创公司使用EasyDL物体检测的模型去训练它们工业喷油嘴瘕疵的检测模型,大约每年可以节约60万的成本,检测效率提升了30%。中间那个图片是他们的解决方案,其中的检测模型是用到了我们检测的模型。
零售场景中通过定制化的商品检测去进行陈列审核。惠合科技采用了EasyDL训练的商品检测模型,抽取了3000家零售门店并接入陈列审核,那么品牌商就可以通过这种方式计算到商品的排列占比、分销率等。从前是通过人力去观测这些数值,而现在通过AI的方式,让人员的效率大大提升了30%。
这个是我们内部的一个Case ,百度作文的小程序。通过EasyDL文本分类,训练识别出作文中的一些修辞手法,并且将修辞手法作为一个参数来对文章质量进行打分,然后再做一些排序,将文章质量高的结果排在前面,进行推荐。
6、实操:饮品检测模型训练、调优与部署
在这个环节中,我将为大家实际演示一下EasyDL平台的使用方式。具体的演示内容大家可以点击下方的视频进行观看。游戏网
编后语:关于《百度算法大牛35页PPT讲解基于EasyDL训练并部署企业级高精度AI模型【附PPT下载与实操视频】》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《谁说充电桩运营不赚钱?》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器