本系列筆記筆記基於2023.07 CVPR研討會Recent Advances in Vision Foundation Models 視覺基礎模型回顧的論文,與研討會5場演講(附上投影片與影片連結),更新近期視覺與多模態模型的發展趨勢與前沿技術
主題 | 資源 | 演講者 | 個人筆記連節 |
---|---|---|---|
Opening Remarks & Visual and Vision-Language Pre-training CH2 Visual Understanding |
Slides, YouTube | Zhe Gan | 筆記連結 |
From Representation to Interface: The Evolution of Foundation for Vision Understanding CH2 Visual Understanding |
Slides, YouTube | Jianwei Yang | 筆記連結 |
Alignments in Text-to-Image Generation CH3 Visual Generation |
Slides, YouTube | Zhengyuan Yang | 筆記連結 |
Large Multimodal Models | Slides, Notes, YouTube | Chunyuan Li | |
Multimodal Agents: Chaining Multimodal Experts with LLMs | Slides, YouTube | Linjie Li |
多模態基礎模型近況概述
圖像編碼器訓練 (Image Encoder Training)
模型設計 (Model Design)
目標函數 (Objective Functions)
與其它方法的組合 (Combination with Other Methods)
基於語言的圖像生成 (Text-to-Image Generation)
將視覺專家知識注入語言模型 (Injecting Visual Knowledge into Language Models)
支持更多多模態任務 (Enabling More Multimodal Capabilities)
總結與未來方向 (Summary and Future Directions)
我們要回答的問題是:假設我們有一個圖像-文本形式的數據,其中圖像的描述是「狗正在草地上奔跑」
本篇演講著重在探討Q1,對應2023.09。Multimodal Foundation Models: From Specialists to General-Purpose Assistants - CH2 Visual Understanding
總體來說,監督學習是一種標準的圖像編碼器訓練範式,產生了從AlexNet到Vision Transformer等多個經典模型,但需要大量人工標註數據。業界大規模弱標註數據集為訓練更強大編碼器提供了可能。
數據擴展的力量
多模態人工智能的發展離不開數據,而數據的擴展也至關重要。大量的數據集能為模型增添動力。語言監督尤其是一種強大的指導形式,它超越了傳統的封閉系統標籤。利用大規模數據比以往任何時候都更為重要
Powered architectures ranging from AlexNet, ResNet, ViT, to Swin, and allthe modern vision backbone
CLIP是一種學習圖像表示的方法,它使用來自網絡規模數據的噪聲文本監督來訓練模型。該方法分為三個主要部分:
- 對比預訓練(Contrastive pre-training):
- 圖像和文字通過各自的編碼器轉換成特徵向量。
- 文字編碼器將文本描述轉換成一系列的文字向量(
)。 - 圖像編碼器將圖像轉換成圖像向量(
)。
通過對比學習,模型被訓練以對齊相應的文字和圖像向量,這意味著正確配對的圖像和文本會被拉近,而不相關的配對會被推遠。- 從標籤文本創建數據集分類器:
- 用文字編碼器將標籤文本(例如"plane"、"car"、"dog"、"bird"等)轉換成文字向量。
- 這些向量可以用來建立一個數據集分類器,它將能夠將新圖像分類到這些標籤中。
- 用於零樣本預測(Use for zero-shot prediction):
- 零樣本學習是指模型能夠識別在訓練過程中從未見過的類別
- 圖像編碼器將新圖像轉換為圖像向量。
- 通過比較圖像向量和標籤文字向量的相似性,模型可以對圖像進行分類,即使它在訓練數據中沒有對應的標籤。
CLIP展示了大規模數據和簡單方法的威力,數據規模是成功的關鍵,CLIP啟發了大量後續工作,徹底改變了視覺語言領域
The idea is simple, and can be dated back to a long while ago
Quote from the FLIP paper
語言是比傳統封閉集標籤更強大的監督形式。語言提供了豐富的監督資訊。因此,在語言監督訓練中,提高規模是獲得良好結果的關鍵,這可以透過增加容量(模型擴展)和增加信息(數據擴展)來實現。
Language is a stronger form of supervision than classical closed-set labels. Language provides rich information for supervision. Therefore, scaling, which can involve increasing capacity (model scaling) and increasing information (data scaling), is essential for attaining good results in language-supervised training.CLIP [52] 是「簡單算法良好擴展性」的優秀範例。CLIP 的簡單設計使得它能夠在更大的規模上輕鬆執行,相比之前的方法取得了巨大的飛躍。我們的方法在很大程度上保持了 CLIP 的簡潔性。
CLIP [52] is an outstanding example of “simple algorithms that scale well’. The simple design of CLIP allows it to be relatively easily executed at substantially larger scales and achieve big leaps compared to preceding methods. Our method largely maintains the simplicity of CLIP
Since the birth of CLIP, tons of follow-up works and applications
利用開源大規模數據集重新訓練OpenCLIP模型,通過使用噪聲和更多噪聲的數據進行擴展
圖中描繪了一種新的方法來擴展下一代圖像-文本數據集的構建,名為 DataComp。它的核心思想是改變傳統的數據集或算法設計方法,而是保持CLIP(Contrastive Language–Image Pre-training)訓練方法不變,並選擇不同的數據集來進行訓練。
圖中的四個部分分別代表了這個過程的不同階段:
A. 選擇規模(Choose scale):決定訓練模型時使用的數據集的規模,可以是小型(small)、中型(medium)、大型(large)或超大型(xlarge)。
B. 選擇數據(Select data):從一個共通池(CommonPool)選擇子集(subset),或者從外部數據源(External data sources)引入數據,或者使用你自己的數據軌道(Bring your own data track)。這涉及到過濾軌道(Filtering track),用於挑選出候選數據集(Candidate dataset)。
C. 訓練(Train):使用固定的架構和超參數訓練一個CLIP模型。
D. 評估(Evaluate):在38個零樣本(zero-shot)下游任務上評估模型的效能。
這個過程的目標是創建更加多樣化且具有擴展性的圖像-文本配對數據集,從而能夠提高模型的泛化能力並在多種任務上實現更好的性能
FLIP: 通過遮罩進行 CLIP 訓練的擴展Scaling CLIP training via masking
這張圖展示了一種增強型語言-圖像學習方法的概念,名為 Knowledge-Augmented Language-Image Learning。它的目的是解釋較罕見的菜餚概念。
在這個過程中,首先有一個原始數據集(Original Dataset),包含圖像(Image)和與之相關的語言描述(Language)。然後,進行查詢構造(Query Construction),基於數據集中的圖像和語言信息形成一個查詢(Query)。這個查詢被用於知識獲取(Knowledge Acquisition)階段,這裡會檢索外部知識源,如 WordNet 和 Wiktionary,來獲取有關圖像中物體的深入知識。
這個概念的動機例子包括解釋“Takoyaki”和“Sashimi”這兩個日本菜餚。例如,Takoyaki 被描述為一種球形的日式餃子,裡面填充了切碎的章魚、天婦羅碎片、醃製薑和青蔥。而 Sashimi 則是由生魚或肉的薄片組成的菜餚。這些描述幫助系統理解圖像內容,並能更準確地與圖像相關聯
STAIR: Learning Sparse Text and Image Representation in Grounded Tokens
將圖像和文本映射到高維稀疏嵌入空間,每一維度代表字典中的一個詞,並通過相關權重增強可解釋性
補充:概念上就是讓模型產出的embedding數值盡可能集中在少數維度且獨立,並盡可能讓特定維度與特徵或字詞有直接對映關係,從而俱備解釋性(通常也會帶來性能提升),可見 Variational Sparse Coding (VSC)論文筆記
- 映射到高維稀疏嵌入空間:STAIR將圖像和文本映射到一個包含許多維度的嵌入空間,其中每一維度都對應於一個大字典中的(子)詞。
- 圖像的視覺編碼器生成的稀疏嵌(embeddings)會對應到文本描述中的關鍵詞,如“bird”和“tree”,並且每個詞都有一個與之相關的權重。這不僅提高了模型的預測準確性,同時也提供了對其做出這些預測的判斷依據
- 稀疏嵌入的每個維度:在這個高維空間中,每個維度代表一個特定的(子)詞,並且與之相關的是一個非負純量值,這個值對應於該(子)詞的權重。這使得嵌入的解釋性增強,因為我們可以清晰地看到哪些(子)詞對於圖像或文本描述的表達最為重要。
- 改進的表現:與CLIP相比,STAIR在零樣本文本/圖像檢索任務中表現更好,這一點通過在COCO和Flickr30K數據集上的實驗結果得到證明。表格中顯示了各種回溯指標(如 R@1, R@5, R@10)的比較,STAIR在大多數指標上超越了CLIP。
- 使用預訓練的CLIP模型:ImageBind 利用了預訓練的CLIP模型作為基礎,並保持它不變,意味著CLIP模型的參數在這個過程中是固定的,不會進行學習
- 學習其他資料形態的編碼器:目的是使這些不同形態的數據能夠與CLIP模型的嵌入空間對齊,即使這些數據來自於與CLIP訓練時不同的分布。
- 跨模態檢索(Cross-Modal Retrieval):這部分展示了模型如何理解和檢索跨越不同資料形態的相關信息。例如,根據火聲的音頻,可以檢索到火焰的圖像或視頻。
- 嵌入空間算術(Embedding-Space Arithmetic):顯示了嵌入空間的算術操作,例如將波浪的圖像與波浪的聲音相加,以進行相關檢索或生成。
- 音頻到圖像生成(Audio to Image Generation):這部分示範了模型如何根據特定的音頻(例如狗吠、引擎聲、火聲、雨聲)生成相對應的圖像。
整體來看,ImageBind的設計著重於強化不同資料形態之間的互操作性和對齊,這樣可以在理解和生成跨模態內容時提供更大的靈活性和準確性
Figure 2.6: A high-level comparison of contrastive loss and captioning loss for image encoder pretraining
圖2.6提供了CLIP、VirTex/SimVLM和CoCa三種模型訓練方法的高層次比較:
- CLIP(Contrastive Language-Image Pre-training)
- 使用對比損失(Contrastive loss)進行預訓練,使模型能進行零樣本(zero-shot)圖像分類,並且表現出強大的擴展能力。
- VirTex/SimVLM:
- 利用標題損失(Captioning loss)單獨進行預訓練。而SimVLM則採用前綴語言模型預訓練,規模更大。
- 這些模型的架構類似於多模態語言模型,例如GIT,但VirTex和SimVLM的目標是從頭開始預訓練圖像編碼器。
- CoCa:
- CoCa使用對比損失和標題損失進行預訓練。
- CoCa的模型架構與ALBEF相似,但旨在從頭開始預訓練圖像編碼器,而不是使用已經預訓練的模型。
這三種方法展示了圖像編碼器預訓練過程中不同策略的應用,從單一損失的應用到結合多種損失的複合策略,並強調了從頭開始預訓練的重要性,這可能對模型的泛化能力和多模態任務的性能有積極影響
FILIP (Fine-grained Image and Language Interpretation Profile): Rine-grained supervision
- 雙編碼器結構:FILIP仍然使用雙編碼器(一個圖像編碼器和一個文本編碼器),而不是融合編碼器。
- 計算損失:首先計算圖像和文本之間的token-wise相似性,然後通過最大池化(max pooling)來聚合這個矩陣。
- 學習詞-區塊對齊:這種方法允許模型學習單詞和圖像中對應區塊之間的關聯。
在右側的視覺比較中,展示了FILIP與CLIP在處理兩個不同圖像(氣球和白蝴蝶)時的區別。對於每個圖像,FILIP模型能夠更精確地定位到與文本描述相關的圖像區塊。例如,在氣球的圖像中,FILIP標示出與文本描述相對應的圖像區域,而CLIP則顯示了一個更分散、不那麼精確的關注模式。這說明FILIP在理解和解釋圖像內容方面提供了更細緻的途徑
CoCa使用混合圖像-文本和圖像標籤(例如JFT-3B數據集)進行預訓練,並通過添加一個生成分支來增強模型性能並賦予新功能,如圖像標題生成和視覺問答(VQA)
CoCa: Contrastive Captioner
- 多模態文本解碼器:用於生成任務,如圖像標題生成。
- 對比損失和標題生成損失:結合了這兩種損失來同時進行對比預訓練和標題生成。
- 預訓練:透過處理圖像和文本數據來訓練模型,以改進視覺識別能力。
- 零樣本、凍結特徵或微調:顯示了模型在不同設定下的應用,包括零樣本學習、在固定特徵上應用(不進行進一步的學習)或對模型進行微調以改善性能。
圖中的模型流程圖說明了從圖像和文本輸入到多模態文本解碼器的流程,以及如何通過對比損失和標題生成損失來聯合優化這兩種模式。這種方法與其他視覺語言模型(如ALBEF)類似,但CoCa的主要區別在於它從零開始學習更好的圖像編碼器
How about using the captioning loss alone?
使用語言監督來訓練卷積神經網絡(ConvNet)和Transformer進行圖像標題生成,然後轉移這些特徵來改善下游視覺任務(如物體檢測)的性能
CoCa與其他先進的表示學習方法相比在準確度方面的性能。這些比較表明,在某些情況下,結合了生成任務的模型能夠提供與純粹對比學習方法相比的競爭甚至更好的性能
補充: 自監督訓練中搭配的任務是提升表徵學習的關鍵
圖2.7概述了三種自監督圖像表示學習方法:SimCLR、SimSiam和DINO。
SimCLR (Simple Framework for Contrastive Learning of Representations):
- 使用對比學習來訓練模型。通過最大化正樣本之間的一致性(similarity),並使負樣本之間的表示不同。
- 編碼器
產生表示 ,之後通過投影頭 轉換為 。 - 目標是使正樣本的
靠近,而使負樣本遠離。 SimSiam (Simple Siamese Networks):
- 採用非對比學習方法。透過兩個相同的編碼器
生成的表示,使用一個預測頭 來預測一個表示的未來狀態,而另一個表示則通過stop-gradient操作來固定。 - 主要是透過相似性來學習而不需要負樣本。
DINO (Self-Distillation with No Labels):
- 同樣是非對比學習方法,但與SimSiam不同,DINO使用知識蒸餾概念,其中一個「學生」模型的輸出被用來匹配一個「教師」模型的輸出。
- 教師模型的表示是通過**指數移動平均(EMA)**更新的,而學生模型則直接從教師模型學習。
這三種方法都在自監督學習領域取得了突破,它們通過不同的學習策略來學習強大的視覺表示,並在沒有標註數據的情況下提升了模型的泛化能力。
Image credit: Chen et al. (2020a), Chen and He (2021), Caron et al. (2021).
討論CLIP這樣的對比學習方式結合a) 監督學習、b)只有影像的對比學習、c)遮掩影像(MIM)結合的表徵學習效果
講者談到提高模型訓練效率時提出,透過隨機遮蔽的圖像塊,可以改進CLIP模型的訓練效率。然而,進一步探究顯示,如果僅僅是簡單地將不同訓練方法結合在一起,並不能形成更強的支撐結構(backbone)。儘管如此,演講者還是指出,結合CLIP與MIM(Masked Image Modeling)的訓練方法在某些情況下看似是正面的。這表明將這兩種方法結合起來可能是直觀的,並且有潛力發揮協同效應。演講者在結尾前提到,儘管CLIP與MIM結合的直接成效可能並非全然正面,但嘗試將這兩者融合的過程本身仍具有價值,因為它基於對這些模型能力的直覺理解
...略...
圖2.12展示了BEiT-3模型,這是一個結合了CLIP(Contrastive Language-Image Pre-training)和MIM(Masked Image Modeling)的模型訓練方法
BEiT-3利用多向變換器(multiway transformer)對圖像/文本和圖像-文本聯合數據進行遮蔽數據建模(masked data modeling)。這種建模方法可以同時理解圖像和文本信息,從而提高模型在各種視覺和視覺-語言任務上的性能。
在結合CLIP和MIM的研究中,存在兩種不同的互動方式:
淺層互動:
- 發現從CLIP提取的圖像特徵是MIM訓練的好目標,因為CLIP的圖像特徵可能捕捉到MIM訓練中缺失的語義。
- 沿這條線,有的工作提議直接回歸CLIP特徵,而BEiT v2則先將CLIP特徵內的信息壓縮成離散的視覺代幣,然後進行常規的BEiT訓練。
深層整合:
- 不是將CLIP作為MIM訓練的目標,如果目標是結合CLIP和MIM進行聯合模型訓練,目前的階段,MIM似乎不會在規模上改善CLIP模型。
儘管目前階段CLIP和MIM的結合並沒有顯示出有希望的結果,但BERT和BEiT的結合非常有前景。在BEiT-3中,作者展示了可以通過設計一個多向變換器對圖像/文本和圖像-文本聯合數據進行遮蔽數據建模,並在廣泛的視覺和視覺-語言任務上達到最先進的性能
列出目前重要的視覺編碼器發展史