论坛风格切换切换到宽版
发帖 回复
返回列表  提醒:不能用迅雷等P2P下载,否则下载失败标(二级)的板块,需二级才能下载,没二级不要购买,下载不了
  • 714阅读
  • 5回复

[移动软件开发]没有海量数据和AI专业知识,怎样搞出高精度AI模型? [复制链接]

上一主题 下一主题
在线shuszhao
 

性别:
帅哥
发帖
18060
金币
36486
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看楼主 倒序阅读 使用道具 0楼 发表于: 2021-06-26
在AI技术诞生以后,现在每年CVPR(Conference on Computer Vision and Pattern Recognition)大会,就很显然地在向AI倾斜。今年英伟达在CVPR上发了28篇paper,据说是英伟达参会史上的最多——不过这一点也不奇怪,毕竟英伟达现在的研究重心就是AI。 k]JLk"K  
此前我们提到过,如果统计词频,黄仁勋在这两年的GTC主题演讲中提到最多的词应该就是“AI”和“XX学习”之类的,不像以前是以“渲染”“图形”之类的词为主。在如今这个AI蓬勃发展的时代,英伟达作为个中主力,给我们印象比较深刻的是这两年造了一大堆的生词,什么迁移学习、联邦学习,什么TensorRT、CUDA-X、TAO、Isaac、Clara之类的。甭管这些究竟是干嘛用的,除了看到这些词就让人有点头疼外,其实也从一个侧面表现出了AI技术本身的飞速发展。  [:k'VXL  
^g0 Ig2'  
ysa"f+/  
u)V*o  
广告
}E=kfMu  
今年CVPR期间,英伟达有两个相关AI比较重要的发布,或者说研究成果是尤为值得一提的,分别是Vid2Vid Cameo和迁移学习工具包3.0(Transfer Learning Toolkit,以下简称TLT)——又有生词。本文主要谈谈后者,也顺便让更多的人理解,英伟达的迁移学习或者TLT是什么,以及在这个AI时代背景下,究竟有什么用。有关Vid2Vid Cameo的部分,将会在文末捎带提一提。 J\%:jg( m  
z6!X+`&  
V4"AFArI  
简单谈谈迁移学习 FFkG,XH  
^w HMKC  
电子工程专辑比较早提到迁移学习,其实是在前年的GTC报道中;今年的GTC 2021上,黄仁勋还宣布了TAO框架的发布。我们先来理一理这其中的概念。 CJC|%i3  
使用AI/ML/DL技术,需要找来一大堆数据集,并且基于这些数据训练(training)出一个神经网络模型,比如说用一大堆猫的图片,训练出一个能够识别猫的模型;在模型训练完以后,就可以拿来用了,也就是当输入一张动物图片,这个模型就能判断图片中的动物是不是猫,这个过程叫推理(或推断,inference)。 d}G?iX;c}  
而training并不是那么简单的事情,也不是每个人、每家企业都有那么多数据可以随随便便从头做个模型出来(即便有不少开源资源存在)。所以英伟达搞了各种精度比较高的预训练模型(pre-trained model),就是基于英伟达本身的能力,准备好了很多可以被立刻拿来用的模型。作为“预训练”模型,开发者还可以基于这些模型,做属于自己的定制化训练——这个精调和优化(fine-tuning)的过程就会比自己凭借海量数据和专业知识搞个模型要简单很多。这个过程基本就可以认为是“迁移学习(transfer learning)”。 lt*k(JD  
今年GTC上,英伟达高调宣布的TAO,在当时提到是“可针对英伟达AI预训练模型进行微调和适配”的东西。不过我们去看英伟达官网,发现英伟达对TAO的定义有更大的外延。TAO是个“平台”,通过基于UI的、引导式的工作流,简化AI应用的构建过程,针对不同能力水平的AI专家来满足不同的需求。其本质是简化机器学习过程里,比较耗费时间的部分,包括数据准备、训练、优化等。 }Q%>Fv  
所以TAO的一些核心组成,至少包括了预训练模型本身、TLT——迁移学习工具包、联邦学习(从分布在不同位置的数据来做AI训练的过程),还有TensorRT、Fleet Command这样的组成部分。 Cse0!7_T  
J8%|Gd0#4  
nqH^%/7)A@  
迁移学习流程的大致流程是这样的 EW!$D  
Brl6r8LGi  
所以TLT其实是TAO的一个核心组成部分。这样一来,企业、机构可以在不需要太多数据、AI专家的情况下去搞AI,应用可能包括人、车、各种对象的识别、对话AI,还有后面会谈到的姿势识别、光学检查等。让我们稍细致一些的方式,来理解这个过程。 /X:lt^?%I  
a~%ej.)l  
首先获得精确度比较高的预训练模型,然后用TLT,基于自己的数据集进行模型的优化——这个过程实际上是作符合个体使用场景的模型训练,针对的是个别的环境。之后这样的模型就能部署到应用中了;再往后,英伟达预期可以用DeepStream这样的视频流分析SDK工具,或者Jarvis这样的对话式AI,来做模型的部署。这里英伟达提供的算是一条龙服务。 A/QVotcU  
<|8 l;  
实现迁移学习的工具,就是TLT。不管是训练视觉AI模型还是对话AI模型,其构成大致如上图所示:针对不同的模型提供Jupyter Notebooks(一种基于JSON的开放文档格式,据说英伟达基于Jupyter Notebook的框架不需要任何AI专业知识),加入自己的数据集;过程中可以做所谓的data preparation and augmentation;然后就是训练模型,并且进行剪枝(pruning)——也就是移除神经网络中的一些神经元,降低模型整体大小。 m^=, RfUUd  
TLT下方是CUDA-X软件栈,前几天我们在谈Jetson Nano开发板的时候提到过这个概念,它是英伟达各种软件加速库的集合,包括CUDA、cuDNN、TensorRT等组件,也算是英伟达在AI生态中的核心资源了。再下层做迁移学习的硬件当然就是英伟达的各种GPU和平台产品了——training可以用DGX盒子,inference则小至Jetson Nano这样的小设备,也是英伟达赚钱的基础,或者说上层生态这么努力在做,也是硬件盈利的实现基础。 06`__$@h  
i-<=nD&?t  
再细化一点流程,如上图所示。先从英伟达的NGC下载预训练模型,然后在TLT中加自己的数据,可以藉由英伟达的离线增强工具。训练数据之后,做评估看模型精度表现如何。在精度足够的情况下,再进行模型剪枝——基于剪枝阈值来修剪模型大小。 (kHR$8GFM  
随后进行再训练(retrain)——这个过程可以用上QAT(Quantization Aware Training),一般比如做视频流内容分析的应用,AI训练过程用FP32这样的精度,对权重充分利用更宽的动态范围。不过模型部署到边缘端的硬件算力资源有限,INT8整形格式在很多场景下都有优势,参数、计算的低精度转换过程就是所谓的量子化Quantization。QAT就能够做这样的输出。 JTI m`t"d=  
再训练以后可以对模型再做评估,最终输出模型、生成etlt文件和INT8 calibration cache(可以被后面的DeepStream SDK之类的读取,生成TensorRT引擎)。英伟达为了表明这个过程很简单,还特别在媒体分享会上实践演示了整个过程,尤其提到了TLT做剪枝却不损失精度的过程。 wv7jh~x(4  
英伟达表示Facebook、谷歌之类的企业现在也都在用迁移学习技术。据说迁移学习过程对于完全新领域的适配,也有意想不到的效果。 SUEw5qitB  
ZMe|fn  
5bw]cv$i  
有关预训练模型和某些应用方向 H>r-|*n  
sV6A& Aw  
可能更多人会比较关心英伟达预训练模型本身的质量如何,那我们来谈谈英伟达的预训练模型——此前GTC大会的报道中我们也多次列举过英伟达的一些预训练模型。 fH.W kAE1  
1Q%.-vs  
上面这张图是英伟达给出的一些预训练视觉AI模型相关参数,柱状图就是对应的精度,下面的表格则是英伟达的各种平台下对模型做inference的性能表现(很多想试手的AI开发者可以关注下Jetson Nano的inference性能)。英伟达表示这些模型都经过了高度优化,可确保inference的时候以最快的速度、最低的内存占用来跑;而且这些模型还都是免费提供下载的。 @v'D9 ?  
zbR.Lb  
英伟达特别对比了比较流行的YOLOv4,和自家的PeopleNet模型。在都不做专门训练的情况下,对应具体的场景——上图是人流量比较大的一个商场,YOLOv4在检测人头数的表现上就比较一般;而PeopleNet看起来精度就会高很多。据说PeopleNet这个模型本身是基于包含1700万人的140万张图片的训练,所以实现了out-of-the-box的80%精度。 xo%iL  
)k1,oUx  
之后是对话式AI的支持,也是这次TLT 3.0更新版本的一个重点:ASR(Automatic Speech Recognition)方面实现了对Jasper、QuartzNet、CitriNet的支持,也是英伟达作了大量数据训练的预训练模型;NLP(Natrual Language Processing)部分,则包括对上图中已列出的模型支持,最后一个Megatron QA应该也是本次更新的重要组成部分。 H>] z=w~  
=gn}_sKNE  
^ZlV1G;/W@  
除此之外,英伟达还特别介绍了自家的一些模型做更具体的应用:比如说做人体姿势估测的BodyPoseNet模型——这个模型会检测人体18个点,据说比OpenPose有高出9倍的inference性能表现——这类模型可实现包括跌倒预测、体感游戏之类的应用。还有上图这个应用,对人脸做检测,并标注五官,以及可以实现对人眼注视方向的分析——这个应用对人脸68个点作了检测,整体包含了3个模型的应用——开发者可基于这些模型再做TLT的精调和定制化。 aC},h   
n96gDH*  
还有个特别值得一提的应用方向,就是自动化光学检查——这一点和制造(可能包括半导体制造)很相关,虽然我们尚不清楚其实际应用。基于UNET语义分割模型,实现生产过程中的缺陷检测。猜测这个应用或许对迁移学习本身提供的数据量会有更高的要求,据说从下载预训练模型,到最终部署的过程,是少于1天的。而且英伟达对此还特别提供了github repo来展示如何部署模型,如何基于开源数据集来做训练。 qIT{`hX  
:6/OU9f/R  
除了英伟达的预训练模型以外,TLT也支持各种开源的预训练模型,具体如上图所示。这张图对比的是TLT迁移训练后的精度,与现有公开数据集可实现最佳精度之间的对比,两者是很接近的状态——虽然不清楚这个对比具体是怎么做的;英伟达官方有特别发布基于开源模型架构实现高精度的开发者博客文章,有兴趣的可前往了解。 >(rB[ZJ  
=tNiIU  
5{a( +'  
有关TLT 3.0的一些更新 `|w#K28t"  
"{k )nr+7U  
一些已经出现在市场上的应用案例,比如Recycleye已经用TLT和后端的DeepStream SDK来做垃圾(waste)分类;还有Nota用类似的方案实现智慧交通,通过更好的调度来减少路面塞车时间。 8_m9CQ6 i  
在媒体分享会上,其实英伟达反倒没有怎么强调TLT 3.0的新特性,而是在科普TLT本身是怎么做的。这可能表现出现阶段英伟达仍然期望积极开拓市场,让更多的开发者加入到TLT的使用中来。除了前文提到的OpenPose、PeopleNet这些新模型,英伟达新闻稿中对TLT 3.0更新的总结大致如下: t/1NTa  
● 各种行业用例中的计算机视觉预训练模型,如车牌检测和识别、心率监测、情绪识别、面部特征点等; }^<zVdwp  
● CitriNet,一个使用各种专有特定域和开源数据集进行训练的新语音识别模型; Vr1|%*0Tv  
● 一个用于问题回答的新Megatron Uncased模型以及许多其他支持语音文本转换、命名实体识别、标点符号和文本分类的预训练模型; =Q}mJs  
● AWS、GCP和Azure上的训练支持; Sg$\ab$  
● 在用于视觉AI的NVIDIA Triton和DeepStream SDK上以及用于对话式AI的Jarvis上的开箱即用部署。 Ltw7b  
713M4CtJ  
另外在生态构建上,英伟达提到用TLT构建多样化的解决方案,与更多合作伙伴之间的合作。这次公开的合作对象包括了所谓的“data preparation and annotation partners”。这些参与者能够提供多样化的标签数据,促成AI训练的流程更快。开发者可以藉由这些合作伙伴的服务来生成和注释数据,然后搭配前文这么多篇幅介绍的英伟达迁移学习一条龙服务,从数据训练到最终的部署。 ,m?D\Pru  
这个过程是感觉如往常的开发生态那样,许多生态构建方都喜欢讲的“让开发者专注于业务本身”,而将技术等繁琐的组成部分由上游来解决,应该是一样的道理。这个过程现在也逐渐来到了AI开发上。 LPn }QzH  
xW9 s[X  
最后捎带提一提Vid2Vid Cameo——这其实是伴随英伟达在CVPR上发的paper成果而来的深度学习模型。前不久的GTC 2021上,其实我们提到了Maxine SDK(又俩生词),而Vid2Vid Cameo其实就是Maxine背后的模型,其主要功能是通过现在相当知名的GAN(生成式对抗网络),仅用一张人物2D图像就合成人脸说话视频。 ])L'Rk#4  
而英伟达这次在会上演示的是,将其用于视频会议的时候,只需要上传一张个人照片——比如穿正装的照片,那么Vid2Vid Cameo就会藉由这张照片,加上会议过程中捕捉人物动作、面部表情,将动作应用于上传的静态照片,形成动态视频。 5)7mjyo%  
这样一来,在家参与网络会议时,即便现实中穿睡衣也能在画面中看起来是穿着正装的。而且在网络质量不佳的时候,也不会有问题,所需网络带宽降低10倍(这项特性似乎单独作为Video Codec SDK特性之一推出了)。还有包括实时生成卡通头像、眼睛注释方向修正之类的特性,这些在去年的Maxine演示中,我们也看到过了。Vid2Vid Cameo可以认为是当前工作现状下,将AI应用于日常生活的一个缩影了。 ewG21 q$  


评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

一般

差劲

性别:
帅哥
发帖
1980
金币
1474
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 1楼 发表于: 2021-06-26



性别:
帅哥
发帖
4644
金币
3421
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 2楼 发表于: 2021-06-26
谢谢分享


在线a6682100

性别:
帅哥
发帖
4436
金币
1065
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 3楼 发表于: 2021-06-26
  


离线sun5304

性别:
帅哥
发帖
6244
金币
8073
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 4楼 发表于: 2021-06-28
  


离线水中天

性别:
人妖
发帖
305
金币
242
提示:会员销售的附件,下载积分 = 版块积分 + 销售积分       只看该作者 5楼 发表于: 2021-06-28
6666666666


快速回复
限150 字节
 
上一个 下一个