大模型應用新範式:統一特徵表示優化(UFO)

語言: CN / TW / HK

從深度學習技術被提出以來,一直踐行着“think big”的理念。特別是當預訓練技術被廣泛應用之後,更多的數據結合更大的模型參數量會持續帶來模型性能的提升,這條定律不斷被近期發佈的各種大模型所驗證。在剛剛過去的2021年,百度文心大模型中的ERNIE3.0、微軟和英偉達聯合推出的MT-NLP以及谷歌的Switch Transformer等等,參數量可達千億甚至萬億。\ \ 在獲得高性能大模型後,如何將大模型與業務結合實現落地變得尤為重要。當前預訓練模型的落地流程可被歸納為:針對只有少量標註數據的特定任務,使用任務數據fine-tune預訓練模型並部署上線。然而,當預訓練模型參數量不斷增大後,該流程面臨兩個無法迴避的問題。首先,隨着模型參數量的急劇增加,大模型fine-tuning所需要的計算資源將變得非常巨大,普通開發者通常無法負擔。其次,隨着AIOT的發展,越來越多AI應用從雲端往邊緣設備、端設備遷移,而大模型卻無法直接部署在這些存儲和算力都極其有限的硬件上。\ 針對預訓練大模型落地所面臨的問題,百度提出統一特徵表示優化技術(UFO:Unified Feature Optimization),在充分利用大數據和大模型的同時,兼顧大模型落地成本及部署效率。UFO技術方案的主要內容包括:1. All in One: 設計視覺表示多任務協同訓練方案,免去了下游任務fine-tuning的過程,實現單模型在智慧城市多個核心任務效果全面領先2. One for All: 首創針對視覺多任務的超網絡與訓練方案,支持各類任務、各類硬件的靈活部署,解決大模型推理性能差的問題。

0.png

All in One:

功能更強大、更通用的視覺模型

\ \ 之前主流的視覺模型生產流程,通常採用單任務“Train from scratch”方案。每個任務都從零開始訓練,各個任務之間也無法相互借鑑。由於單任務數據不足帶來偏置問題,實際效果過分依賴任務數據分佈,場景泛化效果往往不佳。\ \ 近兩年蓬勃發展的大數據預訓練技術,通過使用大量數據學到更多的通用知識,然後遷移到下游任務當中,本質上是不同任務之間相互借鑑了各自學到的知識。基於海量數據獲得的預訓練模型具有較好的知識完備性,在下游任務中基於少量數據fine-tuning依然可以獲得較好的效果。不過基於預訓練+下游任務fine-tuning的模型生產流程,需要針對各個任務分別訓練模型,存在較大的研發資源消耗。\ 百度提出的UFO All in One模型,通過使用多個任務的數據訓練一個功能強大的通用模型,可被直接應用於處理多個任務。不僅通過跨任務的信息提升了單個任務的效果,並且免去了下游任務fine-tuning過程。UFO All in One模型研發模式可被廣泛應用於各類多任務AI系統,以智慧城市的多任務大模型為例,UFO All in One可以用單模型實現多個任務的SOTA識別效果,同時多任務模型可獲得顯著優於單任務模型的效果,證明了多任務之間信息借鑑機制的有效性。

單模型覆蓋智慧城市4大任務

智慧城市是目前計算機視覺技術最重要的應用場景之一,在智慧城市的各個任務中,往往要同時處理人臉、人體、車輛和通用物體等目標,這對AI系統的多任務協同能力提出了非常高的要求。現有的視覺模型大多隻能檢測或識別其中的一類目標,百度通過UFO方案中的多任務協同學習技術,產出城市視覺UFO模型同時處理這4類任務,並在10項公開數據集上效果取得SOTA。下面詳細介紹UFO的多任務協同訓練方案。\

任務設置與數據

為驗證方案的有效性且便於公平對比,使用10項公開數據集進行訓練和測試。各個數據集的統計信息如表所示:

01.png

\ \

統一各任務的配置

從模型優化的層面來説,以往不同任務模型訓練的batch size 、學習率乃至於優化器都各不相同。為了方便後續的多任務訓練,UFO方案統一了各個任務的模型結構以及優化方法。任務配置如下表所示:

02.png

\ \

異構數據採樣策略和Drop Path正則技術

多任務學習首先面臨的問題是如何構建Batch。常用的方式有兩種,一種是同數據域的Batch組成,即Batch內的數據均來自同一個任務,通過不同的Batch選擇不同的任務來保證訓練所有任務。另一種是不同數據域的 Batch 組成,即Batch 內的數據來自不同的任務。同數據域的Batch組成面臨的問題是當模型中使用BatchNorm這一常見的操作時,因為訓練時的統計值(單任務統計值)和測試時的統計值(多任務統計值)差異較大,導致模型效果較差。如下表所示,通過ResNet50結構在人體Market1501和物品SOP兩個任務中驗證,使用混合數據域方案可以大幅提高兩任務的效果。

03.png

在四個任務中,人體和物品的訓練集數量最小,都只有6萬張圖片左右,而人臉和車輛則各有約500萬和40萬張圖片。因此在多任務訓練過程中,呈現出了人體、物品快速過擬合,而人臉和車輛欠擬合的現象。為解決各個任務數據不均衡導致的過擬合問題,通過在訓練過程中使用Drop Path正則化方法,在人體和物品任務中實現mAP1%~3%的提升,同時其他任務效果持平或更好。\ \

\

單模型刷新10項公開數據集SOTA結果

