天天看點

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

作者丨科技猛獸

編輯丨極市平台

本文為簽約作者原創,轉載須經授權,白名單賬号需添加極市名片。

本文目錄

1 BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數 (ICML 2023)

(來自 Salesforce,ALBEF,BLIP 作者團隊)

1.1 背景和動機

1.2 BLIP-2 架構

1.3 Q-Former 訓練第1步:聯合視覺編碼器訓練

1.4 Q-Former 訓練第2步:聯合視覺編碼器和大型語言模型訓練

1.5 BLIP-2 預訓練方法

1.6 實驗結果

1.7 BLIP-2 的局限性

太長不看版

BLIP-2 是一種多模态 Transformer 模型,主要針對以往的視覺-語言預訓練 (Vision-Language Pre-training, VLP) 模型端到端訓練導緻計算代價過高的問題。

是以,如果能夠使用預訓練好的視覺模型和語言模型,我把參數當機,應該能夠節約不少的計算代價。

BLIP-2 就是這樣,這個工作提出了一種借助現成的當機參數的預訓練視覺模型和大型語言模型的,高效的視覺語言預訓練方法。

但是,簡單的當機預訓練好的視覺模型的參數或者語言模型的參數會帶來一個問題:就是視覺特征的空間和文本特征的空間,它不容易對齊。那麼為了解決這個問題,BLIP-2 提出了一個輕量級的 Querying Transformer,該 Transformer 分兩個階段進行預訓練。第一階段從當機的視覺編碼器中引導多模态學習,第二階段從當機的文本編碼器中引導多模态學習。

經過這樣的流程,BLIP-2 在各種視覺語言任務上實作了最先進的性能,同時需要訓練的參數也大大減少。

1BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

論文名稱:BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models

論文位址:

https://arxiv.org/pdf/2301.12597.pdf

代碼位址:

https://github.com/salesforce/LAVIS/tree/main/projects/blip2

Demo 位址:

https://huggingface.co/spaces/Salesforce/BLIP2

1.1 背景和動機

視覺語言訓練 (Vision-Language Pre-training, VLP) 的研究在過去幾年中取得了快速的發展,研究者們開發了規模越來越大的預訓練模型,不斷推動各種下遊任務的發展。但是,因為使用了大模型。大資料集,而且采取了端到端的訓練,大多數最先進的視覺語言模型在預訓練過程中會産生很高的計算代價和經濟成本。

多模态的研究屬于是視覺和語言研究領域的交叉,是以大家很自然地期望視覺和語言模型可以從現成的視覺,語言的預訓練模型中獲得。為了節約視覺語言模型在預訓練過程的計算代價,本文提出的 BLIP-2 希望借助現成的預訓練好的單模态視覺模型和單模态文本模型。

這樣做的好處是:預訓練的視覺模型能夠提供高品質的視覺表征。預訓練的語言模型,尤其是大型語言模型 (LLM),提供了強大的語言生成和零樣本遷移能力。為了減少計算成本并抵消災難性遺忘的問題,單模态預訓練模型在預訓練期間保持當機。

但是,簡單的當機預訓練好的視覺模型的參數或者語言模型的參數會帶來一個問題:就是視覺特征的空間和文本特征的空間不容易對齊。出現這個問題的原因是:文本模型 LLM 在單模态預訓練期間沒有看過對應的圖檔,視覺模型在單模态預訓練期間沒有看過對應的文本,是以這個對齊特别具有挑戰性。

為了解決這個問題,BLIP-2 提出了一個輕量級的 Querying Transformer,如下圖1所示。該 Transformer 分兩個階段進行預訓練。Q-Former 是一個輕量級 Transformer,它使用一組可學習的 Query 向量從當機的視覺編碼器中提取視覺特征,并充當視覺編碼器和文本編碼器之間的瓶頸。Q-Former 把關鍵的視覺資訊傳遞給 LLM,第一個預訓練階段,強制 Q-Former 學習與文本最相關的視覺表征。第二個預訓練階段,通過将 Q-Former 的輸出連接配接到當機的 LLM 來執行視覺語言生成學習,使其輸出的視覺表征可以直接由 LLM 解釋。這樣一來,Q-Former 就可以有效地利用當機的預訓練圖像模型和語言模型。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖1:BLIP-2 模型。通過提出的 Q-Former 對齊視覺模态和文本模态

