找回密码
 立即注册
查看: 1107|回复: 20

2021年,作为算法工程师的你们会在CV业务落地上用Transformer吗?

[复制链接]
发表于 2021-7-4 12:43 | 显示全部楼层 |阅读模式
众所周知,Transformer 已经日常在CV学术领域“杀疯了”,那么在工业领域情况如何呢?
发表于 2021-7-4 12:52 | 显示全部楼层
分类任务:transformer在分类任务上超过cnn让大家欣喜若狂,用pretrain进行finetune是一件合理的事情,但可能大家也有意识到,imagenet-1k, imagenet-21k等pretrain的跨domain问题。
其次,实际项目中,包括模型转化,量化,SDK集成直到模型上线仍然有很大量的工作,链条不完善的情况下,不太容易落地,同时在inference速度上当前没有足够好的优化,也是一个劣势。
检测任务:说完分类再来考虑检测,目前两套思路,一种是换掉backbone,以pretrain的方式进行下游任务,部署难度和分类任务一样;另一种是类似DETR这种训练方式,想要取得较好的精度需要更大量的数据,对于实际项目并不容易获取,且训练相较于普通检测方法多了5到10倍的时间,在没有取得很明显的提升的情况下,也不太适合盲目进行落地。
值得一提的几点:
1. 在public dataset 上杀疯了并不代表在实际业务数据上就能很好的work,这点就不展开了,做过落地的都明白。
2. 当前另外一个方向是自监督+transformer(SSL+Transformer),个人认为非常有潜力,包括微软的swin-ssl,Facebook的dino等,都是这方面的尝试
3. 落地场景不同,情况就不同,人脸上亿量级的数据如果要train from scratch,要直接硬上transformer,计算资源是非常非常可观的。
个人一点不成熟的观点,轻喷:
我认为现在transformer还处于不成熟的阶段,大部分的工作都在分类任务上进行尝试,因为训练成本较高,部分paper的实验结果并不solid,提点也有限,虽然百花齐放但还没有一个较为统一的认知和共识,下游任务(detection,segmentation)的验证也不是很solid。同时底层硬件,CUDA,训练框架对transformer的优化也不够完善。
类比CNN的发展历程,我认为目前transformer在CV领域应该还处于AlexNet阶段,距ResNet阶段还有一定的距离,一方面是research这条线继续推陈出新,另一方面是工程部署这条线的持续跟进(可以看到很多社区的框架也在多分布式训练,transformer训练进行优化和加速)。
    需要另一个里程碑来统一大家的认知落地是肯定要落地的,大家一起加油。
发表于 2021-7-4 13:00 | 显示全部楼层
这个问题问得好呀,说不定楼主都已经踩过坑了 。
在我们组的CV中,识别组大部分的结构都包含transformer,也有一些LSTM和attention,其中有部分模型可以转化为tensorrt然后使用triton部署。相比原生的TensorFlow server要快些。不过仍有提升空间。
而检测组则没有使用transformer,一方面是因为原先的结构比较好部署(ssd,centernet,fcos等结构)比较熟悉,二是cv检测上的transformer结构还不是很成熟,没有比较通用性的backbone可以替换之前使用的resnet这类的通用backbone。
如果之后会使用transformer,我会考虑:
    精度提升有多大,对于检测任务来说。如果不是质的提升(十分之一),尽量不考虑速度能有多快,相比resnet50,同等精度或者高于这个精度能有多快还是那句话,好不好部署,能否转化为tensorrt,转化后支不支持动态尺寸 这都是问题
其实也简单尝试了一下swin transformer,目前可以转化为tensorrt但只支持固定尺寸,在分类任务上,swin最小结构的精度比res50要高些,但速度嘛,慢了一倍多 ,唉性价比瞬间降低了。
对于我们来说,用不用transformer,关键还是取决于精度和速度能否超过之前的backbone,性价比高不高。不高的话,大概率不会用……
发表于 2021-7-4 13:06 | 显示全部楼层
CV领域的多条赛道现在都被transformer霸榜,不玩transformer都不好意思说自己是搞CV的╮( ̄▽ ̄)╭,但业务上真的需要transformer吗?作为淘系的一线技术小二,这里分享一点自己的落地心得。

