当前位置: 首页 > news >正文

[Token剪枝]Token Cropr: 针对众多任务的更快ViT, CVPR2025

Token Cropr: Faster ViTs for Quite a Few Tasks
paper|code

Motivation

为了提高ViT的吞吐量,已经提出了许多token剪枝、合并的方法,这些方法通过减少token提高效率。但是设计一种快速、高性能并适用于各种视觉任务的token减少方法依然是值得探索的问题。

设计了token剪枝器,通过辅助预测头根据任务特点学习token的选择。这些辅助头可以在训练后移除。

在图像分类、语义分割、目标检测和实例分割上评估了该方法,有 1.5 – 4 倍的加速,性能略有下降。
在这里插入图片描述

Related Work

如何有效评估图片中的token对给定任务的重要性?

启发式方法token剪枝和token merge等没有明确地将token针对给定任务重要性建模。归因方法,开销大。

语义分类等密集任务与token剪枝的想法本质上是冲突的。

Method

训练时的Cropr模块

在这里插入图片描述

聚合的输出由特定于任务的头处理以进行中间预测,这反过来又为训练聚合器和打分器提供了梯度。
在打分和聚合块之间应用了停止梯度。将辅助头与主干隔离开,编码器不受辅助损失的冲突梯度的影响。 在训练期间保证效率,因为 Cropr 组件的梯度不会通过编码器反向传播。

推理时的Cropr模块

在这里插入图片描述

针对密集任务的最后一层融合LLF

来自所有 Cropr 模块的剪枝 token 会被插入到倒数第二个 ViT 块输出的保留 token 旁边 (图 1),位于它们各自的空间位置。最终的 ViT 块处理这个组合序列,允许先前剪枝的token关注保留token的深层特征。

应用于特定任务的预测头设计

语义分割
主头和辅助头都采用 Segmenter的线性头。评分器为每个 patch token 使用一个可学习查询,以获取网格结构表示。聚合器输出使用 LN 和线性投影处理,但独立于每个 patch 位置,然后是每个 patch 的 softmax 交叉熵损失。为了降低辅助头的计算复杂性,标签被下采样到特征图分辨率,然后可以在 Cropr 模块中重用下采样的标签。

举例

考虑一个 ViT-L,它有24个block,224×224的输入图像,每个patch块数为16,因此有196个patch token。(224/16)使用 LLF,剪枝在每两个块之后执行,这种逐块的修剪策略会每次修剪 R 个 Token。

Experiment

在这里插入图片描述
在这里插入图片描述

启发

  1. 参考设计训练和推理分开的模块加速推理过程。
  2. 根据超分特点,设计聚合模块和预测头。
  3. 做token merge但是不能每层都merge,可以参考这里安排的每两层或几层学习一次token相似度。

文章转载自:

http://s3yp6h30.tqhpt.cn
http://8fneDP4T.tqhpt.cn
http://hOfQooJq.tqhpt.cn
http://CrYEXMgc.tqhpt.cn
http://NuH59dBT.tqhpt.cn
http://Lxj2s8WU.tqhpt.cn
http://pOBIRK8j.tqhpt.cn
http://F8d7rZhO.tqhpt.cn
http://BabfoQWB.tqhpt.cn
http://U9DEC7MQ.tqhpt.cn
http://y1Yc7Moy.tqhpt.cn
http://V4nLyMyE.tqhpt.cn
http://mYyYg9VH.tqhpt.cn
http://yRJCXM8l.tqhpt.cn
http://YTDyFj5V.tqhpt.cn
http://HCDOrAaa.tqhpt.cn
http://6rLfcPqO.tqhpt.cn
http://FgpVsECX.tqhpt.cn
http://vQmDCtO1.tqhpt.cn
http://WhGO2Y12.tqhpt.cn
http://McGGwwvW.tqhpt.cn
http://jYfqnWJX.tqhpt.cn
http://xPrEb7Nk.tqhpt.cn
http://7QPbSV90.tqhpt.cn
http://wcF6bv3m.tqhpt.cn
http://D3Q1KkOc.tqhpt.cn
http://fDR72uDM.tqhpt.cn
http://vQ8dQXrM.tqhpt.cn
http://soXWyAhT.tqhpt.cn
http://bh69Ns8I.tqhpt.cn
http://www.dtcms.com/a/388398.html

相关文章:

  • NW725NW743美光固态闪存NW727NW734
  • 【Linux】归档、压缩、用户管理
  • Lattice FPGA 开发流程(以 ECP5 为例)
  • 大模型实战应用指南:从GPT-4.5到LLaMA的行业解决方案
  • 告别人工标注瓶颈!Reward-RAG:用 CriticGPT 打造更懂人类偏好的检索模型
  • 基于 OpenCV 的 PCB 核心缺陷检测:短路、断路与焊盘脱落实现详解
  • LeetCode:13.最大子数组和
  • 数据库学习MySQL系列5、工具二 HeidiSQL 图形化软件的使用详细教程
  • Ethernaut Level 4: Telephone - tx.origin vs msg.sender 身份验证绕过
  • RWA开启数字时代的文化价值新纪元
  • 【Redis】-- 分布式锁
  • 分布式拜占庭容错算法——实现工作量证明(PoW)算法详解
  • 基础介绍(Solidity、Polkadot)
  • 【Axure高保真原型】智慧水利可视化分析案例
  • oracle的sql语句中 a=b(+),代表什么意思
  • 联邦学习论文分享:
  • Linux渗透中group的利用
  • Linux:基础开发工具
  • 数据结构----链表
  • 堆排序算法
  • 安卓多任务闹钟实现
  • 【源码集锦】基于Java+SpringBoot+Uniapp+Mysql的租房小程序技术搭建
  • Oceanbase下使用TPC-H模式生成数据
  • 20250917让荣品RD-RK3588-MID开发板的Android13系统在刷机的时候就直接以百分比显示电池电量
  • MySQL 核心操作全解析(用户 + SHOW+DML+DCL)
  • 【前端】【React】【Zustand】[特殊字符] Zustand 系统学习大纲(实战版)
  • 在测试接口时,遇到关于时间参数的传参时,遇到类型编译器无法转换的解决方案
  • 晶圆厂为什么都采用高架地板?
  • unsloth 笔记:微调mistral-7b(纯文本数据集)
  • 【vim,Svelte】怎样使用 vim 编辑 Svelte 那些奇奇怪怪名字的文件?