EVA series系列(上)

目錄

一、EVA

1、概述

2、方法

二、EVA-02

1、概述

2、架構

三、EVA-CLIP

1、概述?

2、方法

四、EMU

1、概述

2、架構

3、訓練細節

4、評估?


一、EVA

1、概述

? ? ? ? 為探尋大規模表征學習任務的MIM預訓練任務在ViT基礎上擴展到1B參數量規模,結合10M級別(29.6M)未標注數據時的性能極限,構建高效、可擴展的視覺基礎模型EVA。

? ? ? ? EVA模型經過預訓練后,可以實現數據量減少,計算資源有限,卻可以擴展更高參數量,并超越以往同數據量下的(open data)下的圖像/視頻上的基準任務SOTA。并且顯著提升CLIP模型訓練和優化穩定性。

? ? ? ? 表征學習:讓機器自動學習數據中的本質特征,替代傳統人工設計特征(如SIFT,HOG),通過神經網絡來逐層提取特征,再將預訓練的表征泛化到多種下游任務中,在訓練過程中無需人工標注數據,利用自監督經數據本身學習。

? ? ? ? 掩碼圖像建模(MIM):受NLP中BERT(隨機語言建模)啟發,遷移到視覺領域,隨機遮蓋輸入圖像的部分區域,訓練模型基于上下文預測被遮蓋內容。

2、方法

語義特征標記化的局限性

????????傳統BEiT方法需要將視覺特征(Image)通過tokenizer(就是一個VQ-VAE編碼器)離散成Tokens,并預測這個Tokens。主要目的是訓練一個特征提取器(也就是BEiT encoder),可以用于下游任務,類似ViT可以用與支撐CLIP做跨膜態的檢索,分類等下游任務。

? ? ? ? 具體做法,效仿MAE,將Image切成patches后進行random mask并flatten,經過BEiT encoder得到完整的包含預測圖像信息的tokens,最終經過decoder 重建圖像。

? ? ? ? 但是在EVA論文中提出,這種方法在量化過程中損失細微特征,并且離散空間難以表達視覺概念的連續性。并且做了以下實驗,實驗對比了以往CLIP方法,利用tokenizer進行訓練,利用EVA方法進行訓練在ImageNet上進行圖像分類和ADE20K上進行語義分割下游任務。可以看到不帶tokenizer時,800epochs就可達到85.5%的ImageNet精度,帶tokenizer時需1600輪才能持平,證明了tokenizer方法脫緩了收斂,并且沒有增益。

? ? ? ??

特征蒸餾機制失效?

? ? ? ? 以往的蒸餾機制在長周期訓練下精度增長并不明顯,甚至阻礙了本身CLIP模型在下游任務的的精度增長。

? ? ? ? 傳統方法在表征學習中引入tokenizer的離散化和蒸餾機制,導致限制了表征能力,同時收斂效率下降,難以支撐更大參數級的模型訓練。

具體做法

? ? ? ? EVA方法先通過預訓練MIM算法遮蔽圖像塊預測CLIP特征,學習通用視覺表征。先輸入圖像進行分割得到patches,并隨機遮蔽40%的塊,并通過ViT編碼器得到特征,而預訓練的CLIP作為一個Teacher Model對EVA進行蒸餾,記住最后推理用的是這個EVA部分

? ? ? ? 之后凍結預訓練的主干部分,添加不同任務的特定頭,比如圖像分類添加線性分類頭在ImageNet上微調,實例分割中添加Cascade Mask R-CNN在Objects365等數據集上微調,視頻動作識別中擴展到視頻空間。

? ? ? ? 最后應用于CLIP中,實現EVA-CLIP,再后面繼續介紹。

二、EVA-02

1、概述

? ? ? ? EVA-02基于EVA-01在結構上加了一些小的trick,將主干網絡ViT修改為加trick后的TrV,訓練過程中Teacher Model使用EVA-CLIP(EVA-01+CLIP),并且特征提取部分用了更小的參數量,在下圖也可以看到,在不同的任務上全面碾壓EVA-01。

2、架構

