[Token]Token merging for Vision Generation

Token Compression for Vision Domain_Generation

文章目錄

  • Image Generation
    • Token Merging for Fast Stable Diffusion, CVPRW 2023.
    • Token Fusion: Bridging the Gap between Token Pruning and Token Merging, WACV 2024
    • ToDo: Token Downsampling for Efficient Generation of High-Resolution Images, IJCAIw 2024.
    • Turbo: Informativity-Driven Acceleration Plug-In for Vision-Language Models, ECCV 2024.
    • Importance-Based Token Merging for Efficient Image and Video Generation, arXiv 2025.
    • Token Merging for Training-Free Semantic Binding in Text-to-Image Synthesis, NeurIPS 2024.
  • Video Generation
    • Object-Centric Diffusion for Efficient Video Editing, ECCV 2024.

Image Generation

Token Merging for Fast Stable Diffusion, CVPRW 2023.

paper|code

ToMe 能顯著提高圖像生成的速度,同時又不會影響質量。此外,其優點還能與現有的方法(如 xFormers [8])相疊加。借助 ToMe 和 xFormers 的結合,在一臺 4090 顯卡上,僅用 28 秒就生成了這幅 2048×2048 的圖像,比原始模型快了 5.4 秒。
在這里插入圖片描述
通過將 ToMe 應用于Stable Diffusion來進行測試。初始應用下,它可以將擴散速度提高多達 2 倍,并減少 4 倍的內存消耗,但生成的圖像質量卻大打折扣(圖 3)。為了解決這個問題,我們引入了新的token分區技術(圖 5),并進行了多次實驗來決定如何應用 ToMe(表 3)。結果是,我們能夠保持 ToMe 的速度并提高其內存效益,同時生成的圖像與原始模型極其接近。此外,這種速度提升與諸如 xFormers(圖 1)等實現方式相結合。
在這里插入圖片描述

在這里插入圖片描述
對源數據(src)和目標數據(dst)進行分區。ToMe將源數據中的標記合并到目標數據中。(a)默認情況下,ToMe 交替使用源數據和目標數據的標記。在我們的例子中,這會導致目標數據形成規則的列,從而產生不良的輸出(魚的形狀不佳)。(b)我們可以通過使用二維步幅(例如 2 2)對目標數據進行采樣來改進生成過程,但這仍然形成了規則的網格。(c)我們可以通過隨機采樣來引入不規則性,但這可能會導致目標數據標記出現不期望的聚集現象。(d)因此,我們在每個 2x2 區域中隨機選擇一個目標數據標記。

在這里插入圖片描述

在提出的方法中,Attention以及MLP前后均有一次合并以及拆分,這是因為U-Net的核心是編碼器(下采樣路徑)和解碼器(上采樣路徑)之間的跳躍連接。編碼器某一層的輸出特征圖,需要與解碼器對應層的特征圖進行拼接,尺寸必須匹配。
在這里插入圖片描述
Inspiration:根據任務及模型特點 1. 設計新的token分區技術。2. 模型里的哪些block是需要ToMe的?

Token Fusion: Bridging the Gap between Token Pruning and Token Merging, WACV 2024

paper|code
Token Fusion(ToFu),這是一種融合了 Token 剪枝和 Token 合并優點的方法。

  1. 當模型表現出對輸入插值的敏感性時,token剪枝被證明是有利的,而當模型表現出接近對輸入的線性響應時,token合并是有效的。
  2. 解決了平均合并的局限性,它不保留內在特征范數,導致分布偏移。為了緩解這種情況,引入了 MLERP( 球面線性插值)合并,這是 SLERP(SLERP的多線性擴展)技術的一種變體,專門用于合并多個令牌,同時保持常數分布。
  1. 模型能學習A和B,但是學習不了介于A和B之間的對象,這就是對輸入插值敏感,此時應該剪掉其中某個對象。模型對學習范圍內的對象滿足可加性和齊次性,這就是表現出線性響應,此時應該合并其中某些對象。
  2. 首先要清晰范數代表什么,在向量空間中,范數(或模長)||t|| 代表了向量的“長度”或“強度”。在深度學習中,特征向量的范數往往也編碼了重要的信息,比如特征的顯著性。模型在訓練時,看到的都是范數在某個范圍內(比如接近1)的Token。而經過多層平均合并后,深層網絡的Token范數變得越來越小。這就是分布偏移,測試時的數據分布與訓練時不同了。

