LIMoE:使用MoE學習多個模態

文章鏈接:Multimodal Contrastive Learning with LIMoE: the Language-Image Mixture of Experts

發表期刊(會議): NeurIPS 2022

目錄

  • 1.背景介紹
    • 稀疏模型
  • 2.內容摘要
    • Sparse Mixture-of-Experts Models
    • Contrastive Learning
    • Experiment Analysis
  • 3.文章總結

1.背景介紹

在實際應用中,多模態數據通常是高維度的,處理這樣的數據可能會導致計算和存儲開銷巨大。稀疏模型可以幫助緩解這種問題,因為它們具有較少的參數,可以有效地處理高維數據。因此,將稀疏性考慮到多模態學習中,可以在減少計算和存儲成本的同時,提高模型的性能和效率。
一些研究工作和實際應用嘗試將多模態數據與稀疏模型相結合,以更好地處理來自不同傳感器或數據源的信息。這種結合可能涉及將多模態數據轉換為稀疏表示形式,或者在多模態模型的構建中引入稀疏性,以提高處理效率和性能。這種融合可以幫助解決處理大規模多模態數據時的挑戰,并提供更高效的解決方案。稀疏模型可以作為處理多模態數據的一種方式,以降低計算和存儲開銷,并提高模型的效率和性能。在多模態學習的背景下,引入稀疏性可以是處理復雜數據的有效策略之一。

同時(多任務)或順序(持續學習)學習許多不同任務的密集模型(dense model)通常會受到負面干擾過多的任務多樣性意味著最好為每個任務訓練一個模型,災難性遺忘意味著模型在早期任務中會隨著新任務的添加而變得更差。

稀疏模型

稀疏模型(Sparse models)在深度學習未來最有前途的方法中脫穎而出。 采用條件計算的 Sparse models 不是模型的每個部分都處理每個輸入(“dense” modeling),而是學習將各個輸入 “route” 到潛在龐大網絡中的不同 “experts” 。這有很多好處。

  • 模型大小可以增加,同時保持計算成本不變。這是一種有效且更環保的模型縮放方式,也是高性能的關鍵。
  • 稀疏性也自然地劃分了神經網絡。 稀疏模型有助于避免這兩種現象通過不將整個模型應用于所有輸入,模型中的“專家”可以專注于不同的任務或數據類型,同時仍然利用模型的共享部分。

Google Reaserch團隊長期以來一直致力于稀疏性的研究。 今天的人工智能模型通常只接受訓練做一件事。 Pathways 將使人們能夠訓練單個模型來完成數千或數百萬件事情。Pathways 總結了構建一個大型模型的研究愿景,該模型可以勤奮地處理數千個任務和眾多數據模式。
在這里插入圖片描述
到目前為止,語言(Switch、Task-MoE、GLaM)和計算機視覺(Vision MoE)的稀疏單峰模型已經取得了相當大的進展。目前,谷歌團隊通過研究大型稀疏模型,通過與模態無關的 “Router” 同時處理圖像和文本,朝著 Pathways 愿景邁出了重要一步。 他們提出了多模態對比學習,它需要對圖像和文本都有深入的理解,以便將圖片與其正確的文本描述對齊。 迄今為止,解決此任務的最強大模型依賴于每種模式的獨立網絡(“two-tower”方法)。

2.內容摘要

本文提出了第一個使用MoE組合的大規模多模式架構 LIMoE。 它同時處理圖像和文本,但使用稀疏激活的自然專業專家。 在零樣本圖像分類方面,LIMoE 的性能優于可比較的密集多模態模型和雙塔方法。 最大的 LIMoE 零樣本 ImageNet 準確率達到 84.1%,與更昂貴的 state-of-the-art 模型相當。 稀疏性使 LIMoE 能夠優雅地擴展規模,并學會處理截然不同的輸入,從而解決多面手和專才之間的緊張關系。

在這里插入圖片描述

LIMoE 架構包含許多“專家”,“Router” 決定將哪些 token(圖像或句子的一部分)發送給哪些專家。 經過專家層(灰色)和共享dense layer(棕色)處理后,最終輸出層計算圖像或文本的單個向量表示。

Sparse Mixture-of-Experts Models

Transformers 將數據表示為向量(或標記)序列。 雖然最初是為文本開發的,但它們可以應用于大多數可表示為標記序列的事物,例如圖像、視頻和音頻。 最近的大規模 MoE 模型在 Transformer 架構中添加了專家層(例如自然語言處理中的 gShard 和 ST-MoE,以及用于視覺任務的 Vision MoE)。