1.2 BLIP-2 架構

BLIP-2 由預訓練好的,當機參數的視覺模型和文本模型,外加所提出的可訓練的 Q-Former 構成。固定的圖像編碼器從輸入圖檔中提取視覺特征,Q-Former 架構是由2個 Transformer 子子產品構成,其中注意 Self-Attention 是共享的,可以了解為 Self-Attention 的輸入有2個,即:Queries 和 Text。

第1個 Transformer 子子產品: 是 Image Transformer,它與圖像編碼器互動,用于視覺特征提取。它的輸入是可學習的 Queries,它們先通過 Self-Attention 模組化互相之間的依賴關系,再通過 Cross-Attention 模組化 Queries 和圖檔特征的依賴關系。因為兩個 Transformer 的子子產品是共享參數的,是以 Queries 也可以與文本輸入做互動。

第2個 Transformer 子子產品: 是 Text Transformer,它既可以作為文本編碼器,也可以充當文本解碼器。

Q-Former 一共包含了 188M 參數,其權重使用 BERT-Base 做初始化,Cross-Attention 的參數做随機初始化。作者使用 32 個 Queries,其中每個 Queries 的次元為 768。Queries 随着預訓練目标一起訓練,迫使它們提取到與文本最相關的視覺資訊。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖2:Q-Former 訓練的第1步,架構是由2個 Transformer 子子產品構成,其中注意 Self-Attention 是共享的,可以了解為 Self-Attention 的輸入有2個,即:Queries 和 Text

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖3:3個目标函數對應的 Attention 的 Mask

1.3 Q-Former 訓練第1步:聯合視覺編碼器訓練

Q-Former 訓練的第一步,作者将 Q-Former 連接配接到當機參數的圖像編碼器,并使用圖像-文本對進行預訓練,那麼這一步的目标是訓練好 Q-Former,以便 Queries 可以學習到如何更好地結合文本提取圖檔資訊。

訓練的目标函數,作者遵循 BLIP 的做法,聯合優化3個具有相同輸入格式和模型參數的預訓練目标,每個目标函數使用不同的 mask Attention 來控制注意力的互動。

1 圖文對比學習 (Image-Text Contrastive Learning, ITC)

這是多模态預訓練中的經典目标函數,旨在對齊圖像和文本的表征,使其互資訊最大化。

ITC 實作的方式是:讓正樣本 (配對的圖檔文本對) 的相似度盡量高,同時讓負樣本 (不配對的圖檔文本對) 的相似度盡量低。那麼對于 Q-Former 作者實作 ITC 的方法是計算 Queries 的輸出 ZZ 和 Text Transformer 的 [CLS] token 輸出 tt 的對比學習損失。因為 ZZ 包含了多個 Queries 的輸出,是以作者首先計算每個 Queries 的輸出和 tt 之間的成對相似度,然後選擇最高的一個作為最終的圖文相似度。ITC 的 Attention Mask 方法如圖3的最右側所示,屬于 Uni-modal Self-Attention Mask,不允許 Queries 和 Text 互相看到 (互相之間的注意力值為0)。

2 基于圖像的文本生成 (Image-Grounded Text Generation, ITG)

ITG 給定一張輸入圖檔,旨在訓練 Q-Former 生成對應的文本描述。

要實作這一目的,視覺編碼器和文本解碼器之間應該有互動。而 Q-Former 恰恰阻止了這種直接互動,是以 Queries 在這裡就扮演了提取出來生成文本所需要的資訊,然後通過 Self-Attention 層傳遞給 Text token。簡而言之,Queries 應該具備這樣一種能力:提取捕獲了所有文本資訊的視覺特征。是以,ITG 的 Attention Mask 方法如圖3中間所示,屬于 Multi-modal Causal Self-Attention Mask,允許 Text 看到 Queries (Queries 裡面有視覺資訊),同時每個 Text token 隻能看到它之前的 Text token (生成式任務的基本做法)。但是不允許 Queries 看到 Text 的資訊,隻能看到自己的資訊。此外作者還将 [CLS] token 替換為一個新的 [DEC] token 作為第一個 Text token 來訓示解碼任務。