頂圖:兩個輸入點 x1 (藍色) 和 x2 (紅色)連接它們的彩色直線代表了 x1 和 x2 之間的線性插值 (linear interpolation)。紫色星號代表了 x1 和 x2 的簡單平均值
底層四張圖:分別展示了將頂圖中的整條彩色線作為輸入,送入ViT模型中不同深度(第1到第4層)的MLP模塊(表示為f1到f4)后,得到的輸出是什么樣的。
在這里插入圖片描述
(左)在 ViT 主干網絡內部的令牌融合集成。每個 Transformer 塊都包含一個令牌縮減操作,用符號 R 表示。在該圖示中,R 在多層感知機(MLP)之前被調用。通過二分軟匹配(BSM),每個 R 都會識別出相似度最高的 r 個索引,例如,在此圖示中 r = 2。值得注意的是,層的深度決定了所選擇的合并策略:早期層使用剪枝合并,而后期層則過渡到平均(或 MLERP)合并。這種動態方法加快了 ViT 的運行速度,同時仍能保留完整令牌推理的大部分性能。(右)將兩個特征(x1 和 x2)組合在一起的不同合并方法的可視化。所有方法都可以適應合并更多的特征。
在這里插入圖片描述

ToDo: Token Downsampling for Efficient Generation of High-Resolution Images, IJCAIw 2024.

paper|code

圖像中的相鄰像素往往與它們的鄰近像素具有相似的值。因此,我們采用了降采樣技術來減少Token數量,類似于圖像處理中的網格式采樣。

原始的 ToMe 方法基于在輸入到注意力層之前通過合并相似的向量來減少計算量。這一過程包括計算一個相似性矩陣,其中相似度最高的token會被合并。隨后,解合并過程旨在將合并后的token信息重新分配回原始token位置。
然而,這種方法引入了兩個關鍵的瓶頸:

  1. 計算復雜度:相似性矩陣的計算(O(n2)復雜度)本身就很昂貴,尤其是在整個過程的每個步驟中都需要進行計算的情況下。
  2. 質量下降:ToMe 中固有的合并-解合并循環會導致圖像細節的顯著損失,尤其是在合并比例較高的情況下。

在這里插入圖片描述
具體實現:
Optimized Merging Through Spatial Contiguity. ToMe計算所有token對內容的相似度,認為相似的token應該被合并,復雜度O(n2)。ToDo認為空間上相鄰的令牌就是相似的,使用下采樣計算,復雜度O(n)。
Enhanced Attention Mechanism with Downsampling. 將合并(下采樣)操作直接嵌入到了注意力計算的內部。保持 Q (Queries) 不變,對 K (Keys) 和 V (Values) 進行下采樣:
在這里插入圖片描述
因為 Q 是完整的,所以注意力機制的輸出結果仍然是針對所有原始令牌位置的。每個原始令牌 q 會根據它與下采樣后的 D(K) 的關系,去有選擇地從下采樣后的 D(V) 中提取信息。這個過程是“多對少”的信息聚合,而不是粗暴的“反向合并”,因此自然地將信息聚合到了原始分辨率上,保留了圖像的完整性。

Turbo: Informativity-Driven Acceleration Plug-In for Vision-Language Models, ECCV 2024.

paper|code
設計了一個由信息度指導的即插即用 Turbo 模塊應用于VLM。信息度考慮了兩個關鍵因素:相互冗余和語義價值。具體來說,前者評估順序token之間的數據重復;而后者則根據每個token對整體語義的貢獻來評估。因此,具有高信息度的 Token 具有較少的冗余和更強的語義。
在這里插入圖片描述

  1. 信息度計算。采用了二分圖匹配策略,計算每個token 與其他token的余弦相似度,最大的相似度作為互冗余度R。token的語義價值 A 定義為 [CLS] token 在注意力計算中分配給 xi 的注意力權重。兩者融合得到信息度
    在這里插入圖片描述

  2. 根據下游任務選擇合并策略
    VLMs理解對像素級的精細信息要求不高
    1)Atten之后執行Turbo
    2)計算E并排序
    3)選擇分數最低的 r 個 token將它們合并到它們各自最相似的 token 中
    VLMs生成對像素級的精細信息要求高
    1)在進入 VLM 的每一個 block 之前,Turbo 模塊根據信息度 E 合并冗余的 token,縮短序列長度。
    2)合并后的token進入attn計算
    3)在 block 計算完成之后,Turbo 模塊需要將之前合并的 token “恢復”回來,以保持序列的原始長度和結構,供下一層使用或最終生成圖像。