標準 Transformer 由許多“塊”組成,每個“塊”包含各種不同的層。 其中一層是前饋網絡 (FFN)。 對于 LIMoE 和上面引用的作品,這個單個 FFN 被包含許多并行 FFN 的專家層取代,每個 FFN 都是一個專家。 給定要處理的 token 序列,簡單的 Router 會學習預測哪些專家應該處理哪些 token 。 每個 token 僅激活少量專家,這意味著雖然模型容量由于擁有如此多的專家而顯著增加,但實際的計算成本是通過稀疏使用它們來控制的。 如果只激活一名專家,該模型的成本大致相當于標準Transformer 模型。

LIMoE 正是這樣做的,每個示例激活一名專家,從而匹配密集基線的計算成本。 不同的是LIMoE Router 可能會看到圖像或文本數據的標記。

當 MoE 模型嘗試將所有 token 發送給同一位專家時,會出現一種獨特的 failure。 通常,這是通過輔助損失和鼓勵平衡專家使用的額外培訓目標來解決的。 處理多種模式與稀疏性相互作用會導致現有輔助損失無法解決的新故障。 為了克服這個問題,本文開發了新的輔助損失(更多詳細信息見論文)并在訓練期間使用 Router 優先級(BPR),這兩項創新產生了穩定且高性能的多模態模型。

在這里插入圖片描述

新的輔助損失(LIMoE aux)Router 優先級(BPR) 穩定并提高了整體性能(左)并提高了路由行為的成功率(中和右)。 成功率低意味著路由器不會使用所有可用的專家,并且由于達到了單個專家的容量而丟棄了許多令牌,這通常表明稀疏模型學習得不好。 LIMoE 引入的組合可確保圖像和文本的高路由成功率,從而顯著提高性能。

Contrastive Learning

在多模態對比學習(Contrastive Learning)中,模型是根據成對的圖像文本數據(例如照片及其標題)進行訓練的。 通常,圖像模型提取圖像的表示,不同的文本模型提取文本的表示。 對比學習目標鼓勵圖像和文本表示對于相同的圖像-文本對接近,而對于不同對的內容則遠離。 這種具有對齊表示的模型可以適應新任務,無需額外的訓練數據(“零樣本”),例如,如果圖像的表示比單詞更接近單詞“dog”的表示,則圖像將被分類為狗 “貓”。 這個想法可以擴展到數千個類別,被稱為零樣本圖像分類。

CLIP 和 ALIGN(都是雙塔模型)擴展了這個過程,在流行的 ImageNet 數據集上實現了 76.2% 和 76.4% 的零樣本分類精度。 本文研究計算圖像和文本表示的單塔模型,發現這會降低 dense 模型的性能,可能是由于負面干擾或容量不足。 然而,計算匹配的 LIMoE 不僅比單塔密集模型有所改進,而且還優于雙塔密集模型。 本文使用與 CLIP 類似的訓練方案訓練了一系列模型。 我們的密集 L/16 模型實現了 73.5% 的零射擊精度,而 LIMoE-L/16 達到了 78.6%,甚至優于 CLIP 更昂貴的兩塔 L/14 模型 (76.2%)。 如下所示,與同等成本的密集模型相比,LIMoE 對稀疏性的使用提供了顯著的性能提升。

在這里插入圖片描述對于給定的計算成本(x 軸),LIMoE 模型(圓圈、實線)明顯優于其密集基線(三角形、虛線)。 該架構指示底層Transformer的大小,從左 (S/32) 到右 (L/16) 增加。 S(小)、B(基本)和 L(大)指的是模型比例。 該數字指的是補丁大小,較小的補丁意味著較大的架構。

在這里插入圖片描述

LiT 和 BASIC 將 dense two-tower model 的零樣本精度分別提高到了 84.5% 和 85.6%。 除了縮放之外,這些方法還利用了專門的預訓練方法,重新利用了已經具有極高質量的圖像模型。 LIMoE-H/14 沒有受益于任何預訓練或特定于模態的組件,但仍然從頭開始實現了可比的 84.1% 零樣本精度訓練。 這些模型的規模比較也很有趣:LiT 和 BASIC 分別是 2.1B 和 3B 參數模型。 LIMoE-H/14 總共有 5.6B 個參數,但通過稀疏性,每個 token 僅應用 675M 個參數,使其更加輕量級。

Experiment Analysis

