青い文字をクリックしてフォローしてください
フォローしてスターを付ける
決して迷わない
コンピュータビジョン研究所
公的ID|コンピュータビジョン研究所
学習会|参加方法はホームページのQRコードを読み取ってください
論文アドレス: https://arxiv.org/pdf/2305.07027.pdf
プロジェクトコード: https://github.com/microsoft/Cream/tree/main/EfficientViT
コンピュータビジョン研究所コラム
コンピュータビジョン研究所のコラム
ビジョン トランスフォーマーは、その高いモデリング機能により大きな成功を収めています。ただし、その優れたパフォーマンスには膨大な計算コストが伴うため、リアルタイム アプリケーションには適していません。
01
概要
今日の共有で、研究者らは EfficientViT と呼ばれる高速 Vision トランスフォーマー ファミリを提案しました。既存の変換モデルの速度は、メモリ効率の悪い操作、特に MHSA のテンソル再形成と要素ごとの関数によって制限されることが多いことがわかりました。したがって、サンドイッチ レイアウトを使用した新しいビルディング ブロック、つまり、有効な FFN 層間の単一メモリ ボンドを使用する MHSA を設計します。これにより、チャネル通信を強化しながらメモリ効率が向上します。
さらに、アテンション マップはヘッド間で高い類似性を持ち、計算の冗長性につながることがわかりました。この問題に対処するために、カスケード グループ アテンション モジュールが提案されています。これは、アテンション ヘッドにさまざまなフル機能セグメンテーションを供給し、計算コストを節約するだけでなく、アテンションの多様性も向上します。
包括的な実験により、EfficientViT は速度と精度のバランスが取れており、既存の効率的なモデルよりも優れていることが示されています。たとえば、EfficientViT-M5 は、精度で MobileNetV3 Large を 1.9% 上回っており、スループットでは Nvidia V100 GPU と Intel Xeon CPU でそれぞれ 40.4% と 45.2% 上回っています。最近の効率的なモデル MobileViT XXS と比較して、EfficientViT-M2 は 1.8% の優れた精度を達成しながら、GPU/CPU で 5.8 倍/3.7 倍高速に実行し、ONNX 形式への変換で 7.4 倍高速に実行します。
02
バックグラウンド
最近のいくつかの研究では、軽量で効率的な Vision トランスフォーマー モデルを設計しました。残念ながら、これらの方法のほとんどは、速度の間接的な指標であり、モデルの実際の推論スループットを反映しないモデル パラメーターまたはフロップを削減することを目的としています。たとえば、Nvidia V100 GPU では、700M フロップの MobileViT XS は、1220M フロップの DeiT-T よりもはるかに遅く動作します。これらの方法は、より少ないフロップ数またはパラメータで優れたパフォーマンスを実現しますが、その多くは、標準の同型トランスフォーマーまたは階層トランスフォーマー (DeiT や Swin など) と比較して大幅な実時間の高速化を示さず、広く採用されていません。
この問題を解決するために、研究者は Vision トランスをより速く使用する方法を模索し、効率的なトランス アーキテクチャを設計するための原則を見つけようとしています。主流の Vision トランスフォーマーである DeiT および Swin に基づいて、モデル推論速度に影響を与える 3 つの主な要因 (メモリ アクセス、計算の冗長性、パラメーターの使用量など) が系統的に分析されます。特に、変圧器モデルを検出する速度はメモリに制限されることがよくあります。
これらの分析と発見に基づいて、研究者らはEfficientViTという名前のメモリ効率の高いトランスフォーマー モデルの新しいファミリーを提案しました。具体的には、モデルを構築するためにサンドイッチ レイアウトの新しいブロックが設計されました。サンドイッチ レイアウト ブロックは、FFN レイヤー間に単一のメモリ バインド MHSA レイヤーを適用します。これにより、MHSA でのメモリに制約された操作によって生じる時間コストが削減され、より多くの FFN レイヤが適用されて、異なるチャネル間の通信が可能になり、メモリ効率が向上します。次に、計算効率を向上させるための新しいカスケード グループ アテンション (CGA) モジュールが提案されています。その中心となるアイデアは、アテンションヘッドに入力される特徴の多様性を強化することです。すべてのヘッドに同じ機能を使用した以前のセルフアテンションとは異なり、CGA は各ヘッドに異なる入力セグメンテーションを提供し、ヘッド間の出力機能を連結します。このモジュールは、マルチヘッド アテンションにおける計算の冗長性を削減するだけでなく、ネットワークの深さを増やすことでモデルの能力も向上します。
軽量 CNN モデルと ViT モデルのスループットと精度の比較のデモンストレーション
最後に重要なことですが、主要なネットワーク コンポーネント (値の予測など) のチャネル幅を拡大し、重要度の低いコンポーネント (FFN の隠れた次元など) を縮小することによってパラメータが再配分されます。この再割り当てにより、最終的にモデル パラメーターの効率が向上します。
03
モチベーション
ビジョントランスフォーマーのスピードアップ
メモリ効率
メモリ アクセスのオーバーヘッドは、モデルの速度に影響を与える重要な要素です。Transformer の多くの演算子 (頻繁な再形成、要素ごとの加算、正規化など) はメモリ効率が悪く、上に示したように異なるメモリ ユニットにまたがる時間のかかるアクセスが必要ですが、標準のソフトマックス自動アテンション計算を簡素化してこれに対処する方法もあります。まばらな注意や低ランクの近似などの問題がありますが、多くの場合、精度の低下や加速の制限という代償を伴います。
この研究では、研究者らはメモリの非効率な層を削減することでメモリ アクセス コストを節約することに取り組みました。最近の研究では、メモリ効率の悪い操作は主に FFN 層ではなく MHSA 層に存在することが示されています。ただし、既存の ViT のほとんどはこれら 2 つの層を同数使用しているため、最適な効率が達成できない可能性があります。したがって、高速推論を備えた小規模モデルにおける MHSA 層と FFN 層の最適な割り当てを調査しました。具体的には、Swin-T と DeiT-T を、それぞれ 1.25 倍と 1.5 倍高い推論スループットを備えたいくつかの小さなサブネットワークに縮小し、異なる MHSA レイヤ比を持つサブネットワークのパフォーマンスを比較します。
計算効率
MHSA は、入力シーケンスを複数の部分空間 (ヘッド) に埋め込み、アテンション マップを個別に計算します。これは、パフォーマンスの向上に効果的であることが示されています。ただし、アテンション マップは計算コストが高く、調査によると、その一部は重要ではないことが示されています。
計算コストを節約するために、小規模な ViT モデルで冗長な注意を減らす方法を検討します。幅を縮小した Swin-T モデルと DeiT-T モデルは、1.25 倍の推論速度向上でトレーニングされ、各ヘッドと各ブロック内の残りのヘッドの最大コサイン類似度が測定されます。以下の図から、特に最後のブロックで、注目ヘッド間に高い類似性があることが観察されます。
この現象は、多くの頭が同じ完全な特徴の同様の投影を学習し、計算の冗長性を生み出していることを示唆しています。さまざまなパターンを学習するようヘッドに明示的に促すために、DeiT-T のグループ コンボリューションのアイデアに似た直感的なソリューションが適用され、各ヘッドに全機能の一部のみが提供されます。縮小モデルのバリアントは、修正された MHSA を使用してトレーニングされ、グラフ内の保存された類似性を計算します。研究によると、MHSA のようにすべてのヘッドに同じ完全な機能を使用するのではなく、異なるヘッドで異なるチャネル セグメンテーション機能を使用すると、アテンション計算の冗長性を効果的に削減できることがわかっています。
パラメータ効率
一般的な ViT は、Q、K、V 投影の等価幅の使用、ステージ上のヘッドの増加、FFN での拡張率の 4 への設定など、主に NLP トランスフォーマーの設計戦略を継承しています。軽量モデルの場合、これらのコンポーネントの構成を慎重に再設計する必要があります。[ネットワーク プルーニングの価値を再考する] からインスピレーションを得た Taylor 構造プルーニングは、Swin-T および DeiT-T の重要なコンポーネントを自動的に検出し、パラメーター割り当ての理論的根拠を探索するために採用されています。プルーニング手法では、特定のリソース制約の下で重要でないチャネルを削除し、精度を最大限に維持するために最も重要なチャネルを保持します。勾配と重みの積をチャネル重要度として使用し、チャネルを削除するときの損失変動を近似します。
04
新しいフレーム
実験の視覚化
© ジ・エンド
転載の際はこちらの公式アカウントにご連絡の上、許可を得てください。
コンピュータビジョン研究所研究会は皆様のご参加をお待ちしております!
だいたい
コンピュータビジョン研究所
Institute of Computer Vision は主にディープラーニングの分野に携わっており、主に物体検出、物体追跡、画像セグメンテーション、OCR、モデル量子化、モデル展開などの研究方向に取り組んでいます。研究機関は、最新の論文アルゴリズムの新しいフレームワークを毎日共有し、ワンクリックで論文をダウンロードできるようにし、実際の戦闘プロジェクトを共有します。当研究所は主に「技術研究」と「実用化」に重点を置いています。当研究所では、誰もが理論から脱却する現場をリアルに体験し、プログラミングと脳思考を好きになる習慣を育むために、分野別の実践プロセスを共有していきます!