ゲート モジュール: このゲートは、入力トークン N から部分 M を選択し、それを計算のために下流層に送信します。 u で示される参照トークン セットをメモリ内に保持します。この参照ベクトルには、最新の更新時の各トークンの値が含まれています。各タイム ステップで、各トークンが対応する基準値と比較され、基準値と大きく異なるトークンが更新されます。
ここで、ゲートへの電流入力を c とします。各タイム ステップで、次のプロセスに従ってゲートのステータスが更新され、その出力が決定されます (下の図 2 を参照)。
1. 合計誤差 e = u − c を計算します。
エラー e に対して選択戦略を使用します。選択戦略は、どの M 個のトークンを更新する必要があるかを示すバイナリ マスク m (トークン インデックス リストに相当) を返します。
上記の戦略によって選択されたトークンを抽出します。これは、図 2 では積 c × m として示されていますが、実際には、c の最初の軸に沿って「収集」操作を実行することによって達成されます。収集されたトークンはここに記録されます
、これはゲートの出力です。
参照トークンを選択したトークンに更新します。図 2 では、このプロセスを次のように説明しています。
; 実際に使用される操作は「散布」です。最初のタイム ステップでは、ゲートはすべてのトークンを更新します (u ← c を初期化し、c~ = c を返します)。
バッファ モジュール: バッファ モジュールは状態テンソルを維持します。
、各入力トークンを追跡します。
のとき、バッファーはトークンを f (c~) から b の対応する位置に分散します。次に、更新された b を出力として返します (以下の図 3 を参照)。
Visual Transformer の計算コストを削減するにはどうすればよいですか?時間的冗長性のアプローチは驚くべきものです
Transformer はもともと自然言語処理タスク用に設計されましたが、現在は視覚タスクに広く使用されています。 Vision Transformer は、さまざまな視覚認識タスクで優れた精度を実現し、画像分類、ビデオ分類、物体検出などのタスクで最先端のパフォーマンスを実現します。
Visual Transformer の主な欠点は、計算コストが高いことです。一般的な畳み込みネットワーク (CNN) の処理には画像あたり数十 GFlops が必要ですが、ビジュアル トランスフォーマーでは多くの場合、1 桁以上の処理が必要となり、画像あたり数百 GFlops に達します。ビデオを処理する場合、データ量が膨大になるため、この問題はさらに深刻になります。計算コストが高いため、リソースが限られているデバイスや遅延要件が厳しいデバイスに Visual Transformer を展開することが困難になり、このテクノロジのアプリケーション シナリオが制限されます。そうでなければ、すでにいくつかの魅力的なアプリケーションが存在することになります。
最近の論文で、ウィスコンシン大学マディソン校の 3 人の研究者、Matthew Dutson、ying Li、および Mohit Gupta は、後続の入力間の時間的冗長性を使用して、ビデオ アプリケーションのビジュアル トランスフォーマーのコストを削減できることを最初に提案しました。また、Eventful Transformer の構築に使用される PyTorch モジュールを含むモデル コードもリリースしました。
時間的冗長性: まず、ビデオ シーケンスをフレームごと、またはビデオ クリップごとに処理できるビジュアル Transformer があると仮定します。この Transformer は、単純なフレームごとの処理モデル (オブジェクト検出器など) または時空間モデルの中間ステップ (ViViT の分解モデルの最初のステップなど) である場合があります。 1 つの入力が完全なシーケンスである言語処理 Transformer とは異なり、研究者は、時間の経過とともに複数の異なる入力 (フレームまたはビデオ クリップ) を Transformer に提供します。
自然ビデオには、大幅な時間的冗長性が含まれています。つまり、後続のフレーム間の差異は小さいです。それにもかかわらず、Transformers を含むディープ ネットワークは通常、各フレームを「最初から」計算します。この方法では、以前の推論によって得られた潜在的に関連する情報が破棄されるため、非常に無駄が生じます。したがって、これら 3 人の研究者は、冗長シーケンスの処理効率を向上させるために、前の計算ステップの中間計算結果を再利用できないか、と考えました。
適応推論: ビジュアル Transformer やディープ ネットワーク一般の場合、推論のコストはアーキテクチャによって決まることがよくあります。ただし、実際のアプリケーションでは、競合するプロセスや電力の変化などにより、利用可能なリソースが時間の経過とともに変化する可能性があります。その結果、実行時にモデルの計算コストを変更する必要が生じる場合があります。この新たな取り組みにおいて研究者らが設定した主な設計目標の 1 つは適応性であり、彼らのアプローチにより計算コストのリアルタイム制御が可能になりました。以下の図 1 (下) は、ビデオ処理中に計算量を変更する例を示しています。
この方法は、既製のモデル (通常は再トレーニングなし) で使用でき、多くのビデオ処理タスクと互換性があります。研究者らは実験的なデモンストレーションも実施し、その結果、Eventful Transformer を既存の最良のモデルで使用でき、元の精度を維持しながら計算コストを大幅に削減できることがわかりました。
波乱万丈のトランスフォーマー
この研究の目標は、ビデオ認識用の Vision Transformer を高速化することです。このシナリオでは、ビジュアル Transformer はビデオ フレームまたはビデオ クリップを繰り返し処理する必要があり、具体的なタスクにはビデオ ターゲットの検出とビデオ アクションの認識が含まれます。ここで提案される重要なアイデアは、時間的な冗長性を活用すること、つまり、前のタイム ステップの計算結果を再利用することです。以下では、Transformer モジュールを変更して時間の冗長性を検知できるようにする方法を詳細に説明します。
トークン ゲート: 冗長性の検出
このセクションでは、研究者によって提案された 2 つの新しいモジュール、トークン ゲートとトークン バッファーを紹介します。これらのモジュールを使用すると、モデルは、最後の更新以降に大幅に変更されたトークンを識別して更新できます。
ゲート モジュール: このゲートは、入力トークン N から部分 M を選択し、それを計算のために下流層に送信します。 u で示される参照トークン セットをメモリ内に保持します。この参照ベクトルには、最新の更新時の各トークンの値が含まれています。各タイム ステップで、各トークンが対応する基準値と比較され、基準値と大きく異なるトークンが更新されます。
ここで、ゲートへの電流入力を c とします。各タイム ステップで、次のプロセスに従ってゲートのステータスが更新され、その出力が決定されます (下の図 2 を参照)。
エラー e に対して選択戦略を使用します。選択戦略は、どの M 個のトークンを更新する必要があるかを示すバイナリ マスク m (トークン インデックス リストに相当) を返します。
上記の戦略によって選択されたトークンを抽出します。これは、図 2 では積 c × m として示されていますが、実際には、c の最初の軸に沿って「収集」操作を実行することによって達成されます。収集されたトークンはここに記録されます
バッファ モジュール: バッファ モジュールは状態テンソルを維持します。
冗長性を意識した Transformer を構築する
上記の時間の冗長性を利用するために、研究者らは、Transformer モジュールの修正スキームを提案しました。以下の図 4 は、Eventful Transformer モジュールの設計を示しています。この方法では、クエリ キー値とアテンション値の乗算だけでなく、個々のトークン (MLP など) の操作も高速化できます。
具体的には、研究者らは各トークンに対する連続的な一連の操作 (W_qkv 変換、W_p 変換、MLP を含む) に 1 対のゲート バッファを使用しました。 2 つの追加オペランドのトークンが適切に配置されるようにするために、スキップ接続の前にバッファーも追加されていることに注意してください。
各トークンの操作のコストはトークンの数に比例します。ゲートはこの数を N から M に減らすことができ、これにより各トークンの下流操作の計算コストも N/M 倍削減されます。
クエリ キーと値の積: 次に、クエリ キーと値の積 B = qk^T を見てみましょう。
以下の図 5 は、クエリ キーと値のプロダクト B の要素のサブセットをまばらに更新する方法を示しています。
注目価値製品: 研究者は増分 Δ に基づいた更新戦略を提案しました。
以下の図 6 は、3 つの増分項を効率的に計算するために新しく提案された方法を示しています。
トークン選択戦略
Eventful Transformer の重要な設計は、トークン選択戦略です。ゲート エラー テンソル e が与えられた場合、このようなポリシーの目標は、更新する必要があるトークンを示すマスク m を生成することです。具体的な戦略には次のようなものがあります。
Top-r 戦略: この戦略は、最大の誤差 e を持つ r 個のトークンを選択します (ここでは L2 ノルムが使用されます)。
しきい値戦略: この戦略では、誤差のノルム e がしきい値 h を超えるすべてのトークンが選択されます。
その他の戦略: より複雑で洗練されたトークン選択戦略により、より優れた精度とコストのトレードオフを実現できます。たとえば、軽量ポリシー ネットワークを使用して戦略を学習できます。ただし、バイナリ マスク m は一般に微分不可能であるため、ポリシーの意思決定メカニズムをトレーニングするのは困難な場合があります。また、重要度スコアを選択の参考情報として利用するという考え方もある。しかし、これらのアイデアは今後の研究を待っています。
## 実験
研究者らは、ビデオオブジェクト検出とビデオアクション認識のタスクに関して新しく提案された方法を実験的に評価しました。
下の図 7 は、ビデオターゲット検出の実験結果を示しています。正の軸は計算量の節約率、負の軸は新しい方法の mAP50 スコアの相対的な減少です。新しい方法では、精度を少し犠牲にして、大幅な計算量の節約が達成されることがわかります。