LIMoE 的動機是稀疏條件計算使通用多模態模型仍然能夠發展擅長理解每種模態所需的專業化。 本文分析了 LIMoE 的專家層并發現了一些有趣的現象。

  • 模式專門化專家的出現。在實驗的訓練設置中,圖像標記比文本標記多得多,因此所有專家都傾向于至少處理一些圖像,但有些專家要么主要處理圖像,要么主要處理文本,或兩者兼而有之。
    在這里插入圖片描述上圖展示了 LIMoE 八位專家的分配; 百分比表示專家處理的圖像標記的數量。 有一到兩名明顯專門研究文本的專家(主要由藍色專家表示),通常有兩到四名圖像專家(主要是紅色),其余的則處于中間位置。

  • 圖像專家之間也存在一些清晰的定性模式。 例如,在大多數 LIMoE 模型中,都有一位專家處理所有包含文本的圖像塊。
    在這里插入圖片描述
    在上面的示例中,有專家處理動物和綠色植物,也有專家處理人類雙手。LIMoE 為每個token選擇一位專家。 在這里展示了 LIMoE-H/14 某一層上哪些圖像token被發送給哪些專家。 盡管沒有接受過這方面的培訓,但能觀察到專門研究植物或輪子等特定主題的語義專家的出現。

3.文章總結

處理許多任務的多模式模型是一條很有前途的前進道路,成功的關鍵因素有兩個:1.規模;2.在利用協同效應的同時避免不同任務和模式之間干擾的能力。 稀疏條件計算是實現這兩點的絕佳方法。 它支持高性能、高效的多面手模型,同時還具有出色完成單個任務所需的專業化能力和靈活性,正如 LIMoE 以更少的計算量實現的可靠性能所證明的那樣。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209963.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209963.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Kubernetes入門筆記 ——(3)理解pod對象

為什么需要pod 最為熟知的一句話:pod是k8s的最小調度單位。剛開始聽到這句話時會想,已經有容器了,k8s為什么還要搞個pod出來?容器和pod是什么關系?容器的本質是進程,而k8s本質上類似操作系統。 熟悉Linux的…

SpringBoot系列之啟動成功后執行業務的方法歸納

SpringBoot系列之啟動成功后執行業務邏輯。在Springboot項目中經常會遇到需要在項目啟動成功后,加一些業務邏輯的,比如緩存的預處理,配置參數的加載等等場景,下面給出一些常有的方法 實驗環境 JDK 1.8SpringBoot 2.2.1Maven 3.2…

python dataframe 列中 字符串( ‘2815512706605‘)過大 轉不了float 用Decimal

from decimal import Decimaldf["accFillSz"] df["accFillSz"].apply(lambda x: Decimal(x)) 2815512706605這個值超出了Python中float類型的最大表示范圍,無法直接轉換為浮點數。 Python中float類型使用IEEE 754標準的64位雙精度浮點數表示,最大值大約為…

歐拉回路歐拉路【詳解】

1.引入 2.概念 3.解決方法 4.例題 5.回顧 1.引入 經典的七橋問題 哥尼斯堡是位于普累格河上的一座城市,它包含兩個島嶼及連接它們的七座橋,如下圖所示。 可否走過這樣的七座橋,而且每橋只走過一次? 你怎樣證明?…

【Linux top命令】

文章目錄 深入了解Linux top命令:實時監控系統性能1. 什么是top命令?2. 使用top命令3. top命令交互操作 深入了解Linux top命令:實時監控系統性能 1. 什么是top命令? top命令是一個用于實時監控系統性能的文本界面工具。它顯示當…

Linux上使用獨立顯卡Tesla T4(測試視頻壓縮)

背景 將視頻處理程序單獨部署至K8S之外,使用獨立GPU顯卡的一臺服務器上。 需事先對GPU性能做簡單測試。 已通過zabbix對Linux進行了系統資源監控。 已通過PrometheusGrafana對顯卡Tesla T4做了性能監控。 逐步補充,稍等 2023年12月6日 操作 查看當前…

鴻蒙Harmony開發初探

一、背景 9月25日華為秋季全場景新品發布會,余承東宣布鴻蒙HarmonyOS NEXT蓄勢待發,不再支持安卓應用。網易有道、同程旅行、美團、國航、阿里等公司先后宣布啟動鴻蒙原生應用開發工作。 二、鴻蒙Next介紹 HarmonyOS是一款面向萬物互聯,全…

[Linux] 基于LAMP架構安裝論壇