Importance-Based Token Merging for Efficient Image and Video Generation, arXiv 2025.

paper|code

在合并過程中保留高信息的token——那些對于語義保真度和結構細節至關重要的令牌——會顯著提高樣本質量,產生更精細的細節和更連貫、更逼真的生成結果。提出了一種基于重要性的token合并方法,在計算資源分配中優先考慮最關鍵的token
在這里插入圖片描述

  1. 使用classifier-free guidance計算每塊token的重要性。
  2. 構造important token pool。直接選擇Top-K個最重要token作為合并目標(即“錨點”)存在兩個問題:冗余和不重要的獨立token。重要的token在空間上接近且特征相似,錨點集中產生冗余,不重要的獨立token與其他token無法合并,導致計算浪費。
  3. Token Merging Process. 隨機選擇目標token dst,確定源token src,保留獨立token ind,將其他token都合并到dst中

CFG的本質
最終的噪聲預測 = 無條件的噪聲預測 + w * (有條件的噪聲預測 - 無條件的噪聲預測)

Token Merging for Training-Free Semantic Binding in Text-to-Image Synthesis, NeurIPS 2024.

paper|code

現有的模型難以將文本中的對象與其屬性或相關子對象正確關聯,表現為錯誤的綁定或者屬性的丟失。我們將這一問題稱為語義綁定(Semantic Binding)。比如當提示詞為“一只戴著帽子的狗和一只戴著太陽鏡的貓”時,生成的圖像可能會出現帽子戴在貓頭上,太陽鏡戴在狗頭上的錯誤情況。
在這里插入圖片描述

在這里插入圖片描述

Video Generation

Object-Centric Diffusion for Efficient Video Editing, ECCV 2024.

paper|code

如何在不犧牲視頻編輯質量的前提下,大幅提升擴散模型進行視頻編輯的速度并降低計算成本?

Motivation

  1. 高昂的計算和內存成本:1)擴散反演 (Diffusion Inversion):先將原始視頻“編碼”回噪聲,并保存大量的中間激活和注意力圖,這會占用巨大的存儲空間。2)跨幀注意力 (Cross-frame Attention):在生成時,讓每一幀的注意力計算都參考其他幀,這導致計算量隨著幀數的增加而急劇增長。3)大量的采樣步數 (Sampling Steps):高質量的生成需要很多次的去噪迭代,非常耗時。
  2. 計算資源分配不合理:現有模型對前景和背景一視同仁,將大量的計算資源浪費在了不那么重要的背景區域上。

以物體為中心 (Object-Centric),將計算資源智能地、不均衡地分配給前景和背景,從而實現大幅加速。

Method
Object-Centric Sampling.

  1. 分離前景和背景: 首先利用一個前景蒙版 (foreground mask, m) 將潛在空間的噪聲圖 z_t 分離成前景部分 z_f 和背景部分 z_b。
  2. 差異化采樣: 對前景和背景采用不同的去噪策略。前景區域: 使用正常的、較多的采樣步數進行去噪,以保證編輯質量。背景區域: 使用一個加速因子 φ,大幅減少采樣步數(例如,前景走3步,背景才走1步),因為背景通常不需要編輯或改動很小。
  3. 融合與平滑: 在去噪過程的某個中間時間點 T_γ(例如,總步數的25%處),將前景和背景的潛在表示重新合并,并用剩余的少量步數對整個圖像進行聯合去噪,以平滑兩者邊界處的偽影,保證最終結果的自然過渡。

Object-Centric Token Merging.
加權相似度引導 ToMe:

  1. 檢查待合并的token是否屬于前景
  2. 計算它與目標token的相似度 Sim(x_i, x_j) 時,引入一個權重因子 η。背景相似度計算不變,前景相似度乘η。
  3. spatio-temporal volumes. 同時在空間和時間維度上合并令牌,以最大化地利用視頻中的時序冗余。

