少到四個示例,擊敗所有少樣本學習:DeepMind800億模型真學會了
關于智能,其關鍵點是在得到一個簡短的指令時快速學習如何執(zhí)行新任務的能力。例如,一個孩子在動物園看到動物時,他會聯(lián)想到自己曾在書中看到的,并且認出該動物,盡管書中和現(xiàn)實中的動物有很大的差異。
但對于一個典型的視覺模型來說,要學習一項新任務,它必須接受數(shù)以萬計的、專門為該任務標記的例子來進行訓練。假如一項研究的目標是計數(shù)和識別圖像中的動物,例如「三匹斑馬」這樣的描述,為了完成這一任務,研究者將不得不收集數(shù)千張圖片,并在每張圖片上標注它們的數(shù)量和種類。但是標注過程效率低效、成本高,對于資源密集型的任務來說,需要大量帶注釋的數(shù)據(jù),并且每次遇到新任務時都需要訓練一個新模型。
DeepMind 另辟蹊徑,他們正在探索可替代模型,可以使這個過程更容易、更高效,只給出有限的特定于任務的信息。
在 DeepMind 最新公布的論文中,他們推出了 Flamingo(火烈鳥)模型,這是一個單一的視覺語言模型(visual language model,VLM),它在廣泛的開放式多模態(tài)任務中建立了少樣本學習新 SOTA。這意味著 Flamingo 只需少量的特定例子(少樣本)就能解決許多難題,而無需額外訓練。Flamingo 的簡單界面使這成為可能,它將圖像、視頻和文本作為提示(prompt),然后輸出相關語言。
- 論文地址 https://storage.googleapis.com/deepmind-media/DeepMind.com/Blog/tackling-multiple-tasks-with-a-single-visual-language-model/flamingo.pdf
- 代碼地址:https://github.com/lucidrains/flamingo-pytorch
這個 Flamingo 模型到底有多智能呢?我們先來看下效果:Flamingo 可以進行開箱即用的多模式對話,下圖展示的是使用 OpenAI 的 DALL·E 2 生成的「湯怪物」圖像,在關于這張圖像的不同問答中,F(xiàn)lamingo 都能準確地回答出來。例如問題:這張圖片中有什么?Flamingo 回答:一碗湯,一張怪物臉在上面。
Flamingo 還能通過并識別出著名的斯特魯普效應 (Stroop effect),例如事先給幾個示例,如出題人給出表示綠色的單詞 GREEN,并用藍色的字體表示,回答者需要回答:顏色是綠色,用藍色書寫。在給出幾組示例后,F(xiàn)lamingo 就學會了這種模式,當給出 YELLOW 綠色字體時,F(xiàn)lamingo 回答:顏色是黃色,用綠色書寫。
此外,F(xiàn)lamingo 還能識別出這是 Stroop 測試。
下圖給出了兩個動物圖片示例和一個標識它們名稱的文本以及關于在哪里可以找到的描述,F(xiàn)lamingo 可以模仿這種風格,給定一個新圖像以輸出相關描述:例如,在給出栗鼠、柴犬示例后,F(xiàn)lamingo 模仿這種方式,輸出這是一只火烈鳥,它們在加勒比海被發(fā)現(xiàn)。
Flamingo 還能進行算術(第四行):
就像大型語言模型一樣,F(xiàn)lamingo 可以快速適應各種圖像和視頻理解任務,只需簡單地提示它幾個例子 (上圖)。Flamingo 還具有豐富的視覺對話功能 (下)。
研究概述
模型架構(gòu) & 方法
在實踐中,通過在兩者之間添加新穎的架構(gòu)組件,F(xiàn)lamingo 將每個經(jīng)過單獨預訓練和凍結(jié)的大型語言模型與強大的視覺表示融合在一起。接著在僅來自網(wǎng)絡上的互補大規(guī)模多模態(tài)混合數(shù)據(jù)上進行訓練,而不使用任何為達到機器學習目的而標注的數(shù)據(jù)。
按照該方法,研究者從最近推出的計算最優(yōu)的 700 億參數(shù)語言模型 Chinchilla 入手,訓練最終的 800 億參數(shù)的 VLM 模型 Flamingo。完成訓練后,F(xiàn)lamingo 經(jīng)過簡單的少樣本學習即可直接適用于視覺任務,無需任何額外特定于任務的微調(diào)。下圖為 Flamingo 架構(gòu)概覽。
首先是視覺處理和感知器重采樣器(Perceiver Resampler)。Flamingo 模型的視覺編碼器是一個預訓練的 NFNet,研究者使用的是 F6 模型。在 Flamingo 模型的主要訓練階段,他們將視覺編碼器凍結(jié),這是因為它與直接基于文本生成目標訓練視覺模型相比表現(xiàn)得更好。最后階段是特征 X_f 的 2D 空間網(wǎng)格被展平為 1D,如下圖 4 所示。
感知器重采樣器模塊將視覺編碼器連接到凍結(jié)的語言模型(如上圖 3 所示),并將來自視覺編碼器的可變數(shù)量的圖像或視頻特征作為輸入,產(chǎn)生固定數(shù)量的視覺輸出,如下圖 4 所示。
然后是在視覺表示上調(diào)整凍結(jié)的語言模型。如下圖 5 所示,文本生成由一個 Transformer 解碼器執(zhí)行,并以感知器重采樣器生成的視覺表示 X 為條件。研究者通過間插從僅文本語言模型中獲得的預訓練塊以及使用感知器重采樣器的輸出作為輸入從頭訓練的塊來構(gòu)建模型。
此外,為了使得 VLM 模型具有足夠的可表達性并使它在視覺輸入上表現(xiàn)良好,研究者在初始層之間插入了從頭開始訓練的門跨注意力密集塊。
最后,如下圖 7 所示,研究者在三種類型的混合數(shù)據(jù)集上訓練 Flamingo 模型,分別是取自網(wǎng)頁的間插圖像和文本數(shù)據(jù)集、圖像和文本對以及視頻和文本對。
實驗結(jié)果
在納入研究的 16 個任務中,當每個任務僅給定 4 個示例時,F(xiàn)lamingo 擊敗了以往所有的少樣本學習方法。在某些情況下,F(xiàn)lamingo 模型甚至優(yōu)于針對每個任務單獨進行微調(diào)優(yōu)化并使用更多數(shù)量級特定于任務的數(shù)據(jù)的方法。這使得非專家人員可以快速輕松地在手頭新任務上使用準確的視覺語言模型。
下圖左為 Flamingo 在 16 個不同的多模態(tài)任務上與特定于任務的 SOTA 方法的少樣本性能比較。圖右為 16 個基準中的 3 個的預期輸入和輸出示例。
未來展望
Flamingo 是一個有效且高效的通用模型族,它們可以通過極少的特定于任務的示例應用于圖像和視頻理解任務。
DeepMind 表示,像 Flamingo 這類模型很有希望以實際的方式造福社會,并將繼續(xù)提升模型的靈活性和能力,以便可以實現(xiàn)安全的部署。Flamingo 展示的能力為與學得視覺語言模型的豐富交互鋪平了道路,這些模型能夠?qū)崿F(xiàn)更好的可解釋性和令人興奮的新應用,比如在日常生活中幫助人們的視覺助手等。