BLIP-2:零樣本影像到文字生成
BLIP-2 是 Salesforce Research 開發的零樣本視覺語言模型,透過在凍結的預訓練視覺編碼器與凍結的大型語言模型(LLM)之間搭橋,實現最先進的影像到文字生成。與端到端多模態預訓練相比,此方法大幅降低了預訓練成本與可訓練參數。
Q-Former 架構
BLIP-2 採用輕量級的查詢變換器(Q-Former)來彌合視覺與語言之間的模態差距。Q-Former 是該架構中唯一可訓練的組件;影像編碼器與 LLM 在訓練過程中皆保持凍結。
Q-Former 子模組
Q-Former 由兩個共享相同自注意力層的子模組組成:
- Image Transformer:與凍結的影像編碼器互動以提取視覺特徵。它以可學習的查詢嵌入作為輸入,並在不論輸入影像解析度的情況下提取固定數量的輸出特徵。
- Text Transformer:同時作為文字編碼器與文字解碼器。
雙階段預訓練
Q-Former 以兩個不同階段進行訓練:
- 第一階段:影像編碼器保持凍結,Q-Former 使用三種特定損失進行訓練:
- 影像-文字對比損失:計算查詢輸出與文字輸出 CLS 令牌之間的成對相似度。
- 影像為基礎的文字生成:文字變換器使用因果遮罩並注意查詢,而查詢相互注意但不注意文字令牌。
- 影像-文字匹配損失:查詢與文字互動以產生一個指示文字是否與影像匹配的 logits,並使用硬負樣本挖掘作為負例。
- 第二階段:查詢嵌入此時已包含透過資訊瓶頸過濾的相關視覺資訊,作為視覺前綴輸入至 LLM。此階段使用因果語言模型損失進行影像為基礎的文字生成。
模型能力與實作
BLIP-2 設計上具備彈性,允許任意組合的視覺骨幹(例如 ViT)與 LLM(例如 OPT 或 Flan T5)。
支援的任務
BLIP-2 能以零樣本方式執行多種影像到文字任務:
- 影像說明生成:從 BOS(序列起始)令牌開始,無需文字提示即可產生影像描述。
- 提示式影像說明:根據影像的視覺內容延續提供的文字提示。
- 視覺問答(VQA):使用提示格式
Question: {} Answer:來回答關於影像的特定問題。 - 聊天式提示:透過串接先前的問答對以建立上下文,打造對話介面。上下文限制為 512 個 token,與底層 LLM(OPT 與 T5)的上下文長度相同。
與 Hugging Face Transformers 的整合
BLIP-2 可透過 Hugging Face Transformers 套件中的 Blip2ForConditionalGeneration 類別取得。由於它是專門的架構,無法透過標準的 AutoModel API 載入,必須明確使用 Blip2ForConditionalGeneration 類別,雖然可使用 AutoProcessor 取得 Blip2Processor。