基於多任務協同訓練方案得到的城市視覺All in One UFO模型,和之前的單任務SOTA結果相比,在4個任務的10個測試集上都達到了新的SOTA,同時相比使用同樣模型結構的單任務結果,在多數任務上UFO也表現的更好,證明了多任務之間信息借鑑機制的有效性。

22.png

在上圖中,灰色表示表示城市視覺All in One UFO模型的結果,橙色表示和UFO模型使用相同模型結構的單任務結果,藍色表示之前同樣數據集上最優的單任務結果。以上所有結果都不使用預訓練數據,同時無重排序策略。\ \

One for All:

靈活、可伸縮的彈性部署方案

\ \

受算力和存儲的限制,大模型無法直接部署在邊緣設備上。一個針對雲端設備開發的模型要部署到邊緣設備或端設備時往往要進行模型壓縮,或完全重新設計,而預訓練大模型的壓縮本身需要耗費大量的資源。\

\

另外,不同任務對模型的功能和性能要求也不同,例如人臉識別門禁系統只需具備人臉識別功能即可,智慧社區的管控系統則需要同時具備人臉識別和人體分析的能力,部分場景還需要同時具備車型識別及車牌識別能力。即便是同樣的人臉識別任務,門禁系統和金融支付系統對模型的精度和性能要求也不同。目前針對這些任務往往需要定製化開發多個單任務模型,加之需要適配不同的硬件平台,AI模型開發的工作量顯著增長。\ 針對大模型的開發和部署問題,UFO給出了One for All的解決方案,通過引入超網絡的概念,超網絡由眾多稀疏的子網絡構成,每個子網絡是超網絡中的一條路徑,將不同參數量、不同任務功能和不同精度的模型訓練過程變為訓練一個超網絡模型。訓練完成的One for All UFO超網絡大模型即可針對不同的任務和設備低成本生成相應的可即插即用的小模型,實現one for all tasks 和one for all chips的能力。\ \

12.png

\ \

超網絡設計與訓練方案

UFO基於Vision Transformer結構設計了多任務多路徑超網絡。超網絡分為多路徑FFN超網和與可伸縮attention超網兩部分。與谷歌Switch Transformer不同的是,UFO的超網不同的路徑除可選擇不同FFN單元,同時Attention模塊支持根據不同任務彈性伸縮,實現網絡的搜索空間擴展,為硬件部署提供更多可選的子網絡,並提升精度。\ \ UFO還專門設計了針對多任務超網絡的訓練方案。首先針對超網絡中的FFN超網模塊,每個任務的每個block中會自動學習共享FFN(FFN-shared)和該任務專屬FFN(FFN-taskX)的加權係數,所有任務都會更新共享FFN的參數,特定任務只會更新專屬的FFN參數。在FFN超網訓中,對於每個block, 每個子網絡都有三種不同的路徑選擇,即選擇共享FFN,選擇專屬FFN或者選擇加權的FFN。對於所有的FFN,都可以選擇不同的放縮係數。因此FFN超網絡中共有中共有(T3ratio)^L種不同的FFN路徑,其中T為task的數量,L為網絡的層數, ratio為放縮係數的數量。而對於self-attention超網,每個子網絡可以選擇不同的Head數量以及block的重複次數。\ \

13.png

One for all tasks

由於在訓練超網的過程中使用了各個任務的數據,並對超網施加任務約束,可以讓相關的任務共享更多的參數,而不相關的任務之間儘量減少干擾,從而獲得針對不同任務最優的子網絡模型。在業務應用時,只需要根據不同子網絡在特定任務的效果,抽取出對應的子網絡結構和參數,即可直接部署,無需重複訓練。

One for all chips

針對不同平台存儲容量和算力不同,從訓練好的UFO超網絡模型中選擇不同大小和計算量的子網絡進行部署。由於超網絡中子網絡的數據眾多,每個子網逐一測試精度和延時並不現實,因此在UFO中,使用了GP-NAS【1】中的基於高斯過程的超參數超參估計技術,只需採樣超網絡中少量子網絡進行評估,即可準確預測出其他網絡的精度和速度。

15.png

單超網絡支撐智慧城市多任務靈活部署

基於上述方案,使用公開數據訓練的One for All UFO超網絡模型可以在智慧城市人臉、人體、車輛和物品4類任務的6個公開測試集上精度達到SOTA,同時從UFO超網絡中抽取的子網絡,在參數量壓縮20%~30%的情況下,同樣可以超過之前SOTA的結果。

102.png

*\ 結語*

儘管大模型一次次刷新了記錄,展現出驚人的效果,但對於工業界而言,勢必要面對如何應用落地的問題。百度提出的統一特徵表示優化技術(UFO),給出了預訓練之外的另一個解決方案:在模型生產層面,通過All in One方案,充分利用大數據和大模型帶來的收益,將多任務整合至一套訓練框架和模型,通過跨任務的信息量帶來更高的特定任務收益。在部署層面,基於One for All方案,僅使用單個超網便可支撐不同任務模型在不同平台、不同算力設備上的自適應部署,實現模型的即插即用。\

目前UFO All in One模型已經在飛槳PaddlePaddle上開放,UFO One for All模型也將在近期開放,瞭解更多UFO技術細節,可以通過以下鏈接:https://github.com/PaddlePaddle/VIMER/tree/main/UFO\ 附錄【1】GP-NAS: Gaussian Process based Neural Architecture Search,CVPR 2020