ホームページ  >  記事  >  テクノロジー周辺機器  >  ViT モデルを加速する新しいアイデア! Meta は、プルーニングではなくマージに依存するトークン マージングを開始します。

ViT モデルを加速する新しいアイデア! Meta は、プルーニングではなくマージに依存するトークン マージングを開始します。

王林
王林転載
2023-04-12 10:58:021109ブラウズ

ビジュアル トランスフォーマー (ViT) は 2 年前に注目を集め、コンピューター ビジョン研究の中核コンポーネントになりました。

自然言語処理の分野の Transformer モデルをコンピューター ビジョンの分野に移行することに成功しました。それ以来、コンピューター ビジョンの分野の進歩は加速しました。

Vanilla ViT は、コストとパフォーマンスの点で優れているにもかかわらず、依然として多くの利点を持っています。

これらは単純な行列の乗算で構成されているため、生の演算数が示すよりも高速になります。

さらに、MAE (Masked Autoencoder) などの強力な自己教師付き事前トレーニング手法もサポートしており、最先端の結果を生成できると同時に、早速トレーニング。

#データについて何の仮定もしないため、ほとんど変更せずに画像、音声、テキストなどの多くのモードに適用できます。 。

もちろん、理想はとても充実していますが、現実は非常に痩せています。 ViT モデルは規模が大きく、遅延も大きくなります。リソースが限られたデバイス上でこの複雑なモデルを実行すると、非常に問題が発生する可能性があります。

トークンプルーニング: 改善されつつあるが、完全に改善されたわけではない

動作が遅いという問題に対処するために、研究者は複数の解決策が与えられます。ビジョン Transformer モデルを高速化する一般的な方法の 1 つは、トークン プルーニングを実行することです。

#実行時にトークンをプルーニングし、重要度の低いトークンをプルーニングして効率的なトランスフォーマーを生成します。たとえば、DynamicViT は冗長なトークンを階層的にプルーニングして、分類タスクの FLOP を削減します。

ただし、トークン プルーニングにはいくつかの問題があり、その中で最も重要なのは、トークンのプルーニングによって情報損失が発生することであるため、人々は ViT モデル トークンに興味を持ちません。プルーニングの数には制限があり、情報の損失を減らすために、重要でないトークンのみをプルーニングできます。

#また、プルーニングされたトークンを有効にするには、モデルを再度トレーニングする必要があります。これにより、追加のリソース消費が発生します。

#さらに重要なのは、トークン プルーニングは動的なプロセスであり、さまざまな画像や文に基づいてさまざまなトークン プルーニングの数を決定する必要があることです。これは精度を向上させるのには適していますが、この場合データをバッチ処理できなくなるため、十分実用的ではありません。

#この問題を解決するには、枝刈りプロセス中にマスクを追加する必要がありますが、これは効率の向上にさらに影響します。

# 簡単に言えば、トークン プルーニングにより ViT の実行速度は向上しますが、これには情報の損失が伴います。

トークンマージング: 別のアイデア

作り方ViT は枝刈りと同じ速度ですが、枝刈りよりも高い精度を維持しますか?メタ AI 研究チームは、トークン マージング (ToMe) という新しいソリューションを考案しました。

ViT モデルを加速する新しいアイデア! Meta は、プルーニングではなくマージに依存するトークン マージングを開始します。

# 論文リンク: https://arxiv.org/pdf/2210.09461.pdf

トークン マージでは、トークンをプルーニングするのではなく、結合することを選択します。カスタム マッチング アルゴリズムのおかげで、プルーニングと同じくらい高速でありながら、より正確です。さらに、追加のトレーニングを必要とせずに機能するため、大規模なモデルで使用して、精度を大幅に犠牲にすることなくモデルを高速化できます。

Meta の目標は、既存の ViT にトークン マージ モジュールを挿入し、冗長なトークンをマージすることで追加のトレーニングを必要とせずにトレーニングと推論のスループットを向上させることです。

