CV業(yè)務(wù)落地用Transformer嗎?
點(diǎn)擊上方“視學(xué)算法”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
導(dǎo)讀
眾所周知,Transformer 已經(jīng)日常在CV學(xué)術(shù)領(lǐng)域“殺瘋了”,那么在工業(yè)領(lǐng)域情況如何呢?
來(lái)源鏈接:https://www.zhihu.com/question/463585564/answer/1927466979
# 回答一
作者:花花
阿里巴巴高級(jí)技術(shù)專(zhuān)家
來(lái)源鏈接:https://www.zhihu.com/question/463585564/answer/1927466979
分類(lèi)任務(wù):transformer在分類(lèi)任務(wù)上超過(guò)cnn讓大家欣喜若狂,用pretrain進(jìn)行finetune是一件合理的事情,但可能大家也有意識(shí)到,imagenet-1k, imagenet-21k等pretrain的跨domain問(wèn)題。
其次,實(shí)際項(xiàng)目中,包括模型轉(zhuǎn)化,量化,SDK集成直到模型上線(xiàn)仍然有很大量的工作,鏈條不完善的情況下,不太容易落地,同時(shí)在inference速度上當(dāng)前沒(méi)有足夠好的優(yōu)化,也是一個(gè)劣勢(shì)。
檢測(cè)任務(wù):說(shuō)完分類(lèi)再來(lái)考慮檢測(cè),目前兩套思路,一種是換掉backbone,以pretrain的方式進(jìn)行下游任務(wù),部署難度和分類(lèi)任務(wù)一樣;另一種是類(lèi)似DETR這種訓(xùn)練方式,想要取得較好的精度需要更大量的數(shù)據(jù),對(duì)于實(shí)際項(xiàng)目并不容易獲取,且訓(xùn)練相較于普通檢測(cè)方法多了5到10倍的時(shí)間,在沒(méi)有取得很明顯的提升的情況下,也不太適合盲目進(jìn)行落地。
值得一提的幾點(diǎn):
1. 在public dataset 上殺瘋了并不代表在實(shí)際業(yè)務(wù)數(shù)據(jù)上就能很好的work,這點(diǎn)就不展開(kāi)了,做過(guò)落地的都明白。
2. 當(dāng)前另外一個(gè)方向是自監(jiān)督+transformer(SSL+Transformer),個(gè)人認(rèn)為非常有潛力,包括微軟的swin-ssl,F(xiàn)acebook的dino等,都是這方面的嘗試
3. 落地場(chǎng)景不同,情況就不同,人臉上億量級(jí)的數(shù)據(jù)如果要train from scratch,要直接硬上transformer,計(jì)算資源是非常非??捎^的。
個(gè)人一點(diǎn)不成熟的觀點(diǎn),輕噴:
我認(rèn)為現(xiàn)在transformer還處于不成熟的階段,大部分的工作都在分類(lèi)任務(wù)上進(jìn)行嘗試,因?yàn)橛?xùn)練成本較高,部分paper的實(shí)驗(yàn)結(jié)果并不solid,提點(diǎn)也有限,雖然百花齊放但還沒(méi)有一個(gè)較為統(tǒng)一的認(rèn)知和共識(shí),下游任務(wù)(detection,segmentation)的驗(yàn)證也不是很solid。同時(shí)底層硬件,CUDA,訓(xùn)練框架對(duì)transformer的優(yōu)化也不夠完善。
類(lèi)比CNN的發(fā)展歷程,我認(rèn)為目前transformer在CV領(lǐng)域應(yīng)該還處于AlexNet階段,距ResNet階段還有一定的距離,一方面是research這條線(xiàn)繼續(xù)推陳出新,另一方面是工程部署這條線(xiàn)的持續(xù)跟進(jìn)(可以看到很多社區(qū)的框架也在多分布式訓(xùn)練,transformer訓(xùn)練進(jìn)行優(yōu)化和加速)。
需要另一個(gè)里程碑來(lái)統(tǒng)一大家的認(rèn)知
落地是肯定要落地的,大家一起加油。
# 回答二
作者:OLDPAN
來(lái)源鏈接:
https://www.zhihu.com/question/463585564/answer/1940309173這個(gè)問(wèn)題問(wèn)得好呀,說(shuō)不定樓主都已經(jīng)踩過(guò)坑了 。
在我們組的CV中,識(shí)別組大部分的結(jié)構(gòu)都包含transformer,也有一些LSTM和attention,其中有部分模型可以轉(zhuǎn)化為tensorrt然后使用triton部署。相比原生的TensorFlow server要快些。不過(guò)仍有提升空間。
而檢測(cè)組則沒(méi)有使用transformer,一方面是因?yàn)樵鹊慕Y(jié)構(gòu)比較好部署(ssd,centernet,fcos等結(jié)構(gòu))比較熟悉,二是cv檢測(cè)上的transformer結(jié)構(gòu)還不是很成熟,沒(méi)有比較通用性的backbone可以替換之前使用的resnet這類(lèi)的通用backbone。
如果之后會(huì)使用transformer,我會(huì)考慮:
精度提升有多大,對(duì)于檢測(cè)任務(wù)來(lái)說(shuō)。如果不是質(zhì)的提升(十分之一),盡量不考慮 速度能有多快,相比resnet50,同等精度或者高于這個(gè)精度能有多快 還是那句話(huà),好不好部署,能否轉(zhuǎn)化為tensorrt,轉(zhuǎn)化后支不支持動(dòng)態(tài)尺寸 這都是問(wèn)題
其實(shí)也簡(jiǎn)單嘗試了一下swin transformer,目前可以轉(zhuǎn)化為tensorrt但只支持固定尺寸,在分類(lèi)任務(wù)上,swin最小結(jié)構(gòu)的精度比res50要高些,但速度嘛,慢了一倍多 ,唉性?xún)r(jià)比瞬間降低了。
對(duì)于我們來(lái)說(shuō),用不用transformer,關(guān)鍵還是取決于精度和速度能否超過(guò)之前的backbone,性?xún)r(jià)比高不高。不高的話(huà),大概率不會(huì)用……
如果覺(jué)得有用,就請(qǐng)分享到朋友圈吧!

點(diǎn)個(gè)在看 paper不斷!
