如何高效、精準地進行圖片搜索?看看輕量化視覺預訓練模型
?你是否有過圖像檢索的煩惱?
或是難以在海量化的圖像中準確地找到所需圖像,或是在基于文本的檢索中得到差強人意的結(jié)果。對于這個難題,微軟亞洲研究院和微軟云計算與人工智能事業(yè)部的研究人員對輕量化視覺模型進行了深入研究,并提出了一系列視覺預訓練模型的設計和壓縮方法,實現(xiàn)了視覺 Transformer 的輕量化部署需求。
目前該方法和模型已成功應用于微軟必應搜索引擎,實現(xiàn)了百億圖片的精準、快速推理和檢索。本文將深入講解輕量化視覺預訓練模型的發(fā)展、關(guān)鍵技術(shù)、應用和潛力,以及未來的機遇和挑戰(zhàn),希望大家可以更好地了解輕量化視覺預訓練領(lǐng)域,共同推進相關(guān)技術(shù)的發(fā)展。
近來,基于 Transformer 的視覺預訓練模型在諸多計算機視覺任務上都取得了優(yōu)越性能,受到了廣泛關(guān)注。然而,視覺 Transformer 預訓練模型通常參數(shù)量大、復雜度高,制約了其在實際應用中的部署和使用,尤其是在資源受限的設備中或者對實時性要求很高的場景中。因此,視覺預訓練大模型的“輕量化”研究成為了學術(shù)界和工業(yè)界關(guān)注的新熱點。
對此,微軟亞洲研究院和微軟云計算與人工智能事業(yè)部的研究員們在視覺大模型的結(jié)構(gòu)設計和訓練推斷上進行了深入探索,同時還對大模型的輕量化、實時性以及云端部署也做了創(chuàng)新應用。本文將從輕量化視覺預訓練模型的發(fā)展談起,探討模型輕量化研究中的關(guān)鍵技術(shù),以及輕量化視覺 Transformer 模型在實際產(chǎn)品中的應用和潛力,最后展望輕量化視覺模型的未來發(fā)展機遇和挑戰(zhàn)。
視覺大模型層出不窮,輕量化預訓練模型卻乏人問津
最近幾年,深度學習在 ImageNet 圖像分類任務上的進展主要得益于對視覺模型容量的大幅度擴增。如圖1所示,短短幾年時間,視覺預訓練模型的容量擴大了300多倍,從4,450萬參數(shù)的 ResNet-101 模型,進化到了擁有150億參數(shù)的 V-MoE 模型,這些大型視覺預訓練模型在圖像理解和視覺內(nèi)容生成等任務上都取得了長足進步。
圖1:視覺預訓練模型參數(shù)量的變化趨勢圖
無論是微軟的30億參數(shù) Swin-V2 模型,還是谷歌發(fā)布的18億參數(shù) ViT-G/14 模型,視覺大模型在眾多任務中都展現(xiàn)了優(yōu)越的性能,尤其是其強大的小樣本(few-shot) 甚至是零樣本 (zero-shot) 的泛化能力,對實現(xiàn)通用智能非常關(guān)鍵。
然而,在很多實際場景中,由于存儲、計算資源的限制,大模型難以直接部署或者無法滿足實時需求。因此,輕量級的視覺預訓練模型研究變得越來越重要,且具有很強的實際應用價值。盡管目前有一些工作在探討輕量級模型,但是這些方法大多是針對特定任務、特定結(jié)構(gòu)設計的,在設計和訓練過程中沒有考慮到模型的通用性,存在跨數(shù)據(jù)域、跨任務的泛化局限性。
輕量化視覺模型的關(guān)鍵技術(shù)研究
為了實現(xiàn)輕量化視覺預訓練模型,微軟的研究員們發(fā)現(xiàn)了兩大關(guān)鍵問題:1)如何設計出通用性更強的輕量化模型結(jié)構(gòu)?2)受制于輕量化視覺預訓練模型的有限容量,如何設計高效的預訓練方法讓小模型也能學習到大規(guī)模數(shù)據(jù)中的有效信息?面對這些難題,研究員們通過堅持不懈的研究和探索,目前取得了一些階段性成果。
由于提高輕量化預訓練模型通用性的核心在于如何在資源受限(參數(shù)量,時延等)的情況下強化模型的學習能力,使其能夠更好地在大規(guī)模數(shù)據(jù)中學習通用特征,因此,研究員們從以下三個角度進行了深入探索:
1. 輕量化模塊設計?
輕量、低延時的模塊是組成輕量級模型的重要部分。在卷積神經(jīng)網(wǎng)絡中,具有代表性的輕量級模塊有MobileNet的反向殘差模塊(Inverted Residual Block)以及 ShuffleNet 的通道隨機交叉單元(Shuffle Unit)。在視覺 Transformer 結(jié)構(gòu)中,由于圖像塊之間注意力的計算沒有很好地考慮相對位置編碼信息,因此研究員們設計了即插即用的輕量級二維圖像相對位置編碼方法 iRPE [1],它不需要修改任何的訓練超參數(shù),就能提高模型的性能。此外,針對視覺 Transformer 參數(shù)冗余的問題,研究員們設計了權(quán)重多路復用(Weight Multiplexing)模塊 [2]。如圖2所示,該方法通過多層權(quán)重復用減少模型參數(shù)的冗余性,并且引入不共享的線性變換,提高參數(shù)的多樣性。
圖2:Transformer 中的權(quán)重多路復用模塊
2. 輕量化模型搜索?
網(wǎng)絡結(jié)構(gòu)搜索(Neural Architecture Search)可以從模型設計空間中自動找到更加輕量、性能更加優(yōu)異的模型結(jié)構(gòu) [3]。在卷積神經(jīng)網(wǎng)絡中,代表性工作有 NASNet 和 EfficientNet 等。在視覺 Transformer 結(jié)構(gòu)搜索中,針對視覺模型中的通道寬度、網(wǎng)絡深度以及 head 數(shù)量等多個維度,研究員們先后提出了 AutoFormer [4] 和 S3 [5],實現(xiàn)了視覺模型的動態(tài)可伸縮訓練與結(jié)構(gòu)搜索。在同樣模型精度的情況下,搜索得到的新模型具有更小的參數(shù)量和計算量。值得注意的是,在 S3 中,研究員們利用 E-T Error [5]以及權(quán)重共享超網(wǎng)來指導、改進搜索空間,在得到更高效的模型結(jié)構(gòu)的同時也分析了搜索空間的演進過程,如圖3所示。與此同時,模型結(jié)構(gòu)搜索的過程為輕量化模型的設計提供了有效的設計經(jīng)驗和參考。
圖3:輕量級模型搜索空間進化過程
3. 視覺大模型壓縮與知識遷移?
輕量級預訓練模型的另一難題在于,由于模型容量有限,難以直接學習大規(guī)模數(shù)據(jù)中包含的豐富信息和知識。為了解決這一問題,研究員們提出了快速預訓練蒸餾方案,將大模型的知識遷移到輕量化的小模型中 [6]。如圖4所示,和傳統(tǒng)的單階段知識蒸餾不同,快速預訓練蒸餾分為兩個階段:1)壓縮并保存大模型訓練過程中使用的數(shù)據(jù)增廣信息和預測信息;2)加載并恢復大模型的預測信息和數(shù)據(jù)增廣后,利用大模型作為教師,通過預訓練蒸餾指導輕量化學生模型的學習和訓練。不同于剪枝和量化,該方法在權(quán)重共享的基礎上使用了上文中提到的權(quán)重復用[2],通過引入輕量級權(quán)重變換和蒸餾,成功壓縮視覺預訓練大模型,得到了通用性更強的輕量級模型。在不犧牲性能的情況下,該方法可以將原有大模型壓縮數(shù)十倍。
圖4:快速預訓練知識蒸餾
這一系列的研究成果,不僅在計算機視覺的頂級學術(shù)會議上(CVPR、ICCV、ECCV、NeurIPS等 )發(fā)表了多篇論文[1-6],也通過和微軟必應的合作,成功將輕量化預訓練模型應用到了圖像搜索產(chǎn)品中,提高了實際業(yè)務中圖像和視頻內(nèi)容理解的能力。
輕量級視覺預訓練模型的應用
輕量級視覺預訓練模型在實際中有諸多用途,尤其是在實時性要求高或者資源受限的場景中, 例如:云端視頻實時渲染和增強、端測圖像、視頻內(nèi)容理解。輕量級視覺模型已經(jīng)在智能零售、先進制造業(yè)等領(lǐng)域展現(xiàn)出了廣闊的應用前景,將來還會在元宇宙、自動駕駛等新興行業(yè)發(fā)揮重要作用。以微軟必應產(chǎn)品中的圖像內(nèi)容搜索為例,下面為大家展示一下輕量化視覺模型的實際應用和部署。
目前,基于內(nèi)容的圖片搜索在圖片的類別屬性理解上已經(jīng)比較成熟,但對于復雜場景的內(nèi)容理解仍有很大的挑戰(zhàn)。復雜場景的圖片通常具有大景深、背景雜亂、人物多、物體關(guān)系復雜等特點,顯著地增加了內(nèi)容理解的難度,因而對預訓練模型的魯棒性和泛化性提出了更高的要求。
舉例來說,動漫圖片的搜索質(zhì)量在很長一段時間內(nèi)無法得到有效提升,其主要的挑戰(zhàn)包括:繪畫線條和顏色比真實場景圖片更加夸張,包含更多動作和場景,不同漫畫之間的風格內(nèi)容差異巨大。圖5到圖7分別展示了“灌籃高手”、“皮卡丘”和“足球小將”三種不同的動漫人物和行為,其漫畫風格和內(nèi)容差別迥異。如何有效地理解漫畫圖片內(nèi)容,對視覺預訓練模型提出了較高的要求。
圖5:在微軟必應搜索引擎中,對灌籃高手的動作理解包括:扣籃,運球,搶斷,投籃等
圖6:在微軟必應搜索引擎中,對皮卡丘行為的理解比如吃蘋果、吃西瓜,吃雪糕等
圖7:在微軟必應搜索引擎中,對足球小將射門動作的特寫
上文中提到的輕量級視覺通用模型以及快速預訓練蒸餾算法目前已成功應用于微軟必應搜索引擎中。借助微軟亞洲研究院提供的視覺語言多模態(tài)預訓練模型,微軟必應圖片搜索功能增強了對漫畫內(nèi)容的理解,可以返回與用戶需求更為匹配的圖片內(nèi)容。
與此同時,微軟必應搜索引擎龐大的索引庫對于檢索效率有非常高的要求。微軟亞洲研究院提供的快速預訓練蒸餾方法有效地將預訓練大模型的索引能力遷移到輕量化模型中,在識別準確率上將現(xiàn)有模型提升了14%,同時極大地優(yōu)化了模型的計算效率,實現(xiàn)了百億圖片的快速推理。
未來的機遇與挑戰(zhàn)
模型輕量化是人工智能未來應用落地的核心。隨著視覺技術(shù)、算法、算力和數(shù)據(jù)等不斷完善,模型的復雜度急劇攀升,神經(jīng)網(wǎng)絡計算的能耗代價越來越高。輕量化視覺模型高效的計算效率和低廉的部署應用成本,能夠在未來更多的實際產(chǎn)品中發(fā)揮巨大優(yōu)勢。除此之外,本地化的輕量級預訓練視覺模型在支持更多服務的同時,還能夠更好地保護用戶數(shù)據(jù)和隱私。用戶的數(shù)據(jù)將不再需要離開設備,即可實現(xiàn)模型服務等功能的遠程升級。
當然,研究人員也意識到輕量級預訓練視覺模型所面臨的挑戰(zhàn):一方面在模型結(jié)構(gòu)設計上,如何在模型參數(shù)量和推理延時的限制下達到模型的最優(yōu)學習能力,一直以來都是學術(shù)界和工業(yè)界密切關(guān)注的問題。雖然目前已經(jīng)沉淀了不少有效的模型結(jié)構(gòu),在通用近似定理(UAT)、神經(jīng)網(wǎng)絡結(jié)構(gòu)搜索(NAS)等領(lǐng)域也取得了長足的發(fā)展,但是現(xiàn)有的輕量級預訓練視覺模型和視覺大模型之間仍有差距,有待進一步優(yōu)化和提升。另一方面在訓練方法上,學術(shù)界和工業(yè)界針對視覺大模型提出了自監(jiān)督、圖像分類和多模態(tài)等多種訓練方法,顯著提升了模型的通用能力。如何針對容量有限的輕量級模型設計更有效的訓練方式,還需要進一步的研究和探索。微軟亞洲研究院的研究員們將不斷推進輕量級預訓練視覺模型的科研進展,也歡迎更多科技同仁共同交流、探索該領(lǐng)域的相關(guān)技術(shù)。?