基本的な考え方は次のとおりです。Transformer モデルでは、マージによって各レイヤーが r 個のトークンだけ削減されます。 Transformer モデルに L 層があると仮定すると、rL トークンはマージによって削減できます。変数 r のサイズによって速度と精度の関係が決まります。これは、マーカーが少ないほど精度は低くなりますが、スループットは高くなるためです。

#トークン マージでは、画像の内容に関係なく、rL タグが削減されることに注意してください。これにより、トークン プルーニングでバッチ処理が実行できないという問題が完全に解決されます。

ToMe では、同様のトークンのバッチが各 Transformer ブロックにマージされます。たとえば、犬の毛皮は 1 つのトークンにマージされます。

ViT モデルを加速する新しいアイデア! Meta は、プルーニングではなくマージに依存するトークン マージングを開始します。

#トークン マージは、すべてのアテンション ブロックとすべての Transformer ブロックに挿入されます。これは、トークン プルーニングのワークフローとも対照的です。後者では、各 Transformer ブロックの先頭に枝刈りステップが配置される傾向があります。

ViT モデルを加速する新しいアイデア! Meta は、プルーニングではなくマージに依存するトークン マージングを開始します。

#Token Merging を通じて、マージが必要なトークンの情報を広めることができ、ViT はアテンション ブロック どのトークンをマージする必要があるかを決定するための特性。

具体的な方法

マージの最初のステップ類似したトークンであると判断されます。研究チームは、Transformer の QKV (クエリ、キー、値) が抽出された状態で、アブレーション実験を通じて、キーを使用することがトークン間の類似性 (下図の紫色の部分) を最もよく測定できることを発見しました。

ViT モデルを加速する新しいアイデア! Meta は、プルーニングではなくマージに依存するトークン マージングを開始します。

key は、各トークンに含まれる情報を要約して、注意点の内積に使用できるようにするためです。トークン間の類似性を測定します。

トークンの類似性を測定するのにどの指標が適しているかを検討することに加えて、類似性を測定する距離を知る必要もあります。研究チームは実験を通じて、コサイン距離を使用してトークン間の類似性を測定すると、精度と速度の最適な関係を達成できることを発見しました。

ViT モデルを加速する新しいアイデア! Meta は、プルーニングではなくマージに依存するトークン マージングを開始します。

#トークンの類似性を判断した後、合計 r を減らすためにどのトークンが一致する必要があるかを判断する簡単な方法が必要です。 。

Meta チームは kmeans クラスタリング アルゴリズムやグラフ セグメンテーション アルゴリズムを使用しませんが、マッチング アルゴリズムを使用します。これは、後者がトークンの数を正確に一致させることができるだけではないためです。各レイヤーで、数千の一致を迅速に実行できます。これらは、反復クラスタリング アルゴリズムでは実現できません。

# そこで、Meta チームはより効率的なソリューションを考え出しました。

#設計目標は次のとおりです。 1.) 並列化できない反復を避ける、2.) クラスタリングにはグループにマージできるマーカーの数に制限がないため (ネットワークに悪影響を与える可能性がある)、マージされた変更を段階的に行う必要があります。タグは結合されません。

ViT モデルを加速する新しいアイデア! Meta は、プルーニングではなくマージに依存するトークン マージングを開始します。

  1. すべてのトークンを同じサイズの 2 つのセット A と B に分割します。
  2. セット A の各トークンからセット B の最も類似したトークンまでエッジを描画します。
  3. #最も類似した r エッジのみを残し、残りを削除します。
  4. #まだ接続されているエッジを融合します (フィーチャは平均化されます)。
  5. #これら 2 つのセットを結合して、最終的なマージ結果を取得します。

この独自のテクノロジーにより、ViT モデルのスループットと実際のトレーニング速度を向上させることができます。トークン マージを使用すると、トレーニング速度が 2 倍になります。画像、ビデオ、オーディオのタスクに使用でき、最先端の精度を実現します。

以上がViT モデルを加速する新しいアイデア! Meta は、プルーニングではなくマージに依存するトークン マージングを開始します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。