論文鏈接:arxiv.org/pdf/2304.08485
參考視頻:LLAVA講解_嗶哩嗶哩_bilibili
[論文速覽]LLaVA: Visual Instruction Tuning[2304.08485]_嗶哩嗶哩_bilibili
標題:Visual Instruction Tuning? ?視覺指令微調?
背景引言
大模型的Instruction Tuning (指令微調)是一種微調技術,它通過在由(指令,輸出)對組成的數據集上進一步訓練大型語言模型(LLMs),以提高模型的能力和可控性。這種方法有助于彌合LLMs的下一個詞預測目標與用戶讓LLMs遵循人類指令的目標之間的差距。
優點是: Instruction Tuning允許更可控和可預測的模型行為。指令的作用是約束模型輸出,使其響應特征或領域知識符合預期,為人類干預模型提供一個通道。此外,它具有計算效率,可以幫助LLMs快速適應特定領域,而無需大量的再訓練或架構更改。
舉例:
{
"instruction":將溫度從華氏度調整到攝氏度
"input":94F
"output":34.4攝氏度
}
其中,instruction 和 input 這兩個是模型的輸入。
instruction vs prompt
大語言模型的指令微調已經被證明具有提高新任務的零樣本學習能力。但該想法在多模態領域的探索較少。本工作首次嘗試使用僅語言的GPT-4來生成多模態語言圖像指令跟隨數據。
通過對這些生成的數據進行微調,我們成功的構造了LLAVA。視覺編碼器和LLM連接起來,用于通用的視覺和語言理解。(打通多模態之間的聯系,才能更好的構建通用的人工智能)
主要貢獻:
1.多模態指令跟隨數據Multimodal instruction-following data。一個關鍵的挑戰是缺乏視覺語言指令跟隨數據。我們利用ChatGPT/GPT-4提出了一個數據轉換視角和pipeline,將圖像-文本對轉換為適當的指令遵循格式。(社區貢獻)
2.通過將CLIP的視覺編碼器部分與語言解碼器Vicuna[9]連接,開發了一個大型多模態模型(LMM)。并對我們生成的視覺語言數據進行端到端的微調。(科學貢獻,驗證了部分想法)
我們的實證研究驗證了使用生成數據進行LMM指令調優的有效性,并提出了構建通用指令遵循視覺代理的實用技巧。當與GPT-4集成時,我們的方法在Science QA[34]多模態推理數據集上實現了SoTA。
3.多模態指令Benchmark。我們現在的LLaVA-Bench有兩個具有挑戰性的基準,后續介紹。(重要性:現在發表工作)
4.我們向公眾發布了以下資產:生成的多模態指令數據,代碼庫、模型檢查點和可視聊天演示。(社區貢獻)
GPT輔助視覺Iinstruction數據的生成
社區見證了公共多模態數據(如圖像-文本對)量的激增,從CC到LAION等數據集。然而,在多模態指令跟隨數據方面,現有的數據量有限,部分原因是創建此類數據的過程耗時且不夠明確,尤其是在考慮人類眾包的情況下。
(圖像-文本對)的公開數據集不少,但是Instruction-following數據集不多,原因:
- 創建數據集耗時;
- ?考慮人勒在搜索時定義不明確。
受到最近GPT模型在文本注釋任務中成功的啟發,我們提出利用ChatGPT/GPT-4進行多模態Instruction-following數據的收集,基于廣泛存在的圖像配對數據。
對于圖像 Xv及其相關的標題 Xc,創建一組旨在指導 助理GPT 描述圖像內容的問題 Xq。
我們提示prompt GPT-4策劃這樣一組問題。
因此,一個簡單的方法是將圖像-文本對擴展為其Instruction-following版本:
人類:Xq Xv<STOP>
助理:Xc<STOP>
盡管這種擴展版本的構建成本低廉,但在指令和回應的多樣性與深度推理上卻存在不足。
簡要的圖像描述指令
詳細的圖像描述指令
為了緩解這一問題,我們利用僅接受文本輸入的語言模型GPT-4或ChatGPT作為強大的教師,創造涉及視覺內容的Instruction-following數據。
具體而言,為了將圖像編碼為其視覺特征以提示文本模型,我們使用兩種類型的符號表示:
(i) Captions:標題通常從不同角度描述視覺場景;
(ii) Boxes: 邊界框通常用于定位場景中的物體,每個框編碼了物體概念及其空間位置。
以下是表14頂部塊中的一個示例。
這種符號表示允許我們將圖像編碼為LLM可識別的序列。
我們使用COCO圖像,生成三種類型的Instruction-following數據。每種類型中各有一個示例,顯示在表14的底部塊中。
對于每種類型,我們首先手動設計一些示例。這些是我們在數據收集過程中的唯一人工注釋,用作上下文學習中的種子示例,以查詢GPT-4。
1. 對話VQA。我們設計了助理與提問者之間關于照片的問題對話。答案以助理仿佛在看圖像并回答問題的語氣進行。對圖像的視覺內容提出了一系列多樣化的問題,包括物體類型、物體數量、物體動作、物體位置、物體之間的相對位置。僅考慮具有明確答案的問題。
這個prompt的構建是通過明確的角色和內容來引導對話,使得AI能夠在視覺內容的上下文中提供準確的回答。
系統消息:這部分是輸入給GPT的,用于設置模型的角色和任務。
{"role": "system","content": "You are an AI visual assistant..." }
用戶消息:用戶的問題也是輸入的一部分,告訴GPT需要回答什么。
{"role": "user","content": "What objects are visible in the image?" }
助手回應:這是基于前面的系統和用戶消息,GPT生成的內容。助手的回答是對用戶問題的直接回應。
{"role": "assistant","content": "The image contains a cat sitting on a rug..." }
2. 詳細描述。為了為圖像提供豐富而全面的描述,我們創建了一組帶有此意圖的問題。我們提示GPT-4并策劃這個列表。對于每個圖像,我們從列表中隨機抽取一個問題,詢問GPT-4生成詳細描述。
3. 復雜推理base on 1 and 2。上述兩種類型專注于視覺內容,基于此我們進一步創建深入的推理問題。答案通常需要遵循嚴格的邏輯進行逐步推理。
?
我們總共收集了158K個獨特的語言-圖像指令跟隨樣本,其中包括58K個對話樣本、23K個詳細描述樣本和77K個復雜推理樣本。我們在早期實驗中對ChatGPT和GPT-4的使用進行了消融實驗,發現GPT-4始終提供更高質量的指令跟隨數據,例如空間推理。
視覺指令微調
架構
核心目標是有效融合預訓練大語言模型(LLM)與視覺模型的能力。網絡架構如圖1所示。
語言模型:采用Vicuna作為參數化的LLM f?(·),因其在公開模型中展現出最佳指令跟隨能力。
視覺編碼器:對于輸入圖像Xv,我們考慮使用預訓練的CLIP視覺編碼器ViT-L/14,它提供視覺特征Zv = g(Xv)。實驗中考慮了最后一層Transformer前后的網格特征。
?我們使用簡單的線性層將圖像特征連接到詞嵌入空間。具體來說,我們應用可訓練投影矩陣W將Zv轉換為語言嵌入標記Hv,其維度與語言模型中的詞嵌入空間相同:
這樣就得到了一系列視覺標記Hv。
請注意,我們的簡單投影方案是輕量級的,這使我們能夠快速進行以數據為中心的實驗迭代。也可以考慮更復雜的方案來連接圖像和語言表示,如Flamingo中的門控交叉注意力和BLIP-2中的Q-former。我們將探索可能更有效和復雜的LLaVA架構設計留作未來工作。
訓練
對于每張輸入圖像 X_v,我們生成多輪對話數據 ,其中 T 表示總對話輪數。我們將其組織為一個序列,將所有答案視為助手的響應 assistant's response,第 t 輪的指令
為:
?該形式產生了如表2所示的多模態nstruction-following sequence的統一格式。
?我們采用原始自回歸訓練目標對LLM進行預測標記的指令調優。
具體而言,對于長度為L的序列,我們通過以下方式計算目標答案X_a的概率:
其中 θ 表示可訓練參數,X_instruct,{<i} 和 X_a,{<i} 分別代表當前預測標記 x_i 之前所有輪次的指令和答案標記。預測標記的具體示例參見表2。
在公式(2)的條件項中,我們顯式添加 X_v 以強調圖像特征的基礎作用,并省略了 X_system-message 及所有歷史 <STOP> 標記以提升可讀性。
LLaVA模型訓練采用兩階段指令調優流程:
第一階段:特征對齊預訓練
為平衡概念覆蓋率與訓練效率,我們將CC3M數據集篩選至595K個圖像-文本對。
?CC3M 數據集處理
我們使用Spacy對整個CC3M數據集的每個標題提取名詞短語,并統計每個獨特名詞短語的頻率。
對于頻率小于3的名詞短語,我們予以跳過,因為它們通常是已經被其他標題覆蓋的稀有組合概念和屬性。
接著,我們從剩余頻率最低的名詞短語開始,將包含該名詞短語的標題添加到候選池中。如果名詞短語的頻率大于100,我們將從所有相關標題中隨機選擇大小為100的子集。
最終,這一過程產生了大約595K個圖像-文本對。過濾前后名詞短語統計的比較見于圖7。
經過過濾的數據集在詞頻≥3的概念上仍保持良好覆蓋率,但所含圖文對數量有所減少。
這種數據處理方法確保了我們在構建數據集時能夠更準確地捕捉到多樣化的圖像內容,并提高了生成圖像描述的質量。
通過第3節GPT輔助視覺指令數據生成所述的簡單擴展方法,將這些數據對轉換為指令跟隨格式,每個樣本視為單輪對話。
構建公式(2)的輸入 X_instruct 時,對圖像 X_v 隨機采樣問題 X_q(即"請簡要描述該圖像"的指令),真實答案 X_a 采用原始標題。
訓練時凍結視覺編碼器和LLM權重,僅通過可訓練參數 θ = W(投影矩陣)最大化公式(2)的似然,使圖像特征 H_v 與預訓練LLM的詞嵌入空間對齊。
該階段本質上是在為凍結的LLM訓練兼容的視覺標記器。
Pre-training for Feature Alignment
第一階段重點訓練projection,即從視覺token投影到文本token的過程。
這里訓練用的數據非常簡單,即單輪的對話形式,希望預測的是圖像原本的caption:
輸入就是:X_q就是下面的問題,X_v就是圖像的token;
輸出就是:X_c 就是圖像原本配的caption。
![]()
通過上述方式的pre-train,就能使的projection layer相對有意義的把視覺的token轉到文本的token中去。
第二階段:端到端微調
本階段始終保持視覺編碼器權重凍結,同時更新LLaVA中投影層和LLM的預訓練權重,即可訓練參數 θ = {W, ?}。我們重點研究兩種應用場景:
-
多模態聊天機器人:基于第3節所述的158K語言-圖像指令數據進行微調。在三種響應類型中,對話采用多輪形式,其余兩類(詳細描述和復雜推理)為單輪,訓練時進行均勻采樣。
-
科學問答(ScienceQA):在首個提供詳細解析的大規模多模態科學問答基準[34]上驗證方法。每個問題配有自然語言或圖像形式的上下文,要求助手先生成自然語言推理過程,再從多項選擇中確定答案。訓練時按公式(1)將數據組織為單輪對話:將問題與上下文合并作為 X_instruct,推理過程與最終答案合并作為 X_a。?
Fine-tuning End-to-End
針對特定的任務(Multimodal Chatbot,Science QA),把projection layer + LLM 一起訓練,保持visual encoder不動。
實驗
我們通過兩種主要實驗設置評估LLaVA的指令跟隨和視覺推理能力:多模態聊天機器人和ScienceQA數據集。所有模型均在8×A100 GPU上訓練,采用Vicuna的超參數設置[9]。
特征對齊預訓練階段使用過濾后的CC-595K(過濾后的)子集,訓練1個epoch(學習率2e-3,批量大小128);
端到端微調階段使用LLaVA-Instruct-158K數據集,訓練3個epoch(學習率2e-5,批量大小32)。更多訓練細節見附錄。
5.1 多模態聊天機器人
我們開發了聊天機器人演示系統來展示LLaVA的圖像理解和對話能力。首先使用GPT-4原論文[36]中的測試案例(表3展示部分示例,完整案例見附錄),這些案例需要深度圖像理解能力。
對比實驗中,我們:
-
直接引用論文中多模態GPT-4的提示詞和響應
-
查詢BLIP-2和OpenFlamingo模型獲取響應 值得注意的是,盡管LLaVA僅使用約8萬張獨特圖像的小型多模態指令數據集訓練,但在這些案例中展現出與多模態GPT-4相似的推理能力(即使測試圖像超出訓練域,LLaVA仍能理解場景并遵循指令給出合理響應)。相比之下,BLIP-2和OpenFlamingo更側重于圖像描述而非遵循用戶指令進行針對性回答。
量化評估
為了系統評估LLaVA的性能,我們提出了一種量化指標來衡量模型在多模態數據上的指令跟隨能力。
受文獻[9]啟發,我們利用GPT-4來評估生成回答的質量。
具體而言,我們構建了包含圖像、真實文本描述和問題的三元組。
候選模型(如LLaVA)根據問題和圖像預測答案。為了提供一個近似的理論上限,我們使用純文本GPT-4基于問題和真實文本描述生成參考預測。
在獲得兩個模型的回答后,我們將問題、視覺信息(以文本描述形式呈現)以及兩個助手生成的回答輸入評估器(即純文本GPT-4)。
評估器從幫助性、相關性、準確性和細節程度四個維度對助手的回答進行評分,給出1到10分的綜合評分,分數越高表示整體表現越好。同時,評估器還會提供詳細的評估解釋,以幫助我們更好地理解模型表現。我們報告了相對于使用真實文本描述作為視覺輸入的純文本GPT-4模型的相對分數。為此,我們建立了兩個基準測試集來評估模型性能。
LLaVA-Bench (COCO)
從COCO-Val-2014隨機選擇30張圖像,每張圖像通過第3節數據生成流程產生三類問題(對話、詳細描述、復雜推理),共90個問題。
該基準用于研究模型在一致視覺輸入下的對齊行為,實驗結果見表4:
實驗表明:首先,指令調優使模型的用戶指令跟隨能力顯著提升超過50分;其次,添加少量細節描述和復雜推理問題可帶來7分的整體性能提升;此外,這種改進還體現在對話型問題的處理能力上,說明推理能力的提升對對話能力具有協同增強效應。最終實驗證明,同時包含三類數據的訓練方案可獲得最佳性能,達到85.1%的綜合評分。
LLaVA-Bench(開放域)測試集
為評估模型在更具挑戰性任務中的表現及其對新領域的泛化能力,我們精心收集了24張涵蓋室內外場景、網絡表情、繪畫作品、手繪草圖等多樣化圖像,并配套構建了60個問題。每張圖像均配有專家標注的精細描述和經過篩選的問題集。
如表5所示,得益于視覺指令調優技術,LLaVA相較BLIP-2(+29%)和OpenFlamingo(+48%)展現出顯著優勢。與使用真實標簽的純文本GPT-4相比,LLaVA在復雜推理問題上取得81.7%的優異表現,綜合評分達到67.3%。
局限性分析
LLaVA-Bench(開放域)測試集專為揭示模型缺陷而設計。
如表6所示的兩個典型案例:
(左)拉面案例中,要準確回答餐廳名稱需具備多語言理解能力和廣博的知識覆蓋;描述配菜則需檢索多模態網絡信息;(
右)冰箱案例中,識別酸奶品牌要求模型具備高分辨率圖像處理能力和豐富的商品知識。
我們發現LLaVA存在一個有趣缺陷:當被問及"是否有草莓味酸奶"時,盡管冰箱內僅有普通酸奶和草莓(并無草莓味酸奶),模型仍錯誤肯定。這表明LLaVA有時會將圖像視為"碎片集合",未能理解復雜語義關系。我們期望該基準測試能成為發展更強大多模態大模型的研究基礎,這些發現將為未來工作提供重要啟示。
?
5.2 ScienceQA實驗結果
ScienceQA基準數據集[34]包含21,000道多模態選擇題,涵蓋3大學科、26個主題、127個類別和379項技能。該數據集劃分為12,726個訓練樣本、4,241個驗證樣本和4,241個測試樣本。我們對比了以下代表性方法:帶/不帶思維鏈(CoT)的GPT-3.5(text-davinci-002)、LLaMA-Adapter[59]以及當前該數據集的最先進方法多模態思維鏈(MM-CoT)[61]。
實驗結果顯示(表7),LLaVA采用最后一層前的視覺特征,先預測推理過程再生成答案,經12輪訓練后達到90.92%準確率,接近當前最優的91.68%。為探索大語言模型極限,我們采用雙樣本上下文學習提示GPT-4,獲得82.69%準確率,較GPT-3.5的75.17%提升7.52%。值得注意的是,GPT-4的多數錯誤源于其反饋缺乏圖像/圖表等上下文信息。
我們設計兩種融合方案:
(1) GPT-4補充方案——當GPT-4無法回答時采用LLaVA預測,該方案準確率90.97%,與單獨使用LLaVA相當;
(2) GPT-4仲裁方案——當兩者答案不一致時,要求GPT-4基于問題和兩個答案重新生成最終判斷。這種方法思維類似CoT但引入外部模型知識,意外地在所有問題類別上實現一致提升,最終以92.53%準確率創造新紀錄。
有趣的是,無法處理圖像的純文本GPT-4反而提升了模型在含圖像上下文問題上的表現。這是因為部分問題實際無需圖像即可解答,GPT-4仲裁能識別此類情況并修正LLaVA錯誤(參見附錄案例)。
據我們所知,這是首次將GPT-4用于模型集成。該發現有望推動更多利用大語言模型進行高效集成的方法研究。