3 圖文比對任務 (Image-Text Matching, ITM)

這是多模态預訓練中的經典目标函數,旨在更加細粒度地對齊圖像和文本的表征,使其互資訊最大化。ITM 是個二分類任務,要求模型預測圖像-文本對是正樣本 (比對) 還是負樣本 (不比對)。ITM 的 Attention Mask 方法如圖3的最左側所示,屬于 Bi-directional Self-Attention Mask,允許 Queries 和 Text 互相看到。

Queries 的輸出 ZZ 捕獲了多模态資訊,把每個輸出的 Queries Embedding 通過一個二類線性分類器中以獲得 logit,并将 logit 的輸出做平均作為最終的分數。

BLIP-2 的 ITM 目标函數同樣使用了 ALBEF 中的 hard negative mining 政策。

1.4 Q-Former 訓練第2步:聯合視覺編碼器和大型語言模型訓練

在生成預訓練的階段,作者把 Q-Former 和當機參數的 LLM 連接配接起來,以利用 LLM 的文本生成能力。首先輸入圖檔還是直接輸入當機參數的 Image Encoder,得到圖像的表征。然後圖像的表征和 Queries 一起送入 Q-Former,得到 Queries 的輸出 ZZ ,經過一個全連接配接層與 Text token 的次元對齊之後輸入給 LLM Decoder。這個 Queries 的輸出就蘊含了視覺資訊,在輸入給 LLM 的時候就充當了 Soft Visual Prompt 的作用。

Queries 在經過了第1階段的訓練之後,已經學習到了如何更好地結合文本提取圖檔資訊,是以它可以有效地将最有用的圖檔資訊提供給 LLM,同時删除不相關的視覺資訊。這減少了 LLM 學習視覺語言對齊的負擔。

作者嘗試了2種大型語言模型,分别是基于純 Decoder 架構的和基于 Encoder-Decoder 架構的。對于基于純 Decoder 架構的模型,使用語言模組化目标函數進行訓練。當機參數的 LLM 的任務是根據 Q-Former 提供的視覺表征來生成文本。對于基于 Encoder-Decoder 架構的模型,把文本分成兩段,字首随着 Queries 的輸出喂給 LLM 的 Encoder,希望 Decoder 輸出字尾。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖4:Q-Former 訓練的第2步

1.5 BLIP-2 預訓練方法

預訓練資料集

和 BLIP 一樣使用下面6個資料集,圖檔數加起來大概是 129M。

  • Conceptual Captions
  • SBU Captions
  • COCO
  • Visual Genome
  • 噪聲更大的 Conceptual 12M 資料集 (有的資料失效了)
  • 額外的 web 資料集 LAION400M 的一部分,該資料集包含 115M 圖像,具有更多的噪聲文本

采用了 BLIP 裡面提出的 CapFilt 方法為網絡圖像建立合成标題。

預訓練好的視覺模型和 LLM

視覺模型使用:

  1. CLIP[1] 訓練的 ViT-L/14
  2. EVA-CLIP[2] 訓練的 ViT-g/14

LLM 模型使用:

  1. OPT[3]
  2. FlanT5[4]

1.6 實驗結果

先來看幾張 Zero-shot 指令控制圖文生成任務的實驗結果,包括視覺知識推理、視覺常識推理、視覺對話、個性化圖像到文本生成如下圖5和6所示。隻需在視覺提示之後附加文本提示作為 LLM 的輸入。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖5:Zero-shot 指令控制圖文生成任務的實驗結果

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖6:Zero-shot 指令控制圖文生成任務的實驗結果

Zero-Shot 視覺語言任務

下圖7概述了 BLIP-2 在各種 Zero-Shot 視覺語言任務上的性能。與之前最先進的模型相比,BLIP-2 在視覺語言預訓練期間實作了更好的性能,同時需要更少的可訓練參數數量。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖7:BLIP-2 在各種 Zero-Shot 視覺語言任務上的性能

Zero-shot VQA 任務