一、安裝Discuz論壇 1.1 創建數據庫,并進行授權 mysql -u root -p123CREATE DATABASE bbs; #創建一個數據庫GRANT all ON bbs.* TO bbsuser% IDENTIFIED BY admin123; #把bbs數據庫里面所有表的權限授予給bbsuser,并設置密碼admin123flush privileges; #刷新數據庫…

Java 中的抽象類與接口:深入理解與應用

文章目錄 什么是抽象類?什么是接口?抽象類和接口的使用場景抽象類和接口的區別結論 在 Java 編程語言中,抽象類和接口是兩種重要的機制,用于實現抽象化和多態性。這兩種機制都允許我們定義一種通用的類型,然后通過繼承…

數據結構——棧與棧排序

棧的特性 棧是一種遵循后進先出(LIFO)原則的數據結構。其基本操作包括: push:將元素添加到棧頂。pop:移除棧頂元素。peek:查看棧頂元素,但不移除。 棧排序的原理 棧排序的核心是使用兩個棧&…

[滲透測試學習] Devvortex - HackTheBox

文章目錄 信息搜集解題步驟提交flag 信息搜集 掃描端口 nmap -sV -sC -p- -v --min-rate 1000 10.10.11.242發現80端口有http服務,并且是nginx服務 嘗試訪問web界面,發現跳轉到http://devvortex.htb/無法訪問 我們用vim添加該域名即可 sudo vim /etc/…

J.408之數據結構

J-408之數據結構_北京信息科技大學第十五屆程序設計競賽(同步賽) (nowcoder.com) 思維好題,直接用兩個set存沒出現的數字就好了 // Problem: 408之數據結構 // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/68572/J // Me…

ClickHouse安裝和部署

ClickHouse安裝過程: ClickHouse支持運行在主流64位CPU架構(X86、AArch和PowerPC)的Linux操作 系統之上,可以通過源碼編譯、預編譯壓縮包、Docker鏡像和RPM等多種方法進行安裝。由于篇幅有限,本節著重講解離線RPM的安…

RAW和YUV的區別

RAW是指未經過任何壓縮或處理的原始圖像數據。在攝像頭中,原始圖像數據可以是來自圖像傳感器的未經處理的像素值。這些原始數據通常以一種Bayer模式的形式存在,其中每個像素僅包含一種顏色信息(紅色、綠色或藍色),需要…

【開源】基于Vue和SpringBoot的在線課程教學系統

項目編號: S 014 ,文末獲取源碼。 \color{red}{項目編號:S014,文末獲取源碼。} 項目編號:S014,文末獲取源碼。 目錄 一、摘要1.1 系統介紹1.2 項目錄屏 二、研究內容2.1 課程類型管理模塊2.2 課程管理模塊2…

Redis Bitmaps 數據結構模型位操作

Bitmaps 數據結構模型 Bitmap 本身不是一種數據結構,實際上它就是字符串,但是它可以對字符串的位進行操作。 比如 “abc” 對應的 ASCII 碼分別是 97、98、99。對應的二進制分別是 01100010、01100010、01100011, 如下所示: a b …

HTML5+CSS3+JS小實例:文字依次點擊驗證

實例:文字依次點擊驗證 技術棧:HTML+CSS+JS 效果: 源碼: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=&quo…

十七、FreeRTOS之FreeRTOS事件標志組

本節需要掌握以下內容&#xff1a; 1&#xff0c;事件標志組簡介&#xff08;了解&#xff09; 2&#xff0c;事件標志組相關API函數介紹&#xff08;熟悉&#xff09; 3&#xff0c;事件標志組實驗&#xff08;掌握&#xff09; 4&#xff0c;課堂總結&#xff08;掌握&am…

04_W5500_TCP_Server

上一節我們完成了TCP_Client實驗&#xff0c;這節使用W5500作為服務端與TCP客戶端進行通信。 目錄 1.W5500服務端要做的&#xff1a; 2.代碼分析&#xff1a; 3.測試&#xff1a; 1.W5500服務端要做的&#xff1a; 服務端只需要打開socket&#xff0c;然后監聽端口即可。 2…

基于Spring Boot的水產養殖管理系統

文章目錄 項目介紹主要功能截圖:部分代碼展示設計總結項目獲取方式?? 作者主頁:超級無敵暴龍戰士塔塔開 ?? 簡介:Java領域優質創作者??、 簡歷模板、學習資料、面試題庫【關注我,都給你】 ??文末獲取源碼聯系?? 項目介紹 基于Spring Boot的水產養殖管理系統,jav…