4秒看完2小時電影,阿里團隊新成果正式亮相——
推出通用多模態大模型mplug-owl3,專門用來理解多圖、長視頻。
具體來說,以llava-next-interleave為基準,mplug-owl3將模型的first token latency縮小了6倍,且單張a100能建模的圖像數目提升了8倍,達到了400張圖片,實測4秒就能看完一部2小時的電影。
換句話說,模型的推理效率有了極大提升。
而且不犧牲模型的準確性。
mplug-owl3還在多模態大模型所涉及的各種場景,包括單圖、多圖、視頻領域的諸多benchmarks上達到了sota。
論文作者來自阿里mplug團隊,他們一直深耕多模態大模型底座,在此之前還提出了:
高效多模態底座mplug系列
模塊化多模態大語言模型底座mplug-owl系列
文檔理解底座mplug-docowl系列
下面就讓我們來了解一下本次發佈的mplug-owl3究竟帶來了什麼黑科技吧。
玩法解鎖
團隊展示了mplug-owl3的幾種常見用法。
多模態檢索增強
一般來說,對於模型沒有學過的知識,通過檢索系統進行補充是常見的做法。這需要模型能準確理解傳入的多模態知識,並用於解答問題。
在下面這個例子中,mplug-owl3不僅能基於檢索知識正確回復,還能給出它基於哪一條知識做出的判斷,並且給出詳細的判斷依據。這對於下游研發人員開發和調試都是非常友好的。
檢索部分:以下是為你檢索到的幾個多模態知識,供你做出決定。
提問:根據你對上面四張狗的照片的觀察,你能對圖片5中的狗進行分類嗎?給出理由。
回答:根據對四張狗的照片的觀察,圖片5中的狗可以被歸類為愛爾蘭梗犬。圖片1中的狗被描述為愛爾蘭梗犬,圖片5中的狗與圖片1中的狗在身體特徵上有相似之處……
多圖推理
生活中經常會出現這樣的情況——
很多用戶並非只圍繞一張圖片進行對話,而是用戶可能有幾份材料,需要模型能正確理解不同材料中的內容的關係。
在下面這個例子中,mplug-owl3能通過兩張圖像所見,激活語言模型的常識知識,並圍繞兩張圖片進行推理。
提問:左邊的動物能在右邊的環境中存活嗎?需要回答並給出解釋。
回答(正確答案標綠):大意是,不能存活,因為環境太冷了。
在另一個例子中,mplug-owl3不僅能察覺兩張圖片風格上的差異性,並且也能意識到兩張圖中的人物雖然風格不同,但其實是同一個角色。
第一次提問:圖片中描繪了哪些藝術風格,它們有何不同?
回答:第一張是像素風,第二張是卡通風格……(給出理由)
第二次提問:在兩幅畫中都出現了誰?他們的特徵是什麼?
回答:在兩幅畫中,都出現了一個戴着牛仔帽的男人,他被兩種不同的風格描繪。
長視頻理解
觀看超長視頻是現在大部分模型都無法端到端完成的任務,若是基於agent框架,則又難以保證響應速度。
mplug-owl3能夠看一部2小時電影,並且4秒就能開始回答用戶的問題。
不管用戶是對電影的開頭、中間和結尾的非常細緻的片段進行提問,mplug-owl3都能對答如流。
咋做到的?
與傳統模型不同,mplug-owl3不需要提前將視覺序列拼接到語言模型的文本序列中。
換句話說,不管輸入了啥(幾十張圖或幾小時視頻),都不佔用語言模型序列容量,這就規避了長視覺序列帶來的巨額計算開銷和顯存佔用。
有人可能會問了,那視覺信息如何融入到語言模型中呢?
為實現這一點,該團隊提出了一種輕量化的hyper attention模塊,它可以將一個已有的只能建模文本的transformer block擴展成一個能夠同時做圖文特徵交互和文本建模的新模塊。
通過在整個語言模型中稀疏地擴展4個transformer block,mplug-owl3就能用非常小的代價將llm升級成多模態llm。
視覺特徵在從視覺編碼器抽取出來後,會通過一個簡單的線性映射把維度對齊到語言模型的維度。
隨後,視覺特徵只會在這4層transformer block與文本交互,由於視覺token沒有經過任何壓縮,所以細粒度的信息都能得到保留。
下面來看一下hyper attention內又是如何設計的。
hyper attention為了讓語言模型能感知到視覺特徵,引入了一個cross-attention操作,將視覺特徵作為key和value,將語言模型的hidden state作為query去析取視覺特徵。
近年也有其他研究考慮將cross-attention用於多模態融合,比如flamingo和idefics,但這些工作都沒能取得較好的性能表現。
在mplug-owl3的技術報告中,團隊對比了flamingo的設計,來進一步說明hyper attention的關鍵技術點:
首先,hyper attention沒有採用cross-attention和self-attention級聯的設計,而是嵌入在self-attention區塊內。
它的好處是大幅度降低了額外引入的新參數,使得模型更容易訓練,並且訓練和推理效率也能進一步提升。
其次,hyper attention選擇共享語言模型的layernorm,因為layernorm所輸出的分佈正是attention層已經訓練穩定的分佈,共享這一層對於穩定學習新引入的cross-attention至關重要。
事實上,hyper attention採取了一種並行cross-attention和self-attention的策略,使用共享的query去與視覺特徵交互,通過一個adaptive gate融合兩者的特徵。
這使得query可以根據自身語義針對性地選擇與之相關的視覺特徵。
團隊發現,圖像在原始上下文中與文本的相對位置關係對於模型更好的理解多模態輸入非常重要。
為了建模這一性質,他們引入了一種多模態交錯的旋轉位置編碼mi-rope來給視覺的key建模位置信息。
具體來說,他們預先記錄了每張圖片在原文中的位置信息,會取這一位置來計算對應的rope embedding,而同一張圖的各個patch會共享這個embedding。
此外,他們也在cross-attention引入了attention mask,讓原始上下文中在圖片之前的文本不能看到後面的圖片對應的特徵。
概括而言,hyper attention的這些設計點,為mplug-owl3帶來了進一步的效率提升,並且保障了它仍然能具備一流的多模態能力。
實驗結果
通過在廣泛的數據集上進行實驗,mplug-owl3在大多數單圖多模態benchmarks都能取得sota的效果,甚至不少測評還能超過模型尺寸更大的模型。
同時,在多圖測評中,mplug-owl3同樣超越了專門針對多圖場景優化的llava-next-interleave和mantis。
另外,在longvideobench(52.1分)這一專門評估模型對長視頻理解的榜單上更是超越現有模型。
研發團隊還提出了一個有趣的長視覺序列測評方法。
眾所周知,真實的人機交互場景,並非所有圖片都是為了用戶問題服務的,歷史上下文中會充斥着與問題無關的多模態內容,序列越長,這一現象越嚴重。
為了評估模型在長視覺序列輸入中的抗干擾能力,他們基於mmbench-dev構建了一個新的測評數據集。
通過為每一個mmbench循環評估樣本引入無關的圖片並打亂圖片順序,再針對原本的圖片進行提問,看模型是否能穩定地正確回復。(對於同一個問題,會構造4個選項順序和干擾圖片均不同的樣本,全都答對才記一次正確回答。)
實驗中根據輸入圖片數目分為了多個層級。
可以看出,沒有經過多圖訓練的模型例如qwen-vl和mplug-owl2很快就敗下陣來。
而經過多圖訓練的llava-next-interleave和mantis在最開始能和mplug-owl3保持近似的衰減曲線,但隨着圖片數目達到了50這個量級,這些模型也不再能正確回答了。
而mplug-owl3堅持到了400張圖片還能保持40%的準確率。
不過有一說一,儘管mplug-owl3超越了現有模型,但其準確率遠未達到優秀水平,只能說這一測評方法揭示了所有模型未來需要進一步提升的長序列下的抗干擾能力。
更多詳情歡迎查閱論文及代碼。