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

编辑丨CV圈

众所周知,Transformer 已经日常在CV学术领域“杀疯了”,那么在工业领域应用情况如何呢?你会在业务上使用Transformer算法做CV任务吗?

本文来自知乎问题:https://www.zhihu.com/question/463585564 版权归原作者所有

最近,基于Transformer的CV算法在学术界大火,在分类、检测任务上甚至超过普通的基于CNN的算法,达到SOTA水平。那么,它们在工业界落地了吗?我们看看各位答主怎么说。

          花花

SenseTime算法研究员

       链接:https://www.zhihu.com/question/463585564/answer/1927466979

分类任务: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训练进行优化和加速)。

  1. 需要另一个里程碑来统一大家的认知

  2. 落地是肯定要落地的,大家一起加油。

OLDPAN

程序员老潘

链接:https://www.zhihu.com/question/463585564/answer/1940309173

这个问题问得好呀,说不定楼主都已经踩过坑了 。

在我们组的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,性价比高不高。不高的话,大概率不会用……

阿里巴巴淘系技术

阿里官方账号

作者:阿里巴巴淘系技术部-继科

https://www.zhihu.com/question/463585564/answer/1960381182

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://www.zhihu.com/question/463585564/answer/1930140253

这不应该问算法工程师。算法人看中的是效果,是创新,是刷榜。

只有工程人才关心落地,说实话刷榜的模型那么几个点的提升在实际业务中差异不大,有这点精力还不如洗好高质量的数据;

工程落地最重要的是性价比,君不见目前视觉主流的落地依旧是mobilenet,ssd,yolo,unet,fcn这种经典的模型;19年之后视觉领域模型绝大部分都是“妖艳的货色”,落地价值不大;

最好一个模型算子种类越简单越好,计算密度越高越好。npu便宜,速度快,功耗低,可惜适配性差,就是把芯片架构师皮扒了,也适配不了算法人脑袋里花里胡哨的“骚”算子。

要是能出一个模型只用gemm,relu就能达到18年的效果,瞬时会风靡工业界;甚至最近开始“返祖”MLP-Mixer,我就挺看好它;再进一步看看这位答主,要是liner+norm两个算子都能横扫18年之前的模型,我觉得就很完美了,还要啥自行车啊!

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。

下载2

在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。

下载3

在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
算法工程师面试中,可能遇到有关Transformer模型的问题。Transformer模型是一种基于自注意力机制的深度学习模型,广泛应用于自然语言处理任务。以下是一些可能被问到的问题及其答案: 1. 请简要介绍一下Transformer模型。 Transformer模型是一种基于注意力机制的深度学习模型,用于处理序列数据,特别是在自然语言处理任务中取得了巨大成功。它由编码器和解码器两个部分组成,每个部分都包含了多个注意力机制层。编码器负责将输入序列转换为一个抽象的表示,解码器则根据这个表示生成目标序列。Transformer模型摒弃了传统的循环神经网络(RNN)结构,通过全局关注输入序列中的所有位置,从而能够处理长距离依赖关系。 2. Transformer模型中的非线性来自哪里? Transformer模型中的非线性主要来自于激活函数,其中一种常用的激活函数是GELU(Gaussian Error Linear Unit)。GELU激活函数在ReLU的基础上增加了随机因素,这使得输入值越小越容易被“mask”掉,从而引入了非线性。通过这种激活函数,Transformer模型能够更好地处理不同位置的特征。 3. 在Transformer模型中,self-attention是如何实现的? 在Transformer模型中,self-attention是通过计算输入序列中每个位置与其他位置之间的相关性得到的。具体来说,通过对输入序列中的每个位置进行线性变换,得到查询(query)、键(key)和值(value)三个向量。然后,通过计算查询向量与键向量的点积,并经过softmax归一化,得到每个位置与其他位置的注意力权重。最后,将注意力权重与值向量相乘并求和,得到最终的输出。 综上所述,算法工程师面试中可能涉及到Transformer模型的基本原理、非线性来源以及self-attention的实现方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值