近些年,語言建模領域進展非凡。Llama 或 ChatGPT 等許多大型語言模型(LLM)有能力解決多種不同的任務,它們也正在成為越來越常用的工具。
這些模型之前基本都侷限於文字輸入,但現在也正在具備處理視覺輸入的能力。如果能將視覺與語言打通,那麼勢必能造就多種多樣的應用 —— 這實際上也正是當前 AI 技術革命的關鍵方向。
即便現在已有不少研究將大型語言模型擴充套件到了視覺領域,但視覺與語言之間的連線尚未被徹底打通。舉些例子,大多數模型都難以理解空間位置關係或計數 —— 這還需要複雜的工程設計並依賴額外的資料標註。許多視覺語言模型(VLM)依然難以理解屬性和順序。它們往往會忽略輸入 prompt 的某些部分,因此為了得到理想結果,使用者常常需要在提示工程上費心費力。還有些模型會產生幻覺,產出無用或不相關的內容。因此,人們依然在大力開發穩定的模型。
如果你是有志這一行業的學生或愛好者或想要從其它 AI 領域轉戰此方向,那麼請一定不要錯過我們今天要介紹的這篇《視覺語言模型導論》。
論文標題:An Introduction to Vision-Language Modeling
論文地址:https://arxiv.org/pdf/2405.17247
這篇導論來自 Meta 和蒙特利爾大學等多所研究機構的數十位研究者,將解釋 VLM 是什麼、它們是如何訓練的以及如何基於不同研究目標有效地評估它們。
該團隊表示,這篇論文的目標是幫助讀者輕鬆理解 VLM 並著重說明這一領域的有效實踐,而不是提供 VLM 研究成果的詳盡綜述或完整指南。
多種多樣的 VLM
得益於深度學習的發展,計算機視覺和自然語言處理領域都取得了令人矚目的進展,也因此已經有不少研究團隊嘗試過將這兩個領域連線到一起。
這篇論文關注的重點是最近期的基於 Transformer 的技術。
該團隊將嘗試打通這兩大領域的研究成果,按訓練正規化分成了四類,見圖 1。
第一類是對比式訓練(contrastive training),這是一種使用正例和負例對來訓練模型的常用策略。VLM 的訓練目標是為正例對預測相似的表徵,為負例對預測不同的表徵。
第二類是掩碼(masking),其方法是根據某些未被遮掩的文字來重建被遮掩的圖塊。類似地,透過遮掩描述中的詞,也可以讓 VLM 根據未被遮掩的影像來重建這些被遮掩的詞。
另一類是基於預訓練骨幹網路來訓練 VLM,這往往是使用 Llama 等開源 LLM 來學習影像編碼器(也可能是預訓練的)和 LLM 之間的對映關係。相比於從頭開始訓練文字和影像編碼器,學習預訓練模型之間的對映關係的計算成本往往更低。
大部分這類方法都是使用中間表徵或部分重建,而生成式 VLM 則能生成影像或描述。有鑑於這類模型的性質,它們的訓練成本通常是最高的。
需要說明:這些正規化並不是互斥的,很多方法都混合使用了對比、掩碼和生成正規化。文中為每種正規化都提供了一兩個模型進行說明,以幫助讀者瞭解這些模型的設計思路。
基於 Transformer 的 VLM 早期研究
透過使用 Transformer 架構,BERT(使用 Transformer 的雙向編碼器表徵)一誕生,就超過了當時所有的語言建模方法。之後不久,BERT 就被擴充套件用來處理視覺資料。visual-BERT 和 ViLBERT 是其中兩個代表,它們的做法是將文字與影像 token 組合到一起。
這些模型有兩個訓練目標:1) 經典的掩碼建模任務,目標是預測給定輸入中缺失的部分;2) 句子 - 影像預測任務,目標是預測影像標註是否描述了影像內容。
透過利用這兩個目標,這些模型在多種視覺 - 語言任務上表現出色,這主要是得益於 Transformer 模型有能力學會透過注意力機制將詞與視覺線索關聯起來。
基於對比的 VLM
基於對比的訓練往往能透過基於能量的模型(EBM)更好地解釋,即模型的訓練目標是為觀察到的變數分配低能量,為未被觀察到的變數分配高能量。來自目標分佈的資料的能量應該較低,其它資料點的能量應該較高。
使用掩碼目標的 VLM
在深度學習研究中,掩碼是一種常用技術。它可被視為一種特定形式的去噪自動編碼器,其中的噪聲有一種空間結構。它也與修復(inpainting)策略有關,該策略曾被用於學習強大的視覺表徵。BERT 也在訓練階段使用了掩碼式語言建模(MLM)來預測句子中缺失的 token。掩碼方法非常適合 Transformer 架構,因此輸入訊號的 token 化使得隨機丟棄特定的輸入 token 變得更容易。
已經有一些研究在影像方面探索這一方法,即掩碼式影像建模(MIM),具體案例包括 MAE 和 I-JEPA。
很自然地,也有人將這兩者組合起來訓練 VLM。其一是 FLAVA,其使用了掩碼在內的多種訓練策略來學習文字和影像表徵。另一個是 MaskVLM,這是一種獨立模型。
基於生成的 VLM
上面的訓練正規化主要是操作隱含表徵來構建影像或文字抽象,之後再在它們之間對映,生成正規化則不同,它考慮文字和 / 或影像的生成。
CoCa 等一些方法會學習一個完整的文字編碼器和解碼器來描述影像 Chameleon Team 和 CM3leon 等另一些方法則是多模態的生成模型,其訓練目標就包括生成文字和影像。最後,還有些模型的目標是基於文字生成影像,比如 Stable Diffusion、Imagen 和 Parti。但是,即便它們是為生成影像而生的,它們也能被用於解決一些視覺 - 語言理解任務。
用預訓練骨幹網路構建的 VLM
VLM 的一個缺點是從頭開始訓練的成本很高。這通常需要成百上千臺 GPU,同時還必須使用上億對影像和文字。因此,也有很多研究者探索使用已有的 LLM 和 / 或視覺提取器,而不是從頭開始訓練模型。
這種做法的另一個優勢是可以利用現在很多開源且易用的 LLM。
透過使用這樣的模型,有可能學習到僅在文字模態和影像模態之間的對映。透過學習這樣的對映,僅需要少量計算資源就可讓 LLM 有能力回答視覺問題。
該團隊在論文中說明了這類模型的兩個代表:一是首個使用預訓練 LLM 的模型 Frozen,二是 Mini-GPT。詳見原論文。
VLM 訓練指南
有一些研究揭示了進一步擴大深度神經網路規模的重要性。受這些 scaling law 的激勵,最近不少專案都在透過增加計算量和擴大模型規模來學習更好的模型。這就催生了 CLIP 等模型 —— 其訓練使用了 4 億張影像,計算預算自然也非常高。就算是其開源實現 OpenCLIP,根據模型大小的不同,訓練也使用了 256 到 600 臺 GPU,耗時數天到幾周。
但是,又有一項研究表明透過精心的資料整編,有可能戰勝 scaling law。這一節首先將討論訓練模型時資料的重要性,並會給出一些用於構建 VLM 訓練資料集的方法。
然後會討論常用的軟體、工具和技巧,它們可幫助實踐者更高效地訓練 VLM。
由於訓練 VLM 有多種不同方法,所以文中還會討論特定情形下應該選用什麼型別的模型。
之後,該團隊還會給出一些提升定基(grounding,即正確對映文字與視覺線索的能力)的技巧,並介紹使用人類偏好提升對齊的技術。
VLM 常被用於閱讀和翻譯文字,所以他們也會分享一些用於進一步提升 VLM 的 OCR 能力的技術。
最後是一些常用的微調方法。
訓練資料
為了評估預訓練資料集的質量,DataComp 提出了一個基準,其中 CLIP 的模型架構和預訓練超引數都是固定的。其評估重點是設計出能在 38 個下游任務上取得優良零樣本和檢索效能的影像 - 文字資料集。DataComp 提供了多個有噪聲網頁資料集池,規模從小型(1.28M)到超大型(12.8B)不等。針對每個池,都有多個過濾策略被提出和評估。DataComp 表明:為了訓練出高效高效能的 VLM,資料剪枝是一個關鍵步驟。
用於 VLM 的資料剪枝方法可以分為三大類:(1) 啟發式方法,可以清除低質量資料對;(2) bootstrapping 方法,使用預訓練的 VLM 評估影像和文字的多模態對齊程度,然後丟棄其中對齊較差的資料對;(3) 用於建立多樣化和平衡資料集的方法。具體的措施包括:
使用合成資料來提升訓練資料
使用資料增強
交錯式的資料整編
評估多模態資料質量
利用人類專業知識:資料標註的力量
軟體
這一小節討論了現有的可用於評估和訓練 VLM 的軟體以及訓練它們所需的資源。
使用現有的公共軟體庫
我需要多少臺 GPU?
為訓練加速
其它超引數的重要性
使用什麼模型?
前面已經提到,訓練 VLM 的方法有好幾種。一些是使用簡單的對比訓練方案,一些則是使用掩碼策略來預測缺失的文字或圖塊,還有一些模型使用的是自迴歸或擴散等生成正規化。也有可能使用 Llama 或 GPT 等預訓練的視覺或文字骨幹網路。在這種情況下,構建 VLM 模型僅需學習 LLM 和視覺編碼器表徵之間的對映。
那麼,應該如何選擇這些方法呢?我們需要像 CLIP 一樣從頭開始訓練視覺和文字編碼器,還是像 Flamingo 或 MiniGPT 一樣從預訓練的 LLM 開始訓練?
何時使用 CLIP 這樣的對比模型?
何時使用掩碼?
何時使用生成模型?
何時使用 LLM 作為預訓練骨幹網路?
提升定基
在 VLM 和生成模型文獻中,定基(grounding)是一個關鍵難題。定基的目標主要是解決模型不能很好理解文字 prompt 的問題,這個問題既可能導致模型忽視 prompt 中的某些部分,也可能導致其產生幻覺,想象出 prompt 中沒有的內容。
解決這些難題需要理解關係,比如確定一個物體是在左邊還是右邊、否定、計數、理解屬性(如顏色或紋理)。
提升定基這個研究領域很活躍,而目前還尚未出現一種能解決此難題的單一簡單方法。儘管如此,在提升定基效能方面,還是有一些技巧可用:
使用邊界框標註
否定描述
提升對齊
受語言領域指令微調的成功的啟發視覺語言模型也開始整合指令微調和根據人類反饋的強化學習(RLHF)來提升多模態聊天能力以及將輸出與期望響應對齊。
指令微調涉及到在一個包含指令、輸入和期望響應的監督式資料集上對視覺語言模型進行微調。通常來說,指令微調資料集的規模遠小於預訓練資料集 —— 指令微調資料集的規模從少量到數十萬不等。整合了指令微調的視覺語言模型包括 LLaVa、InstructBLIP、OpenFlamingo。
RLHF 的另一個目標是對齊模型輸出與人類偏好。使用 RLHF 時,需要訓練一個獎勵模型來匹配人類偏好 —— 即人類認為一個模型響應是好是壞。儘管指令微調需要監督訓練樣本(收整合本較高),但 RLHF 則可使用輔助式獎勵模型來模擬人類偏好。然後再使用該獎勵模型來微調主模型(不管是語言模型還是視覺語言模型),使其輸出與人類偏好對齊。LLaVa-RLFH 就是一個視覺語言模型整合 RLHF 的突出案例,其能透過事實資訊來提升模型的輸出對齊。
提升對富含文字的影像的理解
在我們的日常生活中,視覺感知中有一大關鍵部分:理解文字。多模態大型語言模型(MLLM)的成功可讓 VLM 以零樣本方式應用於多種應用,並且其中許多已經可用於真實世界場景。
有研究表明 MLLM 具備卓越的零樣本光學字元識別(OCR)能力,無需專門使用特定於 OCR 領域的資料進行訓練。但是,當涉及到資料型別之間的複雜關係時,這些模型往往難以解讀影像中的文字,原因是它們的訓練資料中包含大量自然影像。
下面列出了一些在文字理解方面的常見難題以及試圖解決該難題的模型:
使用細粒度的富含文字的資料進行指令微調:LLaVAR
處理高解析度影像中的細粒度文字:Monkey
分立式場景文字識別模組和 MM-LLM:Lumos
引數高效型微調
事實已經證明,在跨領域視覺和語言任務上,VLM 的效果很好。但是,隨著預訓練模型大小持續增長,由於計算限制,微調這些模型的全體引數集將變得不切實際。
為了解決這一難題,引數高效型微調(PEFT)方法誕生了,其目標是解決與微調大規模模型相關的高計算成本問題。這些方法關注的重點是訓練部分引數來使模型適應下游任務,而不是重新訓練全體模型。現有的 PEFT 方法可以分為四大類:
基於低秩介面卡(LoRa)的方法
基於 prompt 的方法
基於適應器的方法
基於對映的方法
實現負責任 VLM 評估的方法
VLM 的主要能力是實現文字與影像的對映,因此度量其視覺語言能力就非常關鍵了,因為這能確保詞與視覺線索真正實現了對映。
在評估 VLM 方面,早期的評估任務包括影像描述和視覺問答(VQA)。
現在還有以文字為中心的 VQA(text-centric VQA)任務,其評估的是模型理解和閱讀影像中的文字的能力。
Radford et al. [2021] 也提出了一種常用的評估方法,該方法是基於零樣本預測,比如 ImageNet 分類任務。這樣的分類任務可以評估 VLM 是否具備足夠的世界知識。
Winoground 是一個更近期的基準,其度量的是模型的視覺 - 語言組合推理能力。
另外,我們已經知道 VLM 會表現出偏見和幻覺,因此對這兩方面進行評估也非常重要。
將 VLM 擴充套件用於影片
之前談到的 VLM 基本都是在靜態視覺資料(影像)上訓練和評估的。但是,視覺資料還有動態的,即影片。
對 VLM 而言,影片資料既能帶來新挑戰,也有望為其帶來新能力,比如理解物體的運動和動態或在空間和時間中定位物體和動作。用文字檢索影片、影片問答和影片生成正在快速成為基礎的計算機視覺任務。
影片的時間屬性對儲存、CPU 記憶體來說都是一個巨大挑戰(如果把每一幀都視為一張影像,那麼幀率越高,成本就越高)。於是對於處理影片的 VLM 而言,就需要考慮多個權衡因素,比如資料載入器中動態影片解碼器的壓縮格式、基於影像編碼器來初始化影片編碼器、為影片編碼器使用時空池化 / 掩碼機制、非端到端 VLM。
與影像 - 文字模型類似,早期的影片 - 文字模型也是使用自監督指標來從頭開始訓練視覺和文字元件。但不同於影像模型,對比式影片 - 文字模型並非首選方法,早期時人們更喜歡融合和時間對齊方法,因為相比於計算影片的全域性表徵,讓表徵中有更多時間粒度更重要。
近段時間,影片 - 語言模型領域出現了影像 - 語言模型領域類似的趨勢:使用預訓練 LLM 並將其與影片編碼器對齊,從而增強 LLM 的影片理解能力。視覺指令微調等現代技術也被廣泛使用並被適配用於影片。