Token Merging(ToMe)がTransformerおよびViTモデルをどのように最適化するのかをご紹介します。FLOPsの削減、リアルタイム推論の高速化、生成AIの処理速度向上を実現する方法をご覧ください。
Token Merging(ToMe)は、フォワードパス中に処理されるトークンの数を削減することで、 Transformerアーキテクチャの性能と効率を最適化するために設計された最先端の手法です。もともとVision Transformer(ViT)モデルの高速化を目的として開発されたToMeは、 追加の トレーニングを必要とせずに、ネットワーク内の冗長なトークンを体系的に特定し、結合することで機能します。 自己注意メカニズムの計算複雑度はトークン数に比例して 2乗的に増加するため、類似したトークンを統合することで総浮動小数点演算(FLOPs)を大幅に削減し、 リアルタイム推論を著しく高速化することが可能になります。
ToMeは、画像やテキストを個々のトークンに分解する初期の前処理ステップである トークン化とは根本的に異なります。トークン化が離散的な要素を生成するのに対し、 トークンマージングは、モデルのフォワード実行中に動的なダウンサンプリングの仕組みとして機能します。
このアルゴリズムは通常、トークンの類似性を評価するために二部グラフマッチングを用い、多くの場合、アテンション層におけるトークンのキー間のコサイン類似度を計算します。視覚的または意味的な情報が非常に類似しているトークンは、多くの場合、その特徴の平均化によって融合されます。これにより、不要な計算負荷を削減しつつ、重要な空間的または文脈的な情報が確実に保持され、 PyTorch のようなフレームワークが、複雑なビジョンモデルをはるかに高速に処理できるようになります。
トークンマージングは、計算リソースが限られた環境において、 大規模なアテンションベースのアーキテクチャを展開するための重要な最適化戦略となっている。
ToMeをアーキテクチャ全体に組み込むにはアテンションブロックの修正が必要ですが、その中核となる概念は 類似するトークンを見つけることにあります。PyTorch 、トークンの集合間の コサイン類似度を計算し、統合の候補となるトークンを特定する方法を示しています。
import torch
import torch.nn.functional as F
# Simulate a batch of 4 image patches (tokens) with 64-dimensional features
tokens = torch.randn(1, 4, 64)
# Normalize the tokens to easily compute cosine similarity via dot product
normalized_tokens = F.normalize(tokens, p=2, dim=-1)
# Compute the similarity matrix between all tokens (1 x 4 x 4)
similarity_matrix = torch.matmul(normalized_tokens, normalized_tokens.transpose(1, 2))
# Tokens with high similarity scores (close to 1.0) off the diagonal
# are prime candidates for Token Merging.
print("Similarity Matrix:", similarity_matrix)
現代の機械学習パイプラインでは、精度と速度のバランスを慎重に調整する必要があります。カスタムViTを最適化するためにトークン マージを採用する場合でも、YOLO26の最先端の効率性に依存する場合でも、Ultralytics 、こうした複雑なデータ ワークフローの管理が大幅に簡素化されます。この プラットフォームは、自動化された データアノテーション、シームレスなクラウドトレーニング、そして 多様な エッジコンピューティングハードウェア環境にわたる堅牢なモデル展開を実現する、直感的なエコシステムを提供します。コンピュータビジョン イニシアチブを拡大している組織は、 これらのツールを活用して、最先端のモデルを確実かつ効率的に本番環境へ導入しています。
未来の機械学習で、新たな一歩を踏み出しましょう。