深圳Yolo 视觉
深圳
立即加入
词汇表

代币合并(ToMe)

了解“令牌合并”(ToMe)如何优化Transformer 。探索如何降低浮点运算量、加速实时推理,并提升生成式AI的速度。

代币合并(ToMe)是一项尖端技术,旨在优化 Transformer 架构的性能和效率,其原理在于减少 前向传播过程中处理的令牌数量。 ToMe最初旨在加速 Transformer ViT)模型,其工作原理 在于系统性地识别并合并网络中的冗余令牌,且无需任何额外的 训练。由于 自注意力机制的计算复杂度与 令牌数量呈二次方关系,合并相似令牌可大幅减少总浮点运算(FLOPs),从而实现 显著更快的实时推理

了解代币合并流程

ToMe与分词有着根本性的区别, 分词是将图像或文本分解为独立 词元的初始预处理步骤。分词生成的是离散元素, 而词元合并则在模型的前向推理过程中充当动态降采样机制。

该算法通常采用二部图匹配来评估令牌的相似度,通常计算注意力层中令牌键之间的余弦相似度。 具有高度相似视觉或语义信息的令牌会被融合在一起——通常是通过对其特征取平均值来实现。这确保了关键的空间或上下文信息得以保留,同时减少了不必要的计算负担,从而使诸如 PyTorch 等框架能够更快地处理复杂的视觉模型。

代币合并的实际应用

在计算资源受限的环境中,令牌合并已成为部署基于注意力机制的复杂架构的关键优化策略。

  1. 生成式人工智能与图像合成:在流行的文本到图像扩散模型中,ToMe常被用于加速图像生成。通过合并 背景或低细节令牌,生成过程所需的步骤更少,从而节省了GPU ,并 降低了依赖生成模型的终端用户的延迟。您可以在 arXiv上的基础研究中进一步了解扩散过程。
  2. 边缘AI部署:将 Segment Anything Model (SAM)等大型模型部署到移动设备上, 因内存限制而素来 困难重重。ToMe 能够动态缩减内存占用,从而使复杂的 图像分割任务得以在边缘 硬件上运行。 对于纯粹追求速度的场景,工程师通常会转向原生优化且无需注意力机制的 架构(如Ultralytics ),以实现更快的 端到端边缘推理。

Python :词向量相似度计算

虽然将 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 都能极大简化这些复杂数据 工作流的管理。该 平台提供了一个直观的生态系统,支持自动化 数据标注、无缝云端训练,以及 在各种 边缘计算硬件环境中的稳健模型部署。 正在 扩展计算机视觉项目的组织 依赖这些工具,将最先进的模型可靠且高效地投入生产环境。

让我们一起共建AI的未来!

开启您的机器学习未来之旅