作者對 Zero-Shot VQA 任務進行了定量的評估,對于 OPT 的語言模型,Prompt 設定為 "Question: {} Answer:"。對于 FlanT5 模型,Prompt 設定為 "Question: {} Short answer:"。BLIP-2 在 VQAv2 和 GQA 資料集上取得了最先進的結果。它在可訓練參數減少 54 倍的情況下,VQAv2 上的表現優于 Flamingo80B。在 OK-VQA 資料集上,BLIP-2 沒打敗 Flamingo80B。圖8還說明了更大的視覺模型或者文本模型都有助于性能的提升。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖8:Zero-shot VQA 任務實驗結果

視覺語言表征學習的影響

BLIP-2 第一階段的表征學習預訓練 Q-Former 來學習與文本相關的視覺特征,這減少了 LLM 學習視覺語言的負擔。如下圖9所示是第一階段的表征學習對生成學習的影響。在沒有表征學習的情況下,這兩種類型的 LLM 在 Zero-Shot VQA 上的性能都要低得多。而且,OPT 會有災難性遺忘的問題,即随着訓練的進行,性能會急劇下降。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖9:視覺語言表征學習的影響

圖像字幕實驗結果

圖像字幕任務要求模型為圖像的視覺内容生成文本描述,實驗結果如下圖10所示。作者使用提示 "a photo of" 作為 LLM 的初始輸入,并使用語言模組化損失函數來訓練模型生成字幕。作者在微調期間保持 LLM 當機,并将 Q-Former 的參數與圖像編碼器一起更新。微調資料集使用 COCO,同時在 COCO 測試集和 NoCaps 驗證集上評測。BLIP-2 在 NoCaps 上比現有方法取得了顯着的改進實作了最先進的性能,顯示出對域外圖像的強大泛化能力。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖10:圖像字幕實驗結果

視覺問答實驗結果

給定帶注釋的 VQA 資料,作者在保持 LLM 當機的同時微調 Q-Former 和圖像編碼器的參數。VQA 微調的模型架構如圖11所示,LLM 接收 Q-Former 的輸出和問題作為輸入,并希望生成答案。為了提取與問題更相關的圖像特征,作者還給 Q-Former 額外輸入問題,使其借助 Self-Attention 與可學習的 Queries 互動。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖11:VQA 微調的模型架構

實驗結果如下圖12所示,BLIP-2 屬于開放式生成模型,并取得了最佳的性能。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖12:視覺問答實驗結果

圖文檢索實驗結果

圖像文字檢索不涉及語言生成,是以作者直接微調第1階段預訓練模型。作者使用與預訓練相同的目标函數,即 ITC、ITM 和 ITG。資料集使用 COCO,微調 Q-Former 和圖像編碼器。評測資料使用 COCO 和 Flickr30K,任務是 image-to-text retrieval 和 text-to-image retrieval。實驗結果如圖13所示,BLIP-2 在 Zero-Shot 的圖像文字檢索方面實作了最先進的性能,與現有方法相比有了顯着改進。

BLIP-2:節約多模态訓練成本:當機預訓練好的視覺語言模型參數

圖13:圖文檢索實驗結果

1.7 BLIP-2 的局限性

LLM 一般具備 In-Contet Learning 的能力,但是在 In-Context VQA 的場景下,BLIP-2 沒觀察到好的結果。對于這種上下文學習能力的缺失,作者把原因歸結為預訓練資料集中的每個資料隻包含一個圖像-文本對,導緻 LLM 無法從中學習單個序列中多個圖像-文本對之間的相關性。

BLIP-2 的圖文生成能力不夠令人滿意,可能是 LLM 知識不準确帶來的。同時 BLIP-2 繼承了當機參數的 LLM 的風險,比如輸出攻擊性語言,傳播社會偏見。解決的辦法是指令微調,或者過濾掉有害的資料集。

參考

  1. ^Learning transferable visual models from natural language supervision
  2. ^EVA: Exploring the Limits of Masked Visual Representation Learning at Scale
  3. ^OPT: Open Pre-trained Transformer Language Models
  4. ^Scaling Instruction-Finetuned Language Models

繼續閱讀