與自然語言處理類似,對預訓練視覺主幹的遷移提高了模型在各種視覺任務上的表現。更大的資料集、可擴展的架構和新的訓練方法都推動了模型效能的提升。
然而,視覺模型仍然遠遠落後於語言模型。具體來說,迄今為止最大的視覺模型 ViT 只有 4B 參數,而入門級語言模型通常超過 10B 參數,更別說具有 540B 參數的大型語言模型。
為了探索AI 模型的性能極限,Google Research 最近在CV 領域的一項研究,率先將Vision Transformer 參數量擴展到了22B,提出ViT-22B,與之前類似的模型參數量4B 相比,可以說這是迄今為止最大的稠密型ViT 模型。
論文網址:https://arxiv.org/pdf/2302.05442.pdf
#對比之前最大的ViT- G 和ViT-e,表1 給出了比較結果,由下表可得,ViT-22B 主要是擴展了模型的寬度,使得參數量更大,深度和ViT-G 一樣。
目前的ViT 大模型
正如這位知乎網友所說,難道是谷歌在ChatGPT 上輸了一局,勢必要在CV 領域爭口氣?
如何做到的?原來研究早期,他們發現在擴展 ViT 的過程中,出現了訓練不穩定性,並且可能會帶來架構變化。然後研究人員仔細設計模型,並以前所未有的效率實現模型並行訓練。 ViT-22B 的品質是透過一套全面的任務來評估的,從(少樣本)分類到密集輸出任務,在這些任務中,它達到或超過了當前 SOTA 水平。例如,即使用作凍結的視覺特徵提取器,ViT-22B 在 ImageNet 上的準確率也達到了 89.5%。透過訓練 text tower 來匹配這些視覺特徵,它在 ImageNet 上實現了 85.9% 的零樣本設定準確率。此外,該模型可以看作是一個教師,用作蒸餾目標,研究人員訓練了一個 ViT-B 學生模型,在 ImageNet 上的準確率為 88.6%,達到了此類規模模型上 SOTA 水平。
ViT-22B 是基於Transformer 的編碼器模型,類似於原始Vision Transformer 架構,但包含以下三個主要修改,以提高效率和大規模訓練的穩定性:平行層、查詢/ 鍵(QK)歸一化和omitted biases。
並行層。如同Wang 和Komatsuzaki 研究所述,該研究設計了一個Attention 和MLP 並行結構:
#這可以透過組合MLP 和注意力塊的線性投影來實現額外的並行化。值得注意的是,用於查詢 / 鍵 / 值投影的矩陣乘法和 MLP 的第一線性層被融合到一個單獨的操作中,對於 MLP 的注意力外投影和第二層線性層也是如此。
QK 歸一化。訓練大模型的一個困難是模型的穩定性,在將 ViT 擴展的過程中,研究人員發現在數千輪的 step 後訓練損失呈發散性。特別是在 8B 參數的模型中這種現象特別突出。為了穩定模型訓練,研究人員採用 Gilmer 等人的方法,在點積注意力計算之前對查詢和鍵應用 LayerNorm 歸一化操作,以提升訓練的穩定性。具體來說,注意力權重計算為:#
omitted biases。在 PaLM 之後,偏置項從 QKV 投影中移除,並且所有的 Layernorm 都在沒有偏壓的情況下應用,從而提高了加速器的利用率 (3%),且品質沒有下降。然而,與 PaLM 不同的是,研究人員對 MLP 密集層使用了偏置項,即便如此,這種方式在兼顧品質的同時,速度並沒有下降。
圖 2 展示了一個 ViT-22B 編碼器區塊。嵌入層在原有 ViT 的基礎上進行了 patch 提取、線性投影和添加位置嵌入等操作。研究人員使用多頭注意力池化來聚合頭中的每個 token 表示。
ViT-22B 使用 14 × 14 的 patch,影像解析度為 224 × 224。 ViT-22B 採用了一種學習到的一維位置嵌入。在對高解析度影像進行微調期間,研究人員根據預訓練的位置嵌入在原始影像中的位置執行二維插值。
ViT-22B 使用 FLAX 函式庫,實作方式是 JAX,並在 Scenic 中建置。它同時利用了模型和資料並行性。值得一提的是,研究人員使用了 jax. xmap API,它提供了對所有中間體的分片(例如權重和激活)以及晶片間通信的明確控制。研究人員將晶片組織成大小為 t × k 的 2D 邏輯網格,其中 t 是資料平行軸的大小,k 是模型軸的大小。然後,對於 t 組中的每個組,k 個設備獲得相同批次的圖像,每個設備只保留 1/k 的激活,並負責計算所有線性層輸出的 1/k(詳細內容如下)。
#圖3:非同步並行線性操作(y = Ax):跨裝置的重疊通訊與計算的模型並行矩陣乘法。
非同步並行線性運算。為了最大限度地提高吞吐量,必須考慮計算和通訊。也就是說,如果希望這些操作在分析上等效於未分片的情況,就必須盡可能少地進行通信,理想情況下讓它們重疊,這樣就可以保持矩陣乘法單元(FLOP 的大部分容量所在)始終處於繁忙狀態。
參數分片。該模型在第一個軸上是資料並行的。每個參數可以在這個軸上完全複製,也可以讓每個裝置保存它的一個區塊。研究人員選擇從模型參數中分割一些大張量,以便能夠擬合更大的模型和批次大小。
使用這些技術,ViT-22B 在 TPUv4 上訓練期間,每個核心每秒處理 1.15k token。 ViT-22B 的模型 flops 利用率(MFU)為 54.9%,顯示硬體的使用非常有效。請注意,PaLM 報告的 MFU 為 46.2%,而研究人員在相同硬體上為 ViT-e(僅數據並行)測量的 MFU 為 44.0%。
實驗探討了 ViT-22B 用於影像分類的評估結果。
表 2 結果顯示,ViT-22B 在各種指標上仍有顯著的改善。此外,研究表明,像 ViT-22B 這樣的大型模型的 Linear probing 可以接近或超過具有高分辨率的小型模型的 full fine-tuning 性能,通常成本更小、更容易做到。
研究進一步在細粒度分類資料集iNaturalist 2017 上測試線性可分離性,將ViT-22B 與其他ViT 變體進行比較。研究測試了 224px 和 384px 的輸入解析度。結果如圖 4。研究觀察到 ViT-22B 明顯優於其他 ViT 變體,特別是在標準的 224px 輸入解析度下。這表明 ViT-22B 中大量的參數對於從圖像中提取詳細資訊是有用的。
表 3 顯示了 ViT-22B 對 CLIP、ALIGN、BASIC、CoCa、LiT 模型的零樣本遷移結果。表 3 底部比較了三個 ViT 模型效能。
在所有的 ImageNet 測試集中,ViT-22B 取得了相當或更好的結果。值得注意的是,ObjectNet 測試集上的零樣本結果與 ViT 模型大小高度相關。最大的 ViT-22B 將新的 SOTA 設定在具有挑戰性的 ObjectNet 測試集中。
Out-of-distribution (OOD)。研究建立了一個從 JFT 到 ImageNet 的標籤映射,以及從 ImageNet 到不同分佈外資料集的標籤映射,即 ObjectNet、ImageNet-v2、ImageNet- R 和 ImageNet- A。
目前可以確認的結果是,與 ImageNet 上的改進一致,擴展模型增加了分佈外性能。這適用於只看過 JFT 影像的模型,以及在 ImageNet 上進行微調的模型。在這兩種情況下,ViT-22B 在更大的模型上都延續了 OOD 表現更好的趨勢(圖 5,表 11)。
此外,研究人員也研究了ViT-22B 模型在語意分割和單目深度估計任務中捕獲的幾何和空間資訊品質。
語意分割。研究人員在三個基準上評估 ViT-22B 作為語意分割主幹:ADE20K、Pascal Context 和 Pascal VOC。從表 4 可以看出,當只看到少量分割遮罩時,ViT-22B 主幹遷移效果較好。
單目深度估計。表 5 總結了研究的主要發現。從最上面的行(DPT 解碼器)中可以觀察到,與不同的主幹相比,使用 ViT-22B 特性產生了最佳的性能(在所有指標上)。透過將 ViT-22B 主幹與 ViT-e(一個較小的模型,但在與 ViT-22B 相同的資料上進行訓練)進行比較,研究發現擴展架構可以提高效能。
此外,將ViT-e 主幹與ViT-L(與ViT-e 類似的架構,但訓練的資料較少)進行比較,研究發現這些改進也來自於擴展訓練前的資料。這些發現表明,更大的模型和更大的數據集都有助於提高效能。
該研究也在影片資料集上進行了探索。表 6 展示了在 Kinetics 400 和 Moments in Time 資料集上的視訊分類結果,顯示可以使用凍結的主幹實現具有競爭力的結果。研究首先與 ViT-e 進行比較,ViT-e 擁有最大的先驗視覺主幹模型,由 40 億個參數組成,並且也在 JFT 資料集上進行訓練。我們觀察到更大的 ViT-22B 模型在 Kinetics 400 上提高了 1.5 分,在 Moments in Time 上提高了 1.3 分。
最後研究注意到,透過完整的端對端微調,還有進一步改進的空間。
更多技術細節請參閱原始論文。
以上是谷歌將視覺遷移模型參數擴展到220億,自ChatGPT火爆後研究者集體行動的詳細內容。更多資訊請關注PHP中文網其他相關文章!