在這里插入圖片描述

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

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

相關文章

React封裝過哪些組件-下拉選擇器和彈窗表單

背景(S - Situation):在某活動管理系統中,前端頁面需要支持用戶選擇“要配置的當前活動”,并提供「新增」「編輯」功能,操作內容包括填寫活動名稱、ID、版本號等字段。原始實現邏輯分散、復用性差&#xff…

多租戶架構下的多線程處理實踐指南

在現代 SaaS 系統中,多租戶架構(Multi-Tenant Architecture)已成為主流。然而,隨著系統性能要求的提升和業務復雜度的增加,多線程成為不可避免的技術手段。但在多租戶環境下使用多線程,容易引發數據錯亂、租…

MyBatis插件機制揭秘:從攔截器開發到分頁插件實戰

一、攔截器體系架構解析 1.1 責任鏈模式在MyBatis中的實現 MyBatis通過動態代理技術構建攔截器鏈&#xff0c;每個插件相當于一個切面&#xff1a; // 攔截器鏈構建過程 public class InterceptorChain {private final List<Interceptor> interceptors new ArrayList<…

百度文心一言開源ERNIE-4.5深度測評報告:技術架構解讀與性能對比

目錄一、技術架構解讀1.1、ERNIE 4.5 系列模型概覽1.2、模型架構解讀1.2.1、異構MoE&#xff08;Heterogeneous MoE&#xff09;1.2.2、視覺編碼器&#xff08;Vision Encoder&#xff09;1.2.3、適配器&#xff08;Adapter&#xff09;1.2.4、多模態位置嵌入&#xff08;Multi…

Matplotlib 模塊入門

Python 中有個非常實用的可視化庫 ——Matplotlib。數據可視化是數據分析中不可或缺的環節&#xff0c;而 Matplotlib 作為 Python 的 2D 繪圖庫&#xff0c;能幫助我們生成高質量的圖表&#xff0c;讓數據更直觀、更有說服力。接下來&#xff0c;我們將從 Matplotlib 的概述、…

LeetCode 3169.無需開會的工作日:排序+一次遍歷——不需要正難則反,因為正著根本不難

【LetMeFly】3169.無需開會的工作日&#xff1a;排序一次遍歷——不需要正難則反&#xff0c;因為正著根本不難 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/count-days-without-meetings/ 給你一個正整數 days&#xff0c;表示員工可工作的總天數&#xff08;從第…

VUE3 el-table 主子表 顯示

在Vue 3中&#xff0c;實現主子表&#xff08;主從表&#xff09;的顯示通常涉及到兩個組件&#xff1a;一個是主表&#xff08;Master Table&#xff09;&#xff0c;另一個是子表&#xff08;Detail Table&#xff09;。我們可以使用el-table組件來實現這一功能。這里&#x…

張量數值計算

一.前言前面我們介紹了一下pytorch還有張量的創建&#xff0c;而本章節我們就來介紹一下張量的計算&#xff0c;類型轉換以及操作&#xff0c;這個是十分重要的&#xff0c;我們的學習目標是&#xff1a;掌握張量基本運算、掌握阿達瑪積、點積運算 掌握PyTorch指定運算設備。Py…

部署項目頻繁掉線-----Java 進程在云服務器內存不足被 OOM Killer 頻繁殺死-----如何解決?

一、查詢系統日志grep -i "java" /var/log/messages執行這條命令&#xff0c;檢查系統日志里是否有 Java 進程被 OOM Killer 殺死的記錄。日志中反復出現以下內容&#xff1a;Out of memory: Killed process 3679325 (java) total-vm:2947000kB, anon-rss:406604kB..…

【保姆級教程】基于anji-plus-captcha實現行為驗證碼(滑動拼圖+點選文字),前后端完整代碼奉上!

前言 驗證碼作為Web應用的第一道安全防線&#xff0c;其重要性不言而喻。但你是否還在為以下問題煩惱&#xff1a; 傳統字符驗證碼用戶體驗差&#xff0c;識別率低&#xff1f;驗證碼安全性不足&#xff0c;輕易被爬蟲破解&#xff1f;前后端對接繁瑣&#xff0c;集成效率低&…

HTML-八股

