目錄
一、EVA
1、概述
2、方法
二、EVA-02
1、概述
2、架構
三、EVA-CLIP
1、概述?
2、方法
四、EMU
1、概述
2、架構
3、訓練細節
4、評估?
一、EVA
1、概述
? ? ? ? 為探尋大規模表征學習任務的MIM預訓練任務在ViT基礎上擴展到1B參數量規模,結合10M級別(29.6M)未標注數據時的性能極限,構建高效、可擴展的視覺基礎模型EVA。
? ? ? ? EVA模型經過預訓練后,可以實現數據量減少,計算資源有限,卻可以擴展更高參數量,并超越以往同數據量下的(open data)下的圖像/視頻上的基準任務SOTA。并且顯著提升CLIP模型訓練和優化穩定性。
? ? ? ? 表征學習:讓機器自動學習數據中的本質特征,替代傳統人工設計特征(如SIFT,HOG),通過神經網絡來逐層提取特征,再將預訓練的表征泛化到多種下游任務中,在訓練過程中無需人工標注數據,利用自監督經數據本身學習。
? ? ? ? 掩碼圖像建模(MIM):受NLP中BERT(隨機語言建模)啟發,遷移到視覺領域,隨機遮蓋輸入圖像的部分區域,訓練模型基于上下文預測被遮蓋內容。
2、方法
語義特征標記化的局限性
????????傳統BEiT方法需要將視覺特征(Image)通過tokenizer(就是一個VQ-VAE編碼器)離散成Tokens,并預測這個Tokens。主要目的是訓練一個特征提取器(也就是BEiT encoder),可以用于下游任務,類似ViT可以用與支撐CLIP做跨膜態的檢索,分類等下游任務。
? ? ? ? 具體做法,效仿MAE,將Image切成patches后進行random mask并flatten,經過BEiT encoder得到完整的包含預測圖像信息的tokens,最終經過decoder 重建圖像。
? ? ? ? 但是在EVA論文中提出,這種方法在量化過程中損失細微特征,并且離散空間難以表達視覺概念的連續性。并且做了以下實驗,實驗對比了以往CLIP方法,利用tokenizer進行訓練,利用EVA方法進行訓練在ImageNet上進行圖像分類和ADE20K上進行語義分割下游任務。可以看到不帶tokenizer時,800epochs就可達到85.5%的ImageNet精度,帶tokenizer時需1600輪才能持平,證明了tokenizer方法脫緩了收斂,并且沒有增益。
? ? ? ??
特征蒸餾機制失效?
? ? ? ? 以往的蒸餾機制在長周期訓練下精度增長并不明顯,甚至阻礙了本身CLIP模型在下游任務的的精度增長。
? ? ? ? 傳統方法在表征學習中引入tokenizer的離散化和蒸餾機制,導致限制了表征能力,同時收斂效率下降,難以支撐更大參數級的模型訓練。
具體做法
? ? ? ? EVA方法先通過預訓練MIM算法遮蔽圖像塊預測CLIP特征,學習通用視覺表征。先輸入圖像進行分割得到patches,并隨機遮蔽40%的塊,并通過ViT編碼器得到特征,而預訓練的CLIP作為一個Teacher Model對EVA進行蒸餾,記住最后推理用的是這個EVA部分。
? ? ? ? 之后凍結預訓練的主干部分,添加不同任務的特定頭,比如圖像分類添加線性分類頭在ImageNet上微調,實例分割中添加Cascade Mask R-CNN在Objects365等數據集上微調,視頻動作識別中擴展到視頻空間。
? ? ? ? 最后應用于CLIP中,實現EVA-CLIP,再后面繼續介紹。
二、EVA-02
1、概述
? ? ? ? EVA-02基于EVA-01在結構上加了一些小的trick,將主干網絡ViT修改為加trick后的TrV,訓練過程中Teacher Model使用EVA-CLIP(EVA-01+CLIP),并且特征提取部分用了更小的參數量,在下圖也可以看到,在不同的任務上全面碾壓EVA-01。
2、架構
? ? ? ? EVA-02從以往的ViT架構替換成Transform Vision(TrV),主要就是加了一些小的創新,可以看到包括sub- LN,xavier歸一化,SwiGLU,2D RoPE等方法。
? ? ? ? 之后就是做了對比實驗,驗證EVA-02方法相比于以往方法的優勢,其中ViT-B+VQKD-B就是BEiT模型,ViT-B+CLIP-B就是EVA-01,ViT-B+EVA-CLIP是EVA-CLIP,可以看到學生模型參數過于龐大時,也會造成收斂更慢,另外EVA-02也有更大的擴展性(提高數據量仍然可以提點)。
? ? ? ? ?EVA-02在訓練上仍然用EVA-01相同的方式,數據集使用了比EVA-01更多的38M的數據量。并使用EVA-CLIP作為teacher model,尤其是在zero-shot的多任務上,EVA-CLIP可以全面超過CLIP的性能。
三、EVA-CLIP
1、概述?
? ? ? ? 由于CLIP模型隨著數據量增加,訓練時,計算量更大,訓練不穩定,EVA-CLIP在保持CLIP模型參數量的同時,用更低的訓練成本,達到更多訓練數據量的更高的準確率。(其中下圖圓半徑代表訓練數據量大小)。
2、方法
?(1)采用預訓練的EVA模型提取特征并加速收斂
?(2)使用LAMB優化器訓練EVA-CLIP,LAMB優化器專門用于大batchsize而設計,支持自適應分層學習率與超大規模batchsize訓練(131K)。
?(3)隨機mask 50%的image tokens,降低一半復雜度,時間減半,利用Flash Attention加速注意力計算,降低訓練15%耗時。
? ? ? ? 數據上合并LAION-2B與COYO-700M構建Merged-2B數據集,訓練硬件支撐144 x A100(80G)訓練5B模型,太恐怖了)
四、EMU
1、概述
? ? ? ? EMU是一種統一的多模態基礎模型,通過自回歸訓練實現圖像、文本、視頻的跨模態理解,并且可以支持無差別處理單一模態或者多模態的輸入,比如交替出現的圖像和文本。EMU作為多模態的接口,支持T2I,I2T,上下文生成圖像,并且在視頻問答,視覺問答,圖像理解,圖像生成等零樣本/少樣本任務中,一度超越當時主流多模態模型的性能。
? ? ? ? 下圖給出圖像描述,圖像問答,圖像融合,上下文圖像轉文字,視頻問答上的效果。
2、架構
? ? ? ? EMU由四部分組成,視覺編碼器,因果變換器,多模態建模器,視覺解碼器,如下圖。
? ? ? ? 視覺解碼器利用EVA-CLIP(40層ViT)提取圖像幀視頻幀特征,(視頻幀特征擴展本身EVA-CLIP的維數,在EVA-CLIP中已經訓練出)
? ? ? ? 因果變換器目的是將二維的圖像特征信息,轉換為有因果關系的線性序列,并且添加[IMG]為起止標記。因果變換器本質上是一個12層的Transformer的Decoder部分,包含因果自注意力,交叉自注意力,FFN。
? ? ? ? 多模態建模器,以LLaMA-13B為基礎,處理圖文交錯的序列。LLaMA是一個decoder-only Transformer架構。
? ? ? ? 視覺解碼器通過微調Stable Diffusion,將回歸出的視覺嵌入解碼成圖片。
? ? ? ? 而另外兩個分類頭和回歸頭將通過訓練時監督部分進行介紹。
? ? ? ? 訓練的目的就是輸入一組unlabeled的語料庫可以是圖文對,圖文交替文檔,甚至有字幕的視頻,最后使得回歸出來的最接近語料庫。所以在訓練中設計了分類頭和回歸頭,分類頭用于輸出離散文本序列,通過交叉熵來監督。回歸頭用于對視覺tokens經decoder解碼圖像,利用L2損失監督。怎么分出是用分類頭還是回歸頭呢,把所有需要進分類頭的加一個[IMG]。
3、訓練細節
? ? ? ? 數據集
????????圖文對: LAION-2B,LAION-COCO,LAION-2B為LAION-5B的子集,LAION-COCO共600M由BLIP標注
? ? ? ? 視頻文本對:WebVid-10M,并用啟發式規則剔除text中無用信息。
? ? ? ? 圖文交織信息:Multimodal-C4包含7500w圖文文檔,并在每個文檔中抽取1024長度序列
? ? ? ? 視頻文本交織信息:YT-Storyboard-1B包含從Youtube上的18M video,從下圖可以看到,根據時間軸上圖片和文字理解的因果關系,組成了一個視頻文本交織文檔
? ? ? ? 訓練過程? ?
? ? ? ? 訓練過程中凍結Image encoder,LLaMA,以及Decoder中的VAE部分,只保留U-Net為training。并在訓練過程中隨機選擇10%的圖像嵌入進行丟棄,以此來實現classifier-free的工作。
? ? ? ? 指令微調
? ? ? ? 指令微調的目的:通過監督微調使得預訓練模型可以理解復雜指令,適應多模態交互場景(如問答、描述、推理),并解鎖零樣本/少樣本任務能力,克服預訓練任務的局限性。
? ? ? ? 微調過程中,凍結預訓練EMU的所有參數,僅添加LoRA模塊,插入到Transformer的自注意力層中。
? ? ? ? 這里簡要插入一段具體做法的代碼。LoRA的配置和pert模型轉換函數通過peft引入,LoraConfig類用于建立一個LoRA,其中r代表rank,lora_alpha=16代表權重矩陣分解成兩個低秩矩陣,并縮放到以往的1/16,來減少參數量。target_modules指定同時影響哪些投影層添加到LoRA中。而get_peft_model則將預訓練模型轉換為PEFT模型并引入LoRA模塊,這樣不需要全參數的微調整個模塊,參數量只需要增加13M(小于總參數量1%),并且存儲開銷只有52MB。
? ? ? ? 數據上采用數據混合策略,包括語言指令,圖像指令,視頻指令,并使用<System Message>[USER]:<Instruction>[ASSISTANT]:<Answer>的方法進行結構性對話,最后計算<Answer>部分的輸出損失。
????????根據上表對比,Emu-I(經過指令微調)在各項指標中高于Emu。Emu *是用于建立復雜開放任務上的,通過從訓練集中選取兩個同類任務文本,并移除對應圖片,作為前綴輸入到prompt中的方法。Emu*可以從VQA任務中理解,如下。而Emu則只有當前問題,如描述該圖片。
# Emu* 輸入構建偽代碼
text_prompt = """
Q: What is in the image? A: A cat. # 示例1(無圖)
Q: What color is it? A: White. # 示例2(無圖)
Q: {當前問題} # 待回答問題
"""
input_sequence = [圖片嵌入] + tokenize(text_prompt) # 圖文交錯序列
output = model.generate(input_sequence) # 生成答案
4、評估?
? ? ? ? 對EMU的評估建立了多維度的完善評估體系。
任務類型 | 數據集 | 評估指標 | 創新點 |
圖像理解 | COCO, NoCaps | CIDEr↑ | 零樣本超越Flamingo-9B 33分 |
視覺問答 | VQAv2, OKVQA | 準確率↑ | 引入知識推理鏈(table 10) |
視頻理解 | MSVDQA, NextQA | WUPS↑ | 首次支持視頻字幕交錯輸入 |
文本生成圖像 | COCO | FID↓ | 聯合視覺嵌入回歸 |
開放場景理解 | MM-Vet | 多能力綜合得分 | 6大核心能力分解評估 |
? ? ? ? 思維鏈(Chain?of Thought,CoT)在EMU中作為一種多模態推理增強技術,通過生成中間推理步驟來提升復雜任務的表現。先對輸入圖像進行文本描述得到"caption",再將描述與問題拼接獲得新問題的答案。"A picture of {caption}.based on the picture,{question} answer:"
參考論文:
[2211.07636] EVA: Exploring the Limits of Masked Visual Representation Learning at Scale
[2303.11331] EVA-02: A Visual Representation for Neon Genesis[2303.15389] EVA-CLIP: Improved Training Techniques for CLIP at Scale
?[2309.15807] Emu: Enhancing Image Generation Models Using Photogenic Needles in a Haystack