順手訓了一個史上超大ViT?Google升級視覺語言模型PaLI:支援100+種語言
近幾年自然語言處理的進展很大程度上都來自於 大規模語言模型,每次釋出的新模型都將引數量、訓練資料量推向新高,同時也會對現有基準排行進行一次屠榜!
比如 今年4月 ,Google釋出 5400億引數的語言模型PaLM (Pathways Language Model)在語言和推理類的一系列測評中成功超越人類,尤其是在 few-shot小樣本學習場景 下的優異效能,也讓PaLM被認為是下一代語言模型的發展方向。
同理, 視覺語言模型 其實 也是 大力出奇跡 ,可以通過 提升模型的規模來提升效能。
當然了,如果 只是多工 的視覺語言模型,顯然還不是很通用,還得 支援多種語言 的輸入輸出才行。
最近Google就 將PaLM擴充套件升級成PALI (Pathways Language and Image model),兼具 多語言和影象理解 的能力,同時 支援100+種語言 來執行各種橫跨視覺、語言和多模態影象和語言應用,如視覺問題回答、影象說明(image caption)、物體檢測、影象分類、OCR、文字推理等。
論文連結:http://arxiv.org/abs/2209.06794
模型的訓練使用的是一個公開的影象集合,其中包括 自動爬取的109種語言的標註 ,文中也稱之為 WebLI 資料集。
在WebLI上預訓練的PaLI模型在多個影象和語言基準上取得了最先進的效能,如COCO-Captions、TextCaps、VQAv2、OK-VQA、TextVQA等等,也超越了先前模型的多語言視覺描述(multilingual visual captioning)和視覺問答的基準。
模型架構
PALI的目標之一是研究 語言 和 視覺 模型在 效能和規模 上的聯絡是否相同,特別是語言-影象模型的可擴充套件性(scalability)。
所以模型的架構設計上就很簡單,主要是為了實驗方便,尤其是可重複使用且可擴充套件。
模型由一個處理輸入文字的Transformer編碼器和一個生成輸出文字的自迴歸Transformer解碼器組成。
在處理影象時,Transformer編碼器的輸入還包括代表由ViT處理的影象的視覺詞(visual words)。
PaLI模型的一個關鍵設計是重用,研究人員用之前訓練過的單模態視覺和語言模型(如mT5-XXL和大型ViTs)的權重作為模型的種子,這種重用不僅使單模態訓練的能力得到遷移,而且還能節省計算成本。
模型的視覺元件使用的是 迄今為止最大的ViT架構ViT-e ,它與18億引數的ViT-G模型具有相同的結構,並使用相同的訓練引數,區別就是擴充套件為了 40億引數 。
雖然在視覺領域和語言領域都對縮放規律進行了研究,但在視覺和語言的組合模型中對縮放行為的探討較少,擴大視覺骨幹模型的規模可能會導致在分類任務中的收益飽和。
研究人員也進一步證實了這一點,可以觀察到 ViT-e在ImageNet上只比ViT-G好一點,但ViT-e在PaLI的視覺語言任務上有很大的改進。例如,ViT-e在COCO字幕任務上比ViT-G多出近3個CIDEr點。任務上比ViT-G多出3分。這也暗示了未來在視覺語言任務中使用更大的ViT骨架模型的空間。
研究人員採用 mT5骨幹作為語言建模元件 ,使用預訓練的mT5-Large(10億引數)和mT5-XXL (130億引數)來初始化PaLI的語言編碼器-解碼器,然後在許多語言任務中進行繼續混合訓練,包括純語言理解任務,這也有助於避免災難性的遺忘mT5的語言理解和生成能力。
最後得到了三個不同尺寸的PALI模型。
109種語言的資料集
深度學習相關的擴充套件研究表明,模型越大,所需的訓練資料集也越大。
所以為了全面研究和釋放語言-影象預訓練模型的潛力,研究人員從網際網路上爬取了大量的影象和文字資料,構建了一個全新的資料集WebLI,其中包括109種語言的120億alt-texts和100億張圖片。
除了用網路文字進行標註外,研究人員還應用雲端視覺API對影象進行OCR識別,進而得到290億個影象-OCR的資料對。
使用near-duplication對68個常見的視覺和視覺語言資料集的訓練、驗證和測試部分的影象進行了去重處理,以避免下游評估任務的資料洩露。
為了進一步提高資料質量,研究人員還會根據「影象和alt-text」的跨模態相似度進行評分,並調整閾值,最後只保留10%的影象,總共有10億張影象用於訓練PaLI
訓練大模型
由於視覺-語言任務是多模態,所以需要模型具有多種語義處理能力,而且會有不同的目標。比如有些任務需要對物體進行區域性定位以準確解決任務,而其他一些任務可能需要更多的全域性語義資訊。
同樣地,有的語言任務可能需要長的答案,而有些則需要緊湊的答案。
為了解決所有這些不一致的目標,研究人員利用WebLI預訓練資料的豐富性,引入預訓練任務的混合(Pretraining Task Mixture),為各種下游應用準備模型。
為了讓模型更通用以解決多種任務,作者將所有的任務歸入一個單一的通用API(輸入:影象+文字;輸出:文字),使多個影象和語言任務之間能夠進行知識共享,這也是與預訓練設定的共享。
用於預訓練的目標作為加權的混合被投影到同一個API中,目的是既保持重複使用的模型元件的能力,又能訓練模型執行新的任務。
模型使用開源的T5X和Flaxformer框架在JAX中用Flax進行訓練,視覺部分的ViT-e使用開源的BigVision框架,將語言部分的詞向量與視覺部分生成的patch向量級聯起來,共同作為多模態編碼器-解碼器的輸入,編碼器使用mT5-XXL預訓練初始化。在PaLI的訓練過程中,視覺元件的權重被凍結,只更新多模態編碼器-解碼器的權重。
在實驗部分,研究人員在常見的視覺語言基準上對PaLI進行了比較,且PaLI模型在這些任務上取得了最先進的結果,甚至超過了以往文獻中提出的超大型的模型。
比如170億引數的PALI在一些VQA和影象標題任務上的表現優於800億引數的Flamingo模型。
並且PALI在單語言或單視覺的任務上也保持了良好的表現,雖然這並非是PALI主要的訓練目標。
文中還研究了影象和語言模型元件在模型擴充套件方面是如何相互作用的,以及模型在哪裡產生最大的收益。
最後得出的結論是,對這兩個元件進行聯合擴充套件(縮放)會產生最好的效能,具體來說,對需要相對較少引數的視覺元件進行縮放是最關鍵的,同時縮放對於提高多語言任務的效能也很重要。
在35種語言的基準Crossmodal-3600上評估了PaLI後可以發現多語言起標題任務從PaLI模型的擴充套件中受益更多。
為了避免在大型語言和影象模型中產生或加強不公平的偏見,需要對所使用的資料和模型如何使用這些資料保持透明,以及測試模型的公平性並進行負責任的資料分析,所以文中同時提供了一個Data Card和Model Card
- Spring中實現非同步呼叫的方式有哪些?
- 帶引數的全型別 Python 裝飾器
- 整理了幾個Python正則表示式,拿走就能用!
- 設計模式之狀態模式
- 如何實現資料庫讀一致性
- SOLID:開閉原則Go程式碼實戰
- React中如何引入CSS呢
- 慢查詢 MySQL 定位優化技巧,從10s優化到300ms
- 一個新視角:前端框架們都卷錯方向了?
- 編碼中的Adapter,不僅是一種設計模式,更是一種架構理念與解決方案
- 手寫程式語言-遞迴函式是如何實現的?
- 一文搞懂模糊匹配:定義、過程與技術
- 新來個阿里 P7,僅花 2 小時,做出一個多執行緒永動任務,看完直接跪了
- Puzzlescript,一種開發H5益智遊戲的引擎
- @Autowired和@Resource到底什麼區別,你明白了嗎?
- “四招”守護個人資訊保安
- CSS transition 小技巧!如何保留 hover 的狀態?
- React如此受歡迎離不開這4個主要原則
- 我是怎麼入行做風控的
- 重溫三十年前對於 NN 的批判:神經網路無法實現可解釋 AI