了解“令牌合并”(ToMe)如何优化Transformer 。探索如何降低浮点运算量、加速实时推理,并提升生成式AI的速度。
代币合并(ToMe)是一项尖端技术,旨在优化 Transformer 架构的性能和效率,其原理在于减少 前向传播过程中处理的令牌数量。 ToMe最初旨在加速 Transformer ViT)模型,其工作原理 在于系统性地识别并合并网络中的冗余令牌,且无需任何额外的 训练。由于 自注意力机制的计算复杂度与 令牌数量呈二次方关系,合并相似令牌可大幅减少总浮点运算(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 都能极大简化这些复杂数据 工作流的管理。该 平台提供了一个直观的生态系统,支持自动化 数据标注、无缝云端训练,以及 在各种 边缘计算硬件环境中的稳健模型部署。 正在 扩展计算机视觉项目的组织 依赖这些工具,将最先进的模型可靠且高效地投入生产环境。
开启您的机器学习未来之旅