大模型應用新正規化:統一特徵表示優化(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技術細節,可以通過以下連結:http://github.com/PaddlePaddle/VIMER/tree/main/UFO\ 附錄【1】GP-NAS: Gaussian Process based Neural Architecture Search,CVPR 2020