<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      CVPR 2025 | 5%參數反超全量微調!清華、國科大等發布視覺微調漲點神器

      https://mp.weixin.qq.com/s/sAwBSHI1Blrq9z9zI20PIQ

      CVPR 2025 | 5%參數反超全量微調!清華、國科大等發布視覺微調漲點神器

      CV開發者都愛看的 極市平臺
       
       2025年04月25日 22:01 廣東
      ↑ 點擊藍字 關注極市平臺圖片來源丨Paperweekly編輯丨極市平臺

      極市導讀

       

      本文介紹了清華、國科大等機構聯合發布的 Mona視覺適配器微調方法。該方法通過多認知視覺濾波器和輸入分布優化,僅調整 5% 的骨干網絡參數,便在多個視覺任務中超越全參數微調效果,顯著降低了適配和存儲成本,為視覺模型的高效微調提供了新思路。 >>加入極市CV技術交流群,走在計算機視覺的最前沿

      Mona(Multi-cognitive Visual Adapter)是一種新型視覺適配器微調方法,旨在打破傳統全參數微調(full fine-tuning)在視覺識別任務中的性能瓶頸。

      Mona 方法通過引入多認知視覺濾波器和優化輸入分布,僅調整 5% 的骨干網絡參數,就能在實例分割、目標檢測、旋轉目標檢測等多個經典視覺任務中超越全參數微調的效果,顯著降低了適配和存儲成本,為視覺模型的高效微調提供了新的思路。

      圖片

      論文題目:5%>100%: Breaking Performance Shackles of Full Fine-Tuning on Visual Recognition Tasks

      論文地址:https://arxiv.org/pdf/2408.08345

      代碼地址:https://github.com/Leiyi-Hu/mona

      作者單位:清華、國科大、上海交大、阿里巴巴

      收錄情況:已被 CVPR 2025 接受

      01 論文亮點

      隨著現代深度學習的發展,訓練數據和模型規模的增加成為模型性能的重要增長點,但隨之而來的是模型的垂直應用和微調成本和難度的提升。

      傳統全量微調需要更新模型所有參數(如 GPT-3 的 1750 億參數 ),計算成本極高。即使以早期的 BERT 為例,單卡訓練 100 萬數據也需 5-7 小時,對硬件資源和時間的要求限制了研究復現和實際應用。

      同時,隨著模型參數從億級邁向萬億級,直接微調不僅成本高昂,還可能因過擬合導致性能下降。此外,多任務場景下需為每個任務保存完整模型副本,存儲成本劇增加。

      參數高效微調(Parameter Efficient Fine-Tuning,PEFT)通過保持預訓練模型參數凍結,僅調整少量參數就可實現大模型在垂直應用領域的高效適配。但目前大多數 PEFT 方法,尤其是視覺領域的 PEFT 方法的性能相較于全量微調而言還存在劣勢。

      Mona 通過更適合視覺信號處理的設計以及對預訓練特征分布的動態優化在小于 5% 的參數成本下首次突破了全量微調的性能枷鎖,為視覺微調提供了新的解決方案。

      本文的核心在于強調:

      1. PEFT 對于視覺模型性能上限的提升(尤其是參數量較大的模型);
      2. 視覺模型在全微調(尤其是少樣本情況)會存在嚴重的過擬合問題;
      3. 1LVM+nAdapter 模式在實際業務中潛在的性能和效率優勢。

      對于具體業務來說,有些用到 LVM 或者多模態大模型(如 OCR 等任務)的任務會對視覺編碼器部分進行固定或僅微調 linear 層來適應下游數據。Mona 的存在理論上可以進一步提升 LVM、多模態大模型對視覺特征的理解和重構,尤其是對于一些少樣本 post-training 問題。

      02 方法

      Mona 包含降維、多認知視覺濾波器、激活函數和升維等模塊,并在適配器內部加入了跳躍連接(Skip-Connections),以增強模型的適應能力。這種結構設計使得 Mona 能夠在保持高效的同時,顯著提升視覺任務的性能。

      圖片

      2.1 多認知視覺濾波器

      Mona 方法的核心在于引入了多認知視覺濾波器,這些濾波器通過深度可分離卷積(Depth-Wise Convolution)和多尺度卷積核(3×3、5×5、7×7)來增強適配器對視覺信號的處理能力。

      與傳統的線性適配器不同,Mona 專門針對視覺任務設計,能夠更好地處理二維視覺特征,通過多尺度特征融合提升模型對視覺信息的理解能力。

      2.2 輸入優化

      Mona 在適配器的前端加入了分布適配層(Scaled LayerNorm),用于調整輸入特征的分布。這種設計能夠優化從固定層傳遞過來的特征分布,使其更適合適配器的處理,從而提高微調效率。

      03 實驗結果

      3.1 實驗設置

      論文在多個代表性視覺任務上進行了實驗,包括:

      • 實例分割(COCO)

      • 語義分割(ADE20K)

      • 目標檢測(Pascal VOC)

      • 旋轉目標檢測(DOTA/STAR)

      • 圖像分類(Flowers102、Oxford-IIIT Pet、VOC2007)

      實驗使用了 SwinTransformer 系列作為骨干網絡,并基于 ImageNet-22k 數據集進行預訓練。

      圖片

      3.2 性能對比

      圖片
      • 在 COCO 數據集上,Mona 方法相比全參數微調提升了 1% 的 mAP,僅調整了不到 5% 的參數。
      圖片
      • 在 ADE20K 數據集上,Mona 提升了 0.18% 的 mIoU,表現出色。
      • 在 Pascal VOC 數據集上,Mona 提升了 3.6% 的 APbox,顯示出顯著的性能提升。
      圖片
      • 在旋轉目標檢測任務(DOTA/STAR)中,Mona 在多個框架下均優于其他方法。
      圖片
      • 在圖像分類任務上,Mona 也有不俗的性能。

      3.3 收斂性分析

      圖片

      在所有方法中, Mona 收斂速度更快,并且明顯超過了全微調。

      即插即用模塊

      import torch.nn as nn  
      import torch.nn.functional as F  

      # ---------------------------- Mona 模塊 ----------------------------  

      INNER_DIM = 64  

      class MonaOp(nn.Module):  
          def __init__(self, in_features):  
              super().__init__()  
              self.conv1 = nn.Conv2d(in_features, in_features, kernel_size=3, padding=3 // 2, groups=in_features)  
              self.conv2 = nn.Conv2d(in_features, in_features, kernel_size=5, padding=5 // 2, groups=in_features)  
              self.conv3 = nn.Conv2d(in_features, in_features, kernel_size=7, padding=7 // 2, groups=in_features)  

              self.projector = nn.Conv2d(in_features, in_features, kernel_size=1, )  

          def forward(self, x):  
              identity = x  
              conv1_x = self.conv1(x)  
              conv2_x = self.conv2(x)  
              conv3_x = self.conv3(x)  

              x = (conv1_x + conv2_x + conv3_x) / 3.0 + identity  

              identity = x  

              x = self.projector(x)  

      return identity + x  

      class Mona(BaseModule):  
          def __init__(self,  
                       in_dim,  
                       factor=4):  
              super().__init__()  

              self.project1 = nn.Linear(in_dim, INNER_DIM)  
              self.nonlinear = F.gelu  
              self.project2 = nn.Linear(INNER_DIM, in_dim)  

              self.dropout = nn.Dropout(p=0.1)  

              self.adapter_conv = MonaOp(INNER_DIM)  

              self.norm = nn.LayerNorm(in_dim)  
              self.gamma = nn.Parameter(torch.ones(in_dim) * 1e-6)  
              self.gammax = nn.Parameter(torch.ones(in_dim))  

          def forward(self, x, hw_shapes=None):  
              identity = x  

              x = self.norm(x) * self.gamma + x * self.gammax  

              project1 = self.project1(x)  

              b, n, c = project1.shape  
              h, w = hw_shapes  
              project1 = project1.reshape(b, h, w, c).permute(0, 3, 1, 2)  
              project1 = self.adapter_conv(project1)  
              project1 = project1.permute(0, 2, 3, 1).reshape(b, n, c)  

              nonlinear = self.nonlinear(project1)  
              nonlinear = self.dropout(nonlinear)  
              project2 = self.project2(nonlinear)  

      return identity + project2    
      # ---------------------------- 插入模式 -----------------------------  
      # 此處省略部分 Swin 組件實現,僅提供 Mona 插入模式。  
      class SwinBlock(BaseModule):  
      """"
          Args:  
              embed_dims (int): The feature dimension.  
              num_heads (int): Parallel attention heads.  
              feedforward_channels (int): The hidden dimension for FFNs.  
              window_size (int, optional): The local window scale. Default: 7.  
      shift (bool, optional): whether to shift window or not. Default False.  
              qkv_bias (bool, optional): enable bias for qkv if True. Default: True.  
              qk_scale (float | None, optional): Override default qk scale of  
                  head_dim ** -0.5 ifset. Default: None.  
              drop_rate (float, optional): Dropout rate. Default: 0.  
              attn_drop_rate (float, optional): Attention dropout rate. Default: 0.  
              drop_path_rate (float, optional): Stochastic depth rate. Default: 0.  
              act_cfg (dict, optional): The config dict of activation function.  
                  Default: dict(type='GELU').  
              norm_cfg (dict, optional): The config dict of normalization.  
                  Default: dict(type='LN').  
              with_cp (bool, optional): Use checkpoint or not. Using checkpoint  
                  will save some memory while slowing down the training speed.  
                  Default: False.  
              init_cfg (dict | list | None, optional): The init config.  
                  Default: None.  
      """  

          def __init__(self,  
                       embed_dims,  
                       num_heads,  
                       feedforward_channels,  
                       window_size=7,  
                       shift=False,  
                       qkv_bias=True,  
                       qk_scale=None,  
                       drop_rate=0.,  
                       attn_drop_rate=0.,  
                       drop_path_rate=0.,  
                       act_cfg=dict(type='GELU'),  
                       norm_cfg=dict(type='LN'),  
                       with_cp=False,  
                       init_cfg=None):  

              super(SwinBlock, self).__init__()  

              self.init_cfg = init_cfg  
              self.with_cp = with_cp  

              self.norm1 = build_norm_layer(norm_cfg, embed_dims)[1]  
              self.attn = ShiftWindowMSA(  
                  embed_dims=embed_dims,  
                  num_heads=num_heads,  
                  window_size=window_size,  
                  shift_size=window_size // 2 if shift else 0,  
                  qkv_bias=qkv_bias,  
                  qk_scale=qk_scale,  
                  attn_drop_rate=attn_drop_rate,  
                  proj_drop_rate=drop_rate,  
                  dropout_layer=dict(type='DropPath', drop_prob=drop_path_rate),  
                  init_cfg=None)  

              self.norm2 = build_norm_layer(norm_cfg, embed_dims)[1]  
              self.ffn = FFN(  
                  embed_dims=embed_dims,  
                  feedforward_channels=feedforward_channels,  
                  num_fcs=2,  
                  ffn_drop=drop_rate,  
                  dropout_layer=dict(type='DropPath', drop_prob=drop_path_rate),  
                  act_cfg=act_cfg,  
                  add_identity=True,  
                  init_cfg=None)  

              self.mona1 = Mona(embed_dims, 8)  
              self.mona2 = Mona(embed_dims, 8)  

          def forward(self, x, hw_shape):  

              def _inner_forward(x):  
                  identity = x  
                  x = self.norm1(x)  
                  x = self.attn(x, hw_shape)  

                  x = x + identity  

                  x = self.mona1(x, hw_shape)  

                  identity = x  
                  x = self.norm2(x)  
                  x = self.ffn(x, identity=identity)  

                  x = self.mona2(x, hw_shape)  

                  return x  

              if self.with_cp and x.requires_grad:  
                  x = cp.checkpoint(_inner_forward, x)  
              else:  
                  x = _inner_forward(x)  

              return x  

      05結論

      Mona 方法通過多認知視覺濾波器和輸入優化,顯著提升了視覺任務的微調性能,同時大幅減少了參數調整量。這一方法不僅在多個視覺任務中超越了傳統全參數微調,還為未來視覺模型的高效微調提供了新的方向。

      預印版期間,Mona 已被復旦、中科大、南大、武大等多家單位的工作視為 SOTA 方法運用在醫學、遙感等領域。Mona 的開源代碼將進一步推動這一領域的研究和應用。

      06 引用格式

      @misc{yin20245100breakingperformanceshackles,  
            title={5%>100%: Breaking Performance Shackles of Full Fine-Tuning on Visual Recognition Tasks},   
            author={Dongshuo Yin and Leiyi Hu and Bin Li and Youqun Zhang and Xue Yang},  
            year={2024},  
            eprint={2408.08345},  
            archivePrefix={arXiv},  
            primaryClass={cs.CV},  
            url={https://arxiv.org/abs/2408.08345},   
      }  

       

      圖片

      公眾號后臺回復“數據集”獲取100+深度學習各方向資源整理

      極市平臺
      為計算機視覺開發者提供全流程算法開發訓練平臺,以及大咖技術分享、社區交流、競賽實踐等豐富的內容與服務。
      980篇原創內容

      極市干貨

      技術專欄:多模態大模型超詳細解讀專欄搞懂Tranformer系列大視覺模型 (LVM) 解讀擴散模型系列極市直播技術綜述:小目標檢測那點事大模型面試八股含答案萬字長文!人體姿態估計(HPE)入門教程
      圖片

       

      點擊閱讀原文進入CV社區

      收獲更多技術干貨

       
      閱讀原文
      閱讀 1903
       
      ?
       
      寫留言
      posted @ 2025-04-27 13:45  水木清揚  閱讀(108)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久热99热这里只有精品| 久久精品国产精品亚洲精品| 亚洲欧美人成人综合在线播放 | 成人av午夜在线观看| 欧美一区二区三区欧美日韩亚洲 | 污网站大全免费| 日韩一区二区三区一级片| 游戏| 国内精品无码一区二区三区| 综合色一色综合久久网| 精品日韩亚洲AV无码| av一区二区中文字幕| 国产女人在线视频| 制服丝袜人妻有码无码中文字幕| 靖安县| 亚洲av无码精品蜜桃| 亚洲精品久久麻豆蜜桃 | 91精品人妻中文字幕色| 乱码中文字幕| 天天躁夜夜躁天干天干2020| 阆中市| 国产无人区码一区二区| 999精品全免费观看视频| 国产精品天干天干综合网| 啊灬啊灬啊灬快灬高潮了电影片段| 久久综合五月丁香六月丁香| 精品国产成人亚洲午夜福利| 少妇人妻偷人免费观看| 精品一区二区成人精品| 久热99热这里只有精品| 久久精品人成免费| 国产成人午夜精品影院| 国产一区二区不卡91| 日韩精品一区二区都可以| 午夜福利在线观看6080| 国产青榴视频在线观看| 亚洲国产婷婷综合在线精品| 丰满熟妇人妻中文字幕| 中文字幕亚洲精品第一页| 欧美国产日韩久久mv| 国产一级三级三级在线视|