欢迎点击头像关注我们,后续持续分享更多阿里工程师的技术干货&成长心得。
---------------------------------------------------------------------------------

先说结论:判断新技术能否实现商业落地,本质上都是ROI的问题。Transformer的ROI还远未达到能够落地的程度。
一、Transformer带来的技术进步程度还不够高

@花花 的回答中有句话很形象:“我认为目前transformer在CV领域应该还处于AlexNet阶段,距ResNet阶段还有一定的距离”。Transformer能够在公开数据集上提升多个CV任务的精度,已经是公认的结论了。然而,其技术进步程度还要从以下几个角度来衡量。

首先,transformer对long sequence的建模优势就不说了,CNN在这块是天然的劣势。但transformer目前带来的精度提升,既来自self-attention的理论优势,也不能否认模型参数规模的贡献。CNN当年也是这样一路走来的。VGG那样的参数量也是随着模型结构研究的进展而降低到现在MobileNet、YOLO系列的水平。这个过程其实是研究人员对模型结构理解逐步深化、去芜存菁的过程。目前已经出现了许多针对transformer结构效率优化的研究,例如轻量级attention(e.g. 稀疏attention变体)、分而治之的方法(e.g. 循环和分层机制)等。这些研究能否解决transformer模型大、效率低的问题,也是产业界关注的重点之一。

其次,在工业数据集上,transformer带来的精度提升也还处于量变阶段,尚不能对核心业务带来显著的增量价值。举例来说,图像分割算法在淘宝的自动化内容生产中扮演着重要角色。目前最新基于transformer的语义分割SOTA方法,在公开数据集上的mIOU提升幅度有2个点左右。然而,若使用淘宝的人工审核通过率(可以简单理解为审核人员一眼看上去能否发现错误)作为评判标准,则对整体的通过率基本没有影响,从而也无法提升审核效率或降低审核成本。

此外,transformer的理论研究目前还处于百花齐放的阶段,需要一个类似ResNet这样的milestone来作为学术与工业界的连接点。一种新的结构要进行产业落地,需要上下游进行非常多的相关开发,例如移动端推理框架对新算子的支持与性能优化、训练集群规模的扩大与调度、训练数据的管理与共享、模型的压缩与分发等。目前在不同CV任务上,基于transformer的解决方案还存在很大差别,这导致配合的算法工程团队难以着手,从而无法落地应用。
二、Transformer带来的成本增加是巨大的
虽然transformer结构会对CV任务带来一定的精度提升,但同时,使用transformer也需要付出一定代价。仅举几例如下:
1、Transformer模型巨大的参数量将成倍地增加服务器成本以及随之而来的运维难度。
2、Transformer在小数据集上很难训练,极易过拟合,因此训练所需的数据量显著增加。并且,有些业务场景天然难以提供大量数据。
3、Transformer的训练时间长,相比CNN,transformer有时甚至需要3~5倍的训练时间,这一方面阻碍了许多需要快速响应的需求的开发(例如某些热点事件的跟进),同时也隐形地增加了公司的人力成本(阿里的算法工程师工资可是很高的哟)。

