1. 程式人生 > 資訊 >谷歌釋出最新看圖說話模型:可實現零樣本學習,多型別任務也能直接上手

谷歌釋出最新看圖說話模型:可實現零樣本學習,多型別任務也能直接上手

谷歌新推出了弱監督看圖說話模型 SimVLM,能夠輕鬆實現零樣本學習(zero-shot)任務遷移。

從文字描述影象到回答圖片相關問題,模型無需微調也能樣樣精通。

對於一般的視覺語言預訓練(VLP)模型,訓練資料集中要求包含大量精準標籤。而模型的任務遷移,則需要針對特定任務重新進行資料集的標籤標註。

總結下來,就是標註資料集不僅耗時耗力,還不能多工通用。

能不能開發出一種又簡單又萬能的 VLP 模型呢?

谷歌新開發的這款模型使用了弱監督學習進行模型訓練,通過利用大量的弱對齊影象-文字對進行建模,簡化了 VLP 的訓練流程,大大降低了訓練的複雜性。

SimVLM 使用字首語言建模的單一目標進行端到端訓練,並直接將原始影象作為輸入

。這些設定允許模型對大規模的弱標記資料集進行利用,從而能夠更好地實現零樣本學習泛化效果。

SimVLM 模型是如何實現的?

SimVLM 模型的預訓練過程採用了字首語言建模 (PrefixLM) 的單一目標,接受序列的字首作為輸入,通過模型解碼器來預測其延續的內容。

對於資料集中的影象-文字對,影象序列可視作其文字描述的字首。

這種方法可以簡化訓練過程,最大限度地提高模型在適應不同任務設定方面的靈活性和通用性。

模型的主幹網路,則使用了在語言和視覺任務上均表現突出的 Transformer 架構。

對輸入的原始影象資料提取上下文 patch,這裡採用了 ResNet 卷積網路。

如上圖所示:視覺模態中,圖片被分割成多個 patch,然後壓縮為一維序列。文字模態語句則被對映到了一個表徵向量中

本模型使用了包含大約 1.8B 噪聲的影象-文字對 ALIGN 訓練集進行預訓練,以此來實現更好的零樣本學習泛化能力。

為了補償訓練集中的噪聲影響,訓練模型另外還使用了共 800G 的 Colossal Clean Crawled Corpus (C4) 資料集。

SimVLM 模型基礎效能如何?

模型的預訓練完成後,需要在多模式任務中對模型進行微調,以測試效能。

這裡用到的多模式任務有:VQA、NLVR2、SNLI-VE、COCO Caption、NoCaps 和 Multi30K En-De。

▲效能指標:BLEU-4 ([email protected])、METEOR (M)、CIDEr (C)、SPICE (S)

將 SimVLM 模型與現有的功能完善的模型進行比較,測試結果如上表所示,參與評估的 SimVLM 模型還包括了三種不同規模:8600 萬引數、3.07 億引數和 6.32 億引數。

跨模式任務的測試結果中,SimVLM 模型的效能表現最好(資料越大越好),除了 CoCo Caption 的 [email protected] 指標,在其他任務上都取得了新的 SOTA 結果,充分證明了該模型的先進性。

SimVLM 模型零樣本泛化

SimVLM 模型在跨模式任務測試中可以取得不錯的效能表現,那麼它能否順利執行零樣本跨模態轉移呢?

預訓練的 SimVLM 模型僅對文字資料進行微調或完全不進行微調,通過影象字幕、多語言字幕、開放式 VQA 和視覺文字生成等任務,對模型進行測試。

測試結果如下圖所示:

給定影象和文字提示,預訓練模型無需微調即可預測影象的內容

除此之外,未進行過微調的模型在德語字幕生成、資料集外的答案生成、基於影象內容的文字描述、開放式視覺問題回答等應用上均有不錯的表現。

為了量化 SimVLM 的零樣本學習效能,這裡採用了預訓練的固化模型在 COCO Caption 和 NoCaps 上進行解碼,然後與監督標準基線(Sup.)進行比較。

從結果對比上來看,即使沒有監督微調,SimVLM 也可以達到有監督的訓練質量水平。

作者介紹

本研究的第一作者是谷歌學生研究員王子瑞,現就讀於卡內基梅隆大學,曾以第一作者身份在 ICLR、EMNLP、CVPR 等頂會上發表了多篇論文。

截止到 2020 年 12 月 20 日,他在 SuperGLUE 資料集上獲得了第一個超過人類得分的 SOTA 效能(分數超過 90),目前則被百度團隊趕超,位居第二。

這一次開發的 SimVLM 也在 6 個視覺語言基準測試中達到了單模型 SOTA 效能,並實現了基於文字引導的零樣本學習泛化能力。

參考連結:

https://arxiv.org/abs/2108.10904

https://ai.googleblog.com/2021/10/simvlm-simple-visual-language-model-pre.html

http://www.cs.cmu.edu/~ziruiw/