機器之心專欄
商湯、西安交通大學等
來自商湯、西安交通大學等機構的研究者提出了一種通用感知架構 Uni-Perceiver ,該方法可以更好地將預訓練中學到的知識遷移到下游任務中。
人腦可以整合不同模態的資訊,並同時處理各項任務來感知世界。相比之下,當前機器學習研究者多是為不同的任務開發不同的模型和演算法,並在特定於任務的資料上進行訓練。然而,這種特定於任務的方法會大大增加為新任務開發模型的邊際成本,無法滿足快速增長的應用場景的需求。
本文的研究者們希望提出一種通用感知架構,透過在多模態大規模資料上進行預訓練得到良好的表徵,並對不同下游任務使用同一套預訓練引數;在應用於下游任務時,模型無需額外資料,或僅需少量的資料即可達到良好的效果。研究者們的核心想法是將不同模態的資料編碼到統一的表示空間中,並將不同任務統一為相同的形式。這種統一的設計鼓勵了不同模態和任務在表示學習中的協作,並且可以更好地將預訓練中學到的知識遷移到下游任務中。由於任務形式的統一,該模型甚至可以對預訓練階段沒有見過的新任務進行 zero-shot 推理。
基於此想法,來自商湯、西安交通大學等機構的研究者們提出了 Uni-Perceiver 。
論文地址:https://arxiv.org/pdf/2112.01522.pdf
圖 1 對比了 Uni-Perceiver 和現有的為特定任務設計和訓練的模型。Uni-Perceiver 以統一的模型處理各種模態和任務,在各種單模態任務以及多模態任務上進行了預訓練。在下游任務上,由於對不同任務使用了統一的建模,模型顯示了沒有見過的新任務的 zero-shot 推理能力,不經任何額外訓練也能達到合理的效能。此外,透過使用 1% 的下游任務資料進行 prompt tuning,模型效能可以提升到接近 SOTA 的水平。使用 100% 的目標資料對預訓練模型進行微調時,Uni-Perceiver 在幾乎所有任務上都達到了與 SOTA 方法相當或更好的結果。
圖 1 現有的特定於任務的感知模型和 Uni-Perceiver 的比較
方法
1. 統一的通用感知模型
Uni-Perceiver 的統一模型架構如圖 2 所示。模型首先將文字、影象、影片不同模態的資料使用對應的 tokenizer 轉換為具有同一特徵維度的 token 序列,並將不同模態的資訊拼接起來,使用一個統一的 Transformer 編碼器提取特徵。
對於不同的感知任務,Uni-Perceiver 使用相同的模型和共享的一套引數進行建模。相比於傳統 backbone + prediction head 的正規化,Uni-Perceiver 不包括對每個任務單獨設計的 head,而是將不同的任務建模為統一的形式。具體而言,對於每個任務,可以定義其輸入集合
和候選目標集合
。對於給定的輸入
,任務被定義為尋找x在候選目標集合
中最相似的目標
,即
其中,p ( x , y ) 表示輸入和候選目標的聯合機率分佈。Uni-Perceiver 使用特徵的餘弦相似度建模聯合機率分佈,即
其中,
表示 Transformer 編碼器,
表示一個可學習的溫度係數。
Uni-Perceiver 適用於任意由影象 / 影片 / 文字組成輸入和候選目標集合的任務。例如,分類任務中的目標集合
可以是一組類別名(如 dog)、一組類別描述(如 a kind of fish living in deep sea),甚至可以是一組手寫的類別編號的影象。除此之外,作者在文中提到,這篇論文專注於文字、影象和影片模態,但 Uni-Perceiver 也可拓展到更多模態上。
圖 2 統一模型架構
2. 多模態預訓練
為了學習多模態的通用 representation,Uni-Perceiver 使用一系列單模態或跨模態任務進行了預訓練。值得一提的是,在影象和影片分類任務中,作者將類別名稱視作文字內容,這為連線起影象、影片和文字多個模態的 representation 提供了一定的監督。
圖 3 展示了不同預訓練任務的 input 和 target 的序列格式。圖中,上標I、V、T分別代表來自影象、影片和文字模態的 token。
圖 3 預訓練任務格式
3. 應用於下游任務:Zero-shot, Prompt Tuning 和 Fine-tuning
相比於額外增加 prediction head 並 finetune 的方式,Uni-Perceiver 可將預訓練模型更高效地遷移到下游任務上。本文中,作者考慮三種不同場景:零樣本(Zero-shot),少樣本(Few-shot)和全量資料,並對三種情況分別介紹。
在新任務上的 Zero-shot 推理:Uni-Perceiver 可以對預訓練階段沒有見過的全新任務進行零樣本推理,在不經過任何額外訓練和調整的情況下取得合理的效果。
Prompt Tuning:在下游任務資料量有限的場景下,透過 Prompt Tuning,Uni-Perceiver 可以在僅調整小部分模型引數的情況下取得接近全資料 SOTA 的結果。
Fine-tuning:當下遊任務資料量足夠時,Uni-Perceiver 的預訓練模型可以透過 fine-tuning 取得超過 SOTA 或與 SOTA 不相上下的結果。
實驗
Uni-Perceiver 在表 1 所示的大規模單模態和多模態資料集上進行了訓練。實驗中,作者使用與 BERT-base 相同配置的 Transformer 編碼器。在每次迭代中,每個 GPU 獨立取樣任務和資料集,並在梯度反向傳播之後同步不同 GPU 之間的梯度。該模型在 128 個 Tesla V100 GPU 上以分散式方式進行了 50 萬次迭代的預訓練。
表 1 預訓練資料集
研究者接下來在多項任務上對預訓練模型進行了評估,包括預訓練中出現過的任務(Image Classification, Image-Text Retrieval, Image Caption)以及與預訓練不同的任務(Video Caption, Video-Text Retrieval, VQA)。表 2 – 表 8 展示了這些結果。實驗表明,和具有相似模型尺寸的 task-specific SOTA 方法相比:
- 在不經任何調整的情況下,Uni-Perceiver 即可以達到合理的精度。值得注意的是,對於預訓練中不存在的任務,由於 task-specific head 的限制,現有的其他工作無法執行這種型別的 zero-shot 推理。
- 透過 1% 的資料對少量模型引數進行 Prompt Tuning,Uni-Perceiver 即可以接近 SOTA 的效果。
- 進一步全資料 Fine-tune 可以使模型在某些任務上超過 SOTA 結果,並在其他任務上取得與 SOTA 相媲美的精度。
表 2 Image Classification 效能
表 3 Image-Text Retrieval 效能
表 4 Image Caption 效能
表 5 新任務 - Video Caption 效能
表 6 新任務 - Video-Text Retrieval 效能
表 7 新任務 - VQA 效能
表 8 新任務 - GLUE 效能