? ? ? ? EVA-02從以往的ViT架構替換成Transform Vision(TrV),主要就是加了一些小的創新,可以看到包括sub- LN,xavier歸一化,SwiGLU,2D RoPE等方法。

? ? ? ? 之后就是做了對比實驗,驗證EVA-02方法相比于以往方法的優勢,其中ViT-B+VQKD-B就是BEiT模型,ViT-B+CLIP-B就是EVA-01,ViT-B+EVA-CLIP是EVA-CLIP,可以看到學生模型參數過于龐大時,也會造成收斂更慢,另外EVA-02也有更大的擴展性(提高數據量仍然可以提點)。

? ? ? ? ?EVA-02在訓練上仍然用EVA-01相同的方式,數據集使用了比EVA-01更多的38M的數據量。并使用EVA-CLIP作為teacher model,尤其是在zero-shot的多任務上,EVA-CLIP可以全面超過CLIP的性能。

三、EVA-CLIP

1、概述?

? ? ? ? 由于CLIP模型隨著數據量增加,訓練時,計算量更大,訓練不穩定,EVA-CLIP在保持CLIP模型參數量的同時,用更低的訓練成本,達到更多訓練數據量的更高的準確率。(其中下圖圓半徑代表訓練數據量大小)。

2、方法

?(1)采用預訓練的EVA模型提取特征并加速收斂

?(2)使用LAMB優化器訓練EVA-CLIP,LAMB優化器專門用于大batchsize而設計,支持自適應分層學習率與超大規模batchsize訓練(131K)。

?(3)隨機mask 50%的image tokens,降低一半復雜度,時間減半,利用Flash Attention加速注意力計算,降低訓練15%耗時。

? ? ? ? 數據上合并LAION-2B與COYO-700M構建Merged-2B數據集,訓練硬件支撐144 x A100(80G)訓練5B模型,太恐怖了)

四、EMU

1、概述

? ? ? ? EMU是一種統一的多模態基礎模型,通過自回歸訓練實現圖像、文本、視頻的跨模態理解,并且可以支持無差別處理單一模態或者多模態的輸入,比如交替出現的圖像和文本。EMU作為多模態的接口,支持T2I,I2T,上下文生成圖像,并且在視頻問答,視覺問答,圖像理解,圖像生成等零樣本/少樣本任務中,一度超越當時主流多模態模型的性能。

? ? ? ? 下圖給出圖像描述,圖像問答,圖像融合,上下文圖像轉文字,視頻問答上的效果。

2、架構

? ? ? ? EMU由四部分組成,視覺編碼器,因果變換器,多模態建模器,視覺解碼器,如下圖。

? ? ? ? 視覺解碼器利用EVA-CLIP(40層ViT)提取圖像幀視頻幀特征,(視頻幀特征擴展本身EVA-CLIP的維數,在EVA-CLIP中已經訓練出)

? ? ? ? 因果變換器目的是將二維的圖像特征信息,轉換為有因果關系的線性序列,并且添加[IMG]為起止標記。因果變換器本質上是一個12層的Transformer的Decoder部分,包含因果自注意力,交叉自注意力,FFN。

? ? ? ? 多模態建模器,以LLaMA-13B為基礎,處理圖文交錯的序列。LLaMA是一個decoder-only Transformer架構。

? ? ? ? 視覺解碼器通過微調Stable Diffusion,將回歸出的視覺嵌入解碼成圖片。

? ? ? ? 而另外兩個分類頭和回歸頭將通過訓練時監督部分進行介紹。

? ? ? ? 訓練的目的就是輸入一組unlabeled的語料庫可以是圖文對,圖文交替文檔,甚至有字幕的視頻,最后使得回歸出來的最接近語料庫。所以在訓練中設計了分類頭和回歸頭,分類頭用于輸出離散文本序列,通過交叉熵來監督。回歸頭用于對視覺tokens經decoder解碼圖像,利用L2損失監督。怎么分出是用分類頭還是回歸頭呢,把所有需要進分類頭的加一個[IMG]。

3、訓練細節

? ? ? ? 數據集

