(論文總結)語言模型中的多模態思維鏈推理
- 論文名稱
- 研究背景
- 動機
- 主要貢獻
- 研究細節
- 兩階段框架
- 實驗結果
- 促進收斂性
- 擺脫人工標注
- 錯誤分析與未來前景
論文名稱
Multimodal Chain-of-Thought Reasoning in Language Models
http://arxiv.org/abs/2302.00923
研究背景
CoT一開始出現了兩種發展路徑:一種是和CoT原始論文一致的,使用一個或幾個和任務類似的示例進行提示的少樣本(Few-Shot)CoT;一種是只在調用時給予啟發(“請逐步思考”)的零樣本(Zero-Shot)CoT。經過測試,少樣本CoT會比零樣本CoT更強(為什么?),因此成為了主流的研究方向。
少樣本CoT的研究方向主要和優化示例和優化推理鏈有關。對于優化示例而言,首先是示例的生成,一種是和CoT原始團隊相同的人工標注方法,稱為手動生成示例;一種是基于LLMs的零樣本CoT生成示例方法,稱作自動生成示例。其次是示例的優化。第一,少樣本CoT性能很大程度取決于示例質量,手動生成的示例會因為標注者不同而對性能有很大影響(有待進一步考證。原始CoT論文中提到少樣例CoT性能和標注者語言習慣沒有太大關聯,這里提到性能有影響可能是因為不同的標注者提供的示例質量不同,例如準確性、邏輯性、步驟顆粒度等等);第二,對于示例的選擇會產生很大影響。如果選擇和要解決的問題語義相近的示例,一旦示例中出現錯誤,會導致極大的性能下降;因此開發出了自動CoT),將數據集問題劃分為不同的簇,每次從每個簇中選擇代表性問題并用零樣本CoT生成其推理鏈,再把這種自動生成的示例用于少樣本CoT。此外還有基于RL的方法和基于復雜度的方法。
對于優化推理鏈而言,也有多個趨勢。一個是將問題進行分解,先將大問題分解成一個個小問題,再依次解答;每個小問題用得到之前問題的結果。(如果遇到含有條件分支的問題是否會指數級膨脹?如果中間答案錯誤會不會導致結果崩潰?)小問題還可以選擇進行提示以提高輸出質量。還有人提出了思維程序(PoT),將推理過程建模為一個程序,讓LLM去執行它;另外還有對推理路徑進行投票的方法。可以對大模型多個輸出進行采樣并進行多數表決,還可以增強隨機性來輸出更多的推理路徑。
在文章發布之前,另一個趨勢是通過微調大語言模型來引發思維鏈推理。主要方法是用老師模型的思維鏈輸出微調學生模型,另一種是?種迭代的上下文感知提示方法,以根據當前步驟的上下文動態合成提示。
動機
對于多模態的輸入(圖+文)而言,100B以下的純文本大模型很難輸出對于輸出正確結果有價值的思維鏈;無論是將思維鏈用于推理還是解釋,效果都比直接輸出結果要差。對于兩階段框架的CoT用法,也就是(1)QCM->R(2)QCMR->A,第一階段的推理依據生成的RougeL分數及準確率都很高,但第二階段的推理依然不如直接生成答案。通過對錯誤答案的分析發現,絕大多數情況都是因為沒有視覺特征的參與,模型出現了幻覺,從而生成了虛假的推論依據。即使將圖片內容用字幕表示出來,依然只有很微弱的提升。所以,應當將視覺特征與語義特征進行正交,從而得到正確的結果。
主要貢獻
提出了一種兩階段框架,通過微調語言模型實現融合視覺和語言表征,從而實現多模態思維鏈。
研究細節
簡要介紹:通過使用ViT模型提取出圖片的視覺特征,然后在將其輸入解碼器之前與編碼后的語言表示進行融合,就可以顯著提升這種兩階段框架的多模態場景下的CoT效果。
兩階段框架
兩階段分別用帶不同注釋數據集訓練同架構模型。第一階段將原始的語言和視覺輸入提供給模型,生成理由;第二部分將原始語言輸入和生成的理由連接起來,在和視覺輸入一起提供給模型生成答案。
該基于Transformer的網絡有三個步驟:編碼,交互和解碼。
編碼:設模型為F(X),同時接受語言和視覺輸入,文本表示H_{language}和視覺特征H_vision獲得方式如下:
H l a n g u a g e = L a n g u a g e E n c o d e r ( X l a n g u a g e ) H v i s i o n = W h ? V i s i o n E x t r a c t o r ( X v i s i o n ) H_{language} = LanguageEncoder(X_{language})\\ H_{vision} = W_h · VisionExtractor(X_{vision}) Hlanguage?=LanguageEncoder(Xlanguage?)Hvision?=Wh??VisionExtractor(Xvision?)
其中,· 由Transformer網絡實現。 H l a n g u a g e ∈ R n ? d H_{language}\in R^{n*d} Hlanguage?∈Rn?d是Transformer編碼器最后一層隱藏狀態,其中n是輸入語言長度,d是隱藏維度;視覺方面,通過ViT等凍結視覺提取模型提取塊級視覺特征,然后通過一個可學習的投影矩陣 W h W_h Wh?將特征轉換為和 H l a n g u a g e H_{language} Hlanguage?同形狀的 H v i s i o n ∈ R m ? d H_{vision} \in R^{m*d} Hvision?∈Rm?d,其中m是塊的數量。
交互:編碼結束后,使用單頭注意力網絡(為什么?)將文本標記和圖像塊相關聯得到 Q ( H l a n g u a g e ) K ( H v i s i o n ) V ( H v i s i o n ) Q(H_{language})K(H_{vision})V(H_{vision}) Q(Hlanguage?)K(Hvision?)V(Hvision?)。注意力輸出為
H v i s i o n a t t n = S o f t m a x ( Q K T √ d k ) V H_{vision}^{attn} = Softmax(\frac{QK^T}{√ d_k})V Hvisionattn?=Softmax(√dk?QKT?)V。
然后通過門控融合機制將 H l a n g u a g e H_{language} Hlanguage?和 H v i s i o n H_{vision} Hvision?融合:
λ = S i g m o i d ( W l H l a n g u a g e + W v H v i s i o n a t t n ) H f u s e = ( 1 ? λ ) ? H l a n g u a g e + λ ? H v i s i o n a t t n , \lambda = Sigmoid(W_l H_{language} + W_v H_{vision}^{attn})\\ H_{fuse} = (1 ? λ) · H_{language} + λ · H_{vision}^{attn} , λ=Sigmoid(Wl?Hlanguage?+Wv?Hvisionattn?)Hfuse?=(1?λ)?Hlanguage?+λ?Hvisionattn?,
融合后的輸出即為 H f u s e ∈ R n ? d H_{fuse}\in R^{n*d} Hfuse?∈Rn?d。 W l W_l Wl?和 W v W_v Wv?是可學習參數。
解碼:將 H f u s e H_{fuse} Hfuse?輸入Transformer解碼器,以此來進行預測結果。
實驗結果
從上圖可以看到,多模態思維鏈的兩種十億以下的實現均做到了最尖端;第四部分的三種幾個月后同期發布的模型和改論文的實現是正交且可融合的。他們可以聯合起來達到沒有人工標注推理依據的場景。
促進收斂性
兩階段與單階段相比,在較低的訓練輪次就可以取到較高的正確率,但后續的訓練收益也就相對較低;多模態與Base模型相比,在每一個輪次都有更高的正確率。對于單階段而言,多模態和Base模型在后期訓練的成果基本一致,均強于兩階段基線模型;而兩階段多模態模型則強于所有模型。
擺脫人工標注
當用ChatGPT和InstructBLIP代替人工標注去進行推理鏈的生成時,第二階段答案正確的概率和人工標注的準確率區別不大。
不同模型實現的有效性
將底層模型替換成不同類型其他變體之后,準確率沒有太大的波動;而將視覺特征也進行替換后,ViT對比其他特征的優勢是最大的。
錯誤分析與未來前景
對于這種基于十億級模型的兩階段結構多模態思維鏈而言,最大的問題是對于常識的運用,這類錯誤占了總錯誤的80%。例如在解讀地圖、計算圖像中的物體數量等。因此,后續的研究可以:(1)融入常識知識(2)整合更具信息性的視覺特征(3)實現過濾,剔除不相干的思維鏈(為什么會出現這種情況?)