1、DOM和BOM DOM是表示HTML或者XML文檔的標準的對象模型&#xff0c;將文檔中每個組件&#xff08;元素、屬性等&#xff09;都作為一個對象&#xff0c;使用JS來操作這個對象&#xff0c;從而動態改變頁面內容&#xff0c;結合等。 DOM是以樹型結構組織文檔內容&#xff0c;樹…

ADI的EV-21569-SOM核心板和主板轉接卡的鏈接說明

ADI提供給客戶很多DSP的核心板&#xff0c;比如EV-21569-SOM&#xff0c;EV-21593-SOM&#xff0c;EV-SC594-SOM等&#xff0c;非常多&#xff0c;但是沒有底板&#xff0c;光一個核心板怎么用呢&#xff1f;于是我就在想&#xff0c;我的21569評估板就有通用底板&#xff0c;能…

基于 Redisson 實現分布式系統下的接口限流

在高并發場景下&#xff0c;接口限流是保障系統穩定性的重要手段。常見的限流算法有漏桶算法、令牌桶算法等&#xff0c;而單機模式的限流方案在分布式集群環境下往往失效。本文將介紹如何利用 Redisson 結合 Redis 實現分布式環境下的接口限流&#xff0c;確保集群中所有節點的…

ubuntu播放rosbag包(可鼠標交互)

1 前言 眾所周知&#xff0c;ubuntu中播放bag包最主要的工具是rviz&#xff0c;然而rviz有一個無法忍受的缺陷就是不支持鼠標回滾&#xff0c;并且顯示的時間的ros時間&#xff0c;不是世界時間&#xff0c;因此在遇到相關bug時不能與對應的世界時間對應。基于以上&#xff0c…

一文理解緩存的本質:分層架構、原理對比與實戰精粹

&#x1f4d6; 推薦閱讀&#xff1a;《Yocto項目實戰教程:高效定制嵌入式Linux系統》 &#x1f3a5; 更多學習視頻請關注 B 站&#xff1a;嵌入式Jerry 一文理解緩存的本質&#xff1a;分層架構、原理對比與實戰精粹 “緩存讓系統飛起來”——但每一層緩存有何不同&#xff1f;…

【離線數倉項目】——電商域DIM層開發實戰

摘要本文主要介紹了電商域離線數倉項目中DIM層的開發實戰。首先闡述了DIM層的簡介、作用、設計特征、典型維度分類以及交易支付場景下的表示例和客戶維度表設計。接著介紹了DIM層設計規范&#xff0c;包括表結構設計規范、數據處理規范以及常見要求規范。然后詳細講解了DIM層的…

Unreal Engine 自動設置圖像

void UYtGameSettingSubsystem::RunHardwareBenchmark(int32 WorkScale, float CPUMultiplier, float GPUMultiplier) {UGameUserSettings* UserSettings UGameUserSettings::GetGameUserSettings();if (UserSettings){// 運行基準測試&#xff08;異步操作&#xff0c;可能需…

使用Spring Boot和PageHelper實現數據分頁

在Spring Boot項目中&#xff0c;利用PageHelper插件可以輕松實現數據分頁功能。以下是具體的實現步驟和代碼示例。添加依賴在項目的pom.xml文件中添加PageHelper和MyBatis的依賴。<dependency><groupId>com.github.pagehelper</groupId><artifactId>p…

【IT-Infra】從ITIL到CMDB,配置管理,資產管理,物理機與設備管理(含Infra系列說明)

【IT-Infra】從ITIL到CMDB&#xff0c;配置管理&#xff0c;資產管理&#xff0c;物理機與設備管理&#xff08;含Infra系列說明&#xff09; 文章目錄序&#xff1a;Infra系列說明1、ITIL 信息技術基礎架構庫&#xff08;起源&#xff09;2、CMDB 配置管理數據庫&#xff08;I…

vue使用printJS實現批量打印及單個打印 避免空白頁

本文介紹了使用print-js庫實現批量打印功能的實現方法。通過安裝print-js依賴后,創建一個batchPrintAction方法,該方法接收選中行數據,生成包含多個標簽頁的HTML字符串。每個標簽頁以表格形式展示6個數據字段,并設置了80mm50mm的標簽尺寸。方法使用PrintJS進行打印,配置了…