????????圖文對: LAION-2B,LAION-COCO,LAION-2B為LAION-5B的子集,LAION-COCO共600M由BLIP標注

? ? ? ? 視頻文本對:WebVid-10M,并用啟發式規則剔除text中無用信息。

? ? ? ? 圖文交織信息:Multimodal-C4包含7500w圖文文檔,并在每個文檔中抽取1024長度序列

? ? ? ? 視頻文本交織信息:YT-Storyboard-1B包含從Youtube上的18M video,從下圖可以看到,根據時間軸上圖片和文字理解的因果關系,組成了一個視頻文本交織文檔

? ? ? ? 訓練過程? ?

? ? ? ? 訓練過程中凍結Image encoder,LLaMA,以及Decoder中的VAE部分,只保留U-Net為training。并在訓練過程中隨機選擇10%的圖像嵌入進行丟棄,以此來實現classifier-free的工作。

? ? ? ? 指令微調

? ? ? ? 指令微調的目的:通過監督微調使得預訓練模型可以理解復雜指令,適應多模態交互場景(如問答、描述、推理),并解鎖零樣本/少樣本任務能力,克服預訓練任務的局限性。

? ? ? ? 微調過程中,凍結預訓練EMU的所有參數,僅添加LoRA模塊,插入到Transformer的自注意力層中。

? ? ? ? 這里簡要插入一段具體做法的代碼。LoRA的配置和pert模型轉換函數通過peft引入,LoraConfig類用于建立一個LoRA,其中r代表rank,lora_alpha=16代表權重矩陣分解成兩個低秩矩陣,并縮放到以往的1/16,來減少參數量。target_modules指定同時影響哪些投影層添加到LoRA中。而get_peft_model則將預訓練模型轉換為PEFT模型并引入LoRA模塊,這樣不需要全參數的微調整個模塊,參數量只需要增加13M(小于總參數量1%),并且存儲開銷只有52MB。

? ? ? ? 數據上采用數據混合策略,包括語言指令,圖像指令,視頻指令,并使用<System Message>[USER]:<Instruction>[ASSISTANT]:<Answer>的方法進行結構性對話,最后計算<Answer>部分的輸出損失。

????????根據上表對比,Emu-I(經過指令微調)在各項指標中高于Emu。Emu *是用于建立復雜開放任務上的,通過從訓練集中選取兩個同類任務文本,并移除對應圖片,作為前綴輸入到prompt中的方法。Emu*可以從VQA任務中理解,如下。而Emu則只有當前問題,如描述該圖片。

# Emu* 輸入構建偽代碼
text_prompt = """
Q: What is in the image? A: A cat.  # 示例1(無圖)
Q: What color is it? A: White.       # 示例2(無圖)
Q: {當前問題}                       # 待回答問題
"""
input_sequence = [圖片嵌入] + tokenize(text_prompt)  # 圖文交錯序列
output = model.generate(input_sequence)  # 生成答案

4、評估?

? ? ? ? 對EMU的評估建立了多維度的完善評估體系。

任務類型數據集評估指標創新點

圖像理解

COCO, NoCaps

CIDEr↑

零樣本超越Flamingo-9B 33分

視覺問答

VQAv2, OKVQA

準確率↑

引入知識推理鏈(table 10)

視頻理解

MSVDQA, NextQA

WUPS↑

首次支持視頻字幕交錯輸入

文本生成圖像

COCO

FID↓

聯合視覺嵌入回歸

開放場景理解

MM-Vet

多能力綜合得分

6大核心能力分解評估

? ? ? ? 思維鏈(Chain?of Thought,CoT)在EMU中作為一種多模態推理增強技術,通過生成中間推理步驟來提升復雜任務的表現。先對輸入圖像進行文本描述得到"caption",再將描述與問題拼接獲得新問題的答案。"A picture of {caption}.based on the picture,{question} answer:"

參考論文:

[2211.07636] EVA: Exploring the Limits of Masked Visual Representation Learning at Scale
[2303.11331] EVA-02: A Visual Representation for Neon Genesis

[2303.15389] EVA-CLIP: Improved Training Techniques for CLIP at Scale
?

