学完文本知识,我就直接看懂图片了!
文 | Yimin_飯煲
2020年, OpenAI的大作GPT-3 (Language Models are few shot learners) 橫空出世,震驚整個NLP/AI圈。大家在驚嘆于GPT-3 1750B參數的壕無人性同時,想必對GPT-3中的Prompt方法印象深刻。簡單來說,(GPT-3中的)Prompt就是為輸入的數據提供模板(例如對于翻譯任務 Translate English to Chinese:),在凍結語言模型參數的情況下讓自回歸語言模型輸出答案。關于Prompt方法的具體介紹,大家可以參考CMU最新發布在arxiv上的綜述 (Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing)。賣萌屋之前也轉載過該論文的中文解析 《Fine-tune之后的NLP新范式:Prompt越來越火,CMU華人博士后出了篇綜述文章》
GPT-3的大獲成功,為NLP圈的研究者們展現了大規模自回歸語言模型不需微調即可發揮出的巨大威力。同樣立志于通用人工智能的DeepMind怎甘落后,進一步發掘了自回歸語言模型在多模態任務上的潛力。Deepmind的研究者們發現,在凍結參數的情況下, 通過與GPT-3類似的Prompt方法,就可以讓自回歸語言模型處理多模態任務,在多個基準任務上(特別是小樣本任務上)取得了相當優秀的效果。
論文題目:
Multimodal Few-Shot Learning with Frozen Language Models
論文鏈接:
https://arxiv.org/abs/2106.13884
方法:Frozen
作者們將本文的方法取名為Frozen。Frozen的主要目標是,利用凍結參數的預訓練自回歸語言模型處理多模態任務。眾所周知,自回歸語言模型(例如GPT-3)的訓練任務是:給定前-1個詞,預測第個詞,可以寫成如下的表達形式,其中表示個詞。
我們考慮多模態任務中經典的圖像標題生成任務,圖像生成任務的主要目標是給定圖像, 生成描述圖像的一段文字。要想讓自回歸語言模型處理圖像生成任務,一個非常自然的想法是,將圖像轉換成輸入語言模型的“詞匯“,這樣,我們就可以先將圖像對應的”詞匯“輸入自回歸語言模型,讓模型為我們輸出描述圖像的文字。這個想法可以表示成如下的形式. 假設圖像轉換為的“詞匯”是
接下來的關鍵是,如何將圖像轉換成輸入語言模型的“詞匯”?作者們采用的方法非常直接,使用一個傳統的視覺編碼器(如ResNet)提取圖像的特征,再通過一個線性映射將圖像映射為的矩陣,其中就是語言模型“詞匯”的表示維度。將圖像轉換為“詞匯” 之后,就可以將圖像直接輸入語言模型了。整個模型的架構如下圖表示。
正如前文所述,自回歸語言模型的參數是固定的。作者們在實驗中中發現,在小數據集場景下如果同時微調自回歸語言模型,反而會損害泛化性能。視覺編碼器的參數是通過訓練過程中的梯度進行更新的,原因是語言模型和視覺編碼器的結構和訓練方式完全不同,需要通過訓練視覺編碼器,將視覺輸入轉化為語言模型能夠“看懂”的輸入形式,也就是所謂的Prompt。
在GPT-3大獲成功的三種Prompt方式里,除了上圖展示的zero-shot之外,還有one-shot和few-shot兩種設置。在這兩種設置下,可以為模型提供一個或多個解決該問題的例子,這些例子被拼接在輸入數據之前。在本文中,DeepMind的研究員們也在模型推理階段使用了這兩種設置。如下圖所示
作者們使用了C4數據集預訓練了大小為7B的自回歸語言模型。在Conceptural Captions這一圖像-標題數據集上固定自回歸語言模型參數,訓練視覺編碼器。隨后,作者們在多個多模態任務上開展了實驗,讓我們一起來看看結果吧~
實驗結果
小樣本學習術語
在開始實驗結果的描述前,我們先簡單描述一下小樣本學習的一些常用術語,以便大家更好地理解文章。
問題歸納(Task induction) 指用來描述問題的前綴。例如在翻譯任務的句子前加上 “ Translate English to Chinese"。
例子數目(n-shots) 指為模型提供例子的數量。在VQA中可以是圖片-問題-答案的組合。
標簽數目(Number of Ways) 指分類問題中類別的數目。
類內例子數目(Number of Inner-shots) 指分類問題中每個類別對應的例子數目。
重復數目(Number of repeats) 指每個類內例子輸入模型的次數。
作者在實驗中主要希望探索Frozen在以下三個方面的表現
Frozen能否將自回歸語言模型快速遷移到多模態任務上?
Frozen能否充分利用自回歸語言模型中的通用知識?
Frozen能否快速地對語言和視覺的概念進行對應?
快速適配
本文的模型是在圖像-標題數據集上進行訓練的。現實場景中多模態任務種類繁多。作者們希望研究在圖像-標題數據集上訓練的模型,能否遷移到其他多模態任務(e.g. VQA) 上取得好的表現(這就好比在維基百科上訓練掩碼語言模型任務的模型,能夠遷移到下游的各種分類任務上)。在VQA v2數據集上的結果表明:模型可以遷移到小樣本VQA場景下,隨著例子數目 (n-shots) 的增多表現隨之增長。
通用知識
自回歸語言模型訓練的語料極為豐富,包含了大量的通用知識。作者們希望研究自回歸語言模型中的通用知識能否為處理的多模態任務提供幫助。例如,當提供一張飛機的照片并提問“誰發明了圖中的東西?“時, 圖像-標題數據集可能并不會包含“懷特兄弟發明了飛機”這樣的知識,而預訓練語言模型的C4數據集中則大概率包含了這樣的知識。作者們希望Frozen能夠利用這樣的知識來回答問題。在OKVQA(一個需要外部知識的VQA數據集)上開展的實驗表明,Frozen確實具備應用通用知識的能力。隨著自回歸語言模型的參數量增長,應用通用知識的能力會提升。
概念對應
概念對應是人類在認知過程中極為重要的能力。當我們牙牙學語時,爸爸媽媽可能會指著一頭獅子告訴我們這個”東西”叫“獅子”。教授幾次過后,當我們再次看到獅子時,就能叫出“獅子“。在小樣本學習中,概念對應是非常重要的一步。作者們在miniImageNet和FastVQA數據集上開展實驗。由于在預訓練過程中模型已經見到過大量的文本和圖像的對應數據,無法看出模型快速對應新概念的能力。作者們首先將視覺類別對應的文本替換為無意義的詞匯,之后提供少量視覺類別的樣例和對應的詞匯,讓模型根據少量樣例完成概念的對應,具體示例如下圖:
在兩個數據集上模型均取得了相當不錯的表現。可以發現,加入問題歸納會得到更好的表現,增加類內例子數目會提升模型的性能,而增加重復數目對模型性能影響很小。
結語
作者們在文中多次表示,與多模態領域使用全部數據微調的SOTA相比,本文的方法還是有著較大的差距。然而,作者們仍然相信,本工作是多模態小樣本學習領域Proof of Concept的工作,展現了大規模自回歸語言模型的強大潛力。語言作為一種完備且通用的描述世界的方式,也許能為各種模態的任務都提供幫助。
讀完本文,筆者第一時間想到的是,DeepMind的研究者們訓練了一個7B的語言模型就得到了如此優秀的結果,如果能使用OpenAI的GPT-3(175B)語言模型作為Backbone,是否有機會刷新多模態領域的SOTA呢?
后臺回復關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復關鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
?
[1] Language Models are Few-Shot Learners. https://arxiv.org/abs/2005.14165
[2] Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing. https://arxiv.org/abs/2107.13586
[3] Multimodal Few-Shot Learning with Frozen Language Models. https://arxiv.org/abs/2106.13884
總結
以上是生活随笔為你收集整理的学完文本知识,我就直接看懂图片了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样将Embedding融入传统机器学习
- 下一篇: 一个程序员的“无聊”故事