这些成本增加能否接受,则取决于应用该技术的业务是否具有足够的价值了。国内各大互联网公司中,都有transformer的落地先例,例如阿里的搜索推荐、美团的搜索排序、腾讯的广告推荐等。这些无一不是能够带来巨大商业价值的应用场景,在其中取得很小的精度提升,就可以cover相应的改造成本。能否找到类似价值体量的应用场景,也许是transformer能否顺利落地在CV领域的关键。
参考文献
https://arxiv.org/abs/2101.01169
https://arxiv.org/pdf/2106.04554.pdf
https://arxiv.org/pdf/1905.06874v1.pdf
https://zhuanlan.zhihu.com/p/166710532
https://zhuanlan.zhihu.com/p/131590390
https://www.arxiv-vanity.com/papers/2105.05633/
(本篇内容作者:阿里巴巴淘系技术部-继科)
——————————————————————————————————————————
阿里巴巴集团淘系技术部官方账号。淘系技术部是阿里巴巴新零售技术的王牌军,支撑淘宝、天猫核心电商以及淘宝直播、闲鱼、躺平、阿里汽车、阿里房产等创新业务,服务9亿用户,赋能各行业1000万商家。我们打造了全球领先的线上新零售技术平台,并作为核心技术团队保障了11次双十一购物狂欢节的成功。详情可查看我们官网:阿里巴巴淘系技术部官方网站。
点击下方主页关注我们,你将收获更多来自阿里一线工程师的技术实战技巧&成长经历心得。另,不定期更新最新岗位招聘信息和简历内推通道,欢迎各位以最短路径加入我们。
阿里巴巴淘系技术
发表于 2021-7-4 13:12 | 显示全部楼层
这不应该问算法工程师。算法人看中的是效果,是创新,是刷榜。
只有工程人才关心落地,说实话刷榜的模型那么几个点的提升在实际业务中差异不大,有这点精力还不如洗好高质量的数据;
工程落地最重要的是性价比,君不见目前视觉主流的落地依旧是mobilenet,ssd,yolo,unet,fcn这种经典的模型;19年之后视觉领域模型绝大部分都是“妖艳的货色”,落地价值不大;
最好一个模型算子种类越简单越好,计算密度越高越好。npu便宜,速度快,功耗低,可惜适配性差,就是把芯片架构师皮扒了,也适配不了算法人脑袋里花里胡哨的“骚”算子。
要是能出一个模型只用gemm,relu就能达到18年的效果,瞬时会风靡工业界;甚至最近开始“返祖”MLP-Mixer,我就挺看好它;再进一步看看这位答主,要是liner+norm两个算子都能横扫18年之前的模型,我觉得就很完美了,还要啥自行车啊!
NmTwo:如何评价Google提出的MLP-Mixer:只需要MLP就可以在ImageNet上达到SOTA?在另一个层面上如何看待算法:
匿名用户:人工智能是当前最好的计算机专业吗?
发表于 2021-7-4 13:13 | 显示全部楼层
这个题我会。
vision transformer早就已经落地了。说下自这边相关的模型吧。首先是VIT,变种很多,自己也都试了下做backbone,相当一部分模型比resnet,resnest系列效果要好,速度也快一些(显存大一些),直接上了线。
其次是bert模型,在多模态模型中作为nlp模态。
很早之前做OCR的时候也有尝试transformer,不过当时比较早,模型收益并不大,感觉最近的一些模型很有落地空间。
发表于 2021-7-4 13:13 | 显示全部楼层
个人觉得现在transformer完全没用。在多个自有数据集跑过实验,小于imagenet规模的数据集基本没法用。大于imagenet规模的数据集,看数据多样性程度和脏数据占比,多样性小或者脏数据多完全没用。多样性大且标注准确,transformer直接过拟合场景,效果极好。但是transformer耗费资源也太高了,所以工业界也不爱用这东西,感觉这帮搞深度学习的十有九骗,现在这个东西完全没用,就是疯狂过拟合数据。
发表于 2021-7-4 13:14 | 显示全部楼层
用了,基本上都是cnn+transformer结合着用
基于两点考虑:
1.cnn的shared weights确实速度快,且能cover大部分情况
2.实在遇到需要instance wise的卷积核,可以考虑上convolution based self-attention,这部分的channel可以适当减少,确保attention带来的花销要比增加卷积核带来的花销少
发表于 2021-7-4 13:20 | 显示全部楼层
不同场景性能测试的table我这边是有的,而且肯定各个厂早就做过了,但是除了几个大厂肯定不会release出来的。
应该来说看解决的业务是什么,分类相关这块性能还是不错的,虽然计算计算资源多消耗50%,不过提高也还算明显。这里22k的模型效果还不如1k的模型。分类以外的其他业务比如分割检测就参差不齐了,而且计算损耗也大幅度提高(这个和transformer本身特性有关系),目前应该不会落地。
顺便吐槽下那几个MLP,什么破玩意儿。。。
发表于 2021-7-4 13:22 | 显示全部楼层
startup
几个视觉相关的核心模型都是Transformer做的。
与图像生成和匹配等任务有关,比较细分的领域,效果很好。好到以至于不能用CNN的像素级损失衡量。按传统衡量,CNN大约只有Transformer性能的10~25%。
应用近期就开始落地。唯独可惜的是做得太拖拉,CV in Transformer都烂大街了才投。文章公布看开奖结果了。
一点微小的经验,数据小的话,Transformer不太合适。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-21 04:32 , Processed in 0.241030 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表