[2309.15807] Emu: Enhancing Image Generation Models Using Photogenic Needles in a Haystack

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

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

相關文章

ABP VNext + EF Core 二級緩存:提升查詢性能

ABP VNext EF Core 二級緩存&#xff1a;提升查詢性能 &#x1f680; &#x1f4da; 目錄ABP VNext EF Core 二級緩存&#xff1a;提升查詢性能 &#x1f680;引言 &#x1f680;一、環境與依賴 &#x1f6e0;?二、集成步驟 ??2.1 安裝 NuGet 包2.2 注冊緩存服務與攔截器2…

3.1k star!推薦一款開源基于AI實現的瀏覽器自動化插件工具 !

大家好&#xff01;今天&#xff0c;我要給大家介紹一款超實用的開源工具——Chrome MCP Server&#xff01;這款工具不僅能大幅提升我們的工作效率&#xff0c;還能讓AI助手&#xff08;如Claude&#xff09;直接操控瀏覽器&#xff0c;實現自動化操作、內容分析等強大功能。 …

關于 OpenAI 的反思

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…

Python爬蟲庫性能與選型對比

Python常用爬蟲庫的優勢對比。這是一個非常實用的問題&#xff0c;很多Python開發者都會面臨選擇合適爬蟲工具的困惑。我根據網絡很多搜索結果&#xff0c;整理出這些信息&#xff0c;為用戶提供一個全面且清晰的對比分析。以下是Python中常用爬蟲庫的核心優勢對比及選型建議&a…

NAT作業

拓撲圖 實驗要求 1.按照圖示配置IP地址&#xff0c;公網地址100.1.1.1/24..較網“說過?,使“掩入到互聯網&#xff0c;私服究的不到公的&#xff0c;使陽接入無三。.私網A通過NAPT&#xff0c;使R1接入到互聯網&#xff0c;私網B通過EASY,IP&#xff0c;使R3接入到互聯網實驗思…

JAVA進階--JVM

一.JVM的概述java語言有跨平臺特點, 寫一次java程序,可以在不同的平臺上運行.(JVM虛擬機的作用)前提條件: 在不同的平臺上安裝不同的虛擬機(虛擬機就是一個翻譯).java--->.class--->不同的虛擬機--->機器碼1.jvm作用:負責將字節碼翻譯為機器碼, 管理運行時內存2.jvm的…

基于Alpine構建MySQL鏡像

文章目錄基于Alpine構建MySQL鏡像一、基礎鏡像選擇與初始化1. 基礎鏡像選型2. 系統初始化二、核心配置構建1. 目錄與權限配置2. 配置文件優化三、安全增強配置1. 密碼策略強化2. 非root運行四、數據持久化與啟動配置1. 數據卷聲明2. 入口腳本優化五、完整Dockerfile示例六、關鍵…

Alamofire 網絡請求全流解析,通俗易懂

Alamofire 網絡請求全流程解析&#xff1a;從發起請求到處理響應 一、請求發起階段&#xff1a;準備你的"快遞" 1. 你告訴Alamofire要發什么"快遞" // 就像告訴快遞員&#xff1a;"我要寄一個包裹給https://api.example.com" AF.request("h…

鏈路聚合技術

鏈路聚合技術 鏈路聚合概述及應用場景 概述 鏈路聚合是把多條物理鏈路聚合在一起&#xff0c;形成一條邏輯鏈路。應用在交換機、路由器、服務器間鏈路&#xff0c;注意了&#xff0c;主機上面不能用鏈路聚合技術分為三層鏈路聚合和二層鏈路聚合鏈路聚合的作用 增加鏈路帶寬提供…

SpringCloud之Zuul

SpringCloud之Zuul 推薦參考&#xff1a;https://www.springcloud.cc/spring-cloud-dalston.html#_router_and_filter_zuul 1. 什么是Zuul Spring Cloud Zuul 是 Netflix 提供的微服務網關核心組件&#xff0c;作為統一的 API 入口&#xff0c;承擔請求路由、過濾、安全控制等…

低精度定時器 (timer_list) 和 高精度定時器 (hrtimer)

Linux 內核提供了兩種主要類型的定時器&#xff0c;以滿足不同的時間精度需求&#xff1a;低精度定時器 (timer_list) 和 高精度定時器 (hrtimer)。它們各有特點和適用場景。下面&#xff0c;我將分別提供它們在內核代碼中的簡化使用示例。1. 低精度定時器 (timer_list) 示例ti…

虛擬機VMware的使用方法

虛擬機VMware的使用方法VMware是全球領先的虛擬化技術提供商&#xff0c;其產品&#xff08;如VMware Workstation Pro&#xff09;允許用戶在單一物理機上運行多個操作系統&#xff08;OS&#xff09;&#xff0c;實現資源高效利用、隔離測試和靈活部署。本文將詳細介紹VMware…

冰島人(map)

#include<bits/stdc.h> using namespace std; struct people { string fat; int sex; }; map<string,people>mp; int pan(string s,string m) { string s1; int i0; while(s!“”) { int y0; s1m; while(s1!“”) { if(s1s&&(i<4||y<4)) return 0; s…

MS Azure Eventhub 發送 AD log 到cribl

1: 首先說一下,Cribl 提供了很多第三方的接口: 先看一下cribl 提供的接口界面: 注意到,上面提供的link 地址是 xxxxx:9093, 不鼠標放到撒謊給你嗎的? 上面,就可以看到了。所以要開的port 一定要把9093 開了,關于全部開的port: What ports do I need to open on the f…

電力名詞通俗解析5:計量系統

## 電網計量系統通俗講解&#xff1a;南網視角下的電力“精算師”想象一下&#xff0c;城市電網如同一個龐大而精密的“能量河流”&#xff0c;千家萬戶、工廠企業都在從中取水&#xff08;用電&#xff09;。如何精確計量每家用了多少“水”&#xff1f;如何確保“河流”輸送中…

關于redis各種類型在不同場景下的使用

Redis 提供了多種數據結構類型,每種類型適用于不同的場景。以下是 Redis 主要數據類型及其典型應用場景的詳細說明: 1. String(字符串) 特點:最簡單的鍵值存儲,值可以是字符串、整數或二進制數據(最大 512MB)。 適用場景: 緩存:存儲用戶會話、網頁內容等(如 SET u…

Vue 3 動態ref問題

目錄 1.問題描述 2.示例代碼 3.原因分析 4.解決方案 5.總結 1.問題描述 在Vue 3項目中&#xff0c;當使用動態ref來引用組件時&#xff0c;刪除組件后發現ref對象中對應的key仍然存在&#xff0c;只是值變為null&#xff0c;而不是完全刪除該key。 在一個可拖拽的卡片列表…

lazyvim恢復gt鍵

好的&#xff01;下面是一個完整的 LazyVim 鍵位配置 patch&#xff0c;將 gt / gT 恢復為 “切換標簽頁&#xff08;tab page&#xff09;” 的原始行為&#xff0c;同時保留原本 buffer 切換功能在其他鍵位上&#xff08;比如 / &#xff09;。 ? ? 恢復 gt 為 Tab 切換&a…

React Native 在 Web 前端跨平臺開發中的優勢與實踐

React Native 在 Web 前端跨平臺開發中的優勢與實踐 對于廣大 Web 前端開發者而言&#xff0c;移動端開發似乎總隔著一層“原生”的壁壘。學習 Swift/Kotlin、熟悉 Xcode/Android Studio 的高昂成本&#xff0c;讓許多人望而卻步。然而&#xff0c;“一次編寫&#xff0c;多端運…

QT控件 使用QtServer系統服務實現搭建Aria2下載后臺服務,并使用Http請求訪問Json-RPC接口調用下載退出

前言 最近了解到qt-solutions這個開源項目,仔細研究一番&#xff0c;發現其中的QtServer項目能在Windows系統中創建系統服務&#xff0c;Linux/Unix系統中能作為守護進程使用&#xff0c;之前一直以為編寫服務需要使用Windows api來實現&#xff0c;沒想到這么簡單。 本來之前就…