Ultralytics YOLO27:
获取 YOLO 许可
返回 Ultralytics 术语表

Transformer

Transformer 是一种基于自注意力的神经网络,可并行处理整个序列。了解其工作原理、变体以及在视觉领域的应用。

Transformer 是一种神经网络架构,它处理由词元(例如词语或图像块)组成的序列,让每个词元通过自注意力从其他所有词元中获取信息。Google 研究人员于 2017 年在《Attention Is All You Need》中提出了这种架构,用于机器翻译。早期的循环神经网络 (RNNs)逐词读取句子,因此无法按位置并行训练。Transformer 可以一次处理所有位置,其基础模型在 8 块 GPU 上训练 12 小时后,实现了英语到德语翻译的当时最优水平。如今,Transformer 已成为大型语言模型 (LLMs)、视觉 Transformer、语音识别以及许多目标检测和图像生成模型的基础。

Transformer 的工作原理#

输入词元首先会转换为嵌入向量,即具有固定宽度的向量(原始模型中为 512)。随后,Transformer 会依次应用一组相同的层,每层包含两个子层:

  • 多头自注意力:每个词元都会生成一个查询向量、一个键向量和一个值向量。一个词元的输出是所有值向量的加权平均值,权重取决于其查询与各个键的匹配程度,具体如注意力机制所述。多个注意力头会并行运行,原始模型使用 8 个,因此不同的头可以跟踪不同的关系。
  • 前馈网络:一个逐个应用于每个词元的两层网络,用于转换注意力机制收集到的信息。

每个子层外都有一个残差连接,而层归一化可保持激活值稳定。原始模型在编码器中堆叠了 6 个这样的层来读取源句子,在解码器中也堆叠了 6 个来逐个词元生成译文。每个解码器层还会增加一个屏蔽未来词元的掩码自注意力步骤,以及一个读取编码器输出的交叉注意力步骤:

注意力只根据内容比较词元,因此 Transformer 层本身不具备顺序概念:打乱输入词元只会打乱输出。因此,需要将位置信息添加到词元嵌入中,方式包括原始论文中的固定正弦和余弦模式、BERT 和 ViT 中的可学习位置向量,或大多数当前 LLM 使用的旋转位置嵌入 (RoPE)。下面的 PyTorch 代码展示了一个编码器层的效果:

import torch
from torch import nn

# 一个 Transformer 编码器层和由 5 个词元嵌入组成的序列
torch.manual_seed(0)
layer = nn.TransformerEncoderLayer(d_model=32, nhead=4, batch_first=True).eval()
tokens = torch.randn(1, 5, 32)
reverse = torch.arange(4, -1, -1)

# 单独使用自注意力时会忽略顺序:反转输入只会反转输出
print(torch.allclose(layer(tokens[:, reverse])[:, reverse], layer(tokens), atol=1e-5))

# 为每个位置添加一个可学习向量后,每个输出都会取决于其词元所在的位置
positions = nn.Embedding(5, 32).weight
reordered = layer(tokens[:, reverse] + positions)[:, reverse]
print(torch.allclose(reordered, layer(tokens + positions), atol=1e-5))

它会先输出 True,然后输出 False:添加位置向量之前,反转词元只会反转输出;添加位置向量之后,词元顺序会改变每个词元的输出。

编码器、解码器和编码器-解码器模型#

使用原始堆栈的三种方式分别适用于不同任务:

  • 仅编码器:每个词元都能双向关注整个输入,适合理解类任务。文本模型 BERT 和图像模型 ViT 都采用仅编码器架构。
  • 仅解码器:每个词元只能关注它之前的词元,因此模型会逐个词元生成文本。GPT 模型和大多数当前 LLM 都采用这种设计。
  • 编码器-解码器:编码器读取一个序列,解码器在关注该序列的同时生成另一个序列,翻译模型、T5 和 Whisper 语音识别器都采用这种架构。

计算机视觉中的 Transformer#

视觉 Transformer (ViT) 将图像视为由 16×16 像素图像块组成的序列,并应用未经修改的 Transformer 编码器;Swin Transformer 则将注意力限制在局部窗口内,从而适用于高分辨率图像。DETR 将检测重新定义为集合预测:Transformer 解码器将一组固定数量的可学习目标查询转换为边界框,每个查询对应一个目标,从而无需使用非极大值抑制 (NMS) 和人工设计的锚框。Ultralytics 软件包可运行百度的 RT-DETR,这是这种设计的实时版本。它的混合编码器仅对步幅为 32 的特征图应用一个 Transformer 编码器层;对于 640×640 图像,该特征图包含 400 个词元。其 6 层解码器会优化 300 个目标查询,生成最终检测结果,无需使用 NMS。Transformer 也能生成图像:近期的文本生成图像和视频模型已使用扩散 Transformer取代 U-Net,而视觉语言模型则将图像词元输入仅解码器 LLM。

  • 卷积神经网络 (CNNs):卷积会使用同一个滤波器在每个位置观察一个小邻域,这种内置假设有助于处理小型数据集。注意力可以在一个层内连接任意两个位置,但必须从数据中学习空间结构,因此 Transformer 通常需要更多训练数据或预训练,才能胜过 CNN。
  • RNN 和 LSTM:它们会在各时间步之间传递固定大小的状态,因此每个词元的内存占用保持恒定,但训练过程是顺序进行的。Transformer 会保留所有过去的词元,并支持并行训练。
  • 状态空间模型:Mamba 等架构使用循环状态处理序列,其计算成本随序列长度线性增长;混合模型则会将这类架构与注意力层交错组合。

自注意力会将每个词元与其他所有词元进行比较,因此计算成本会随序列长度的平方增长。长度为 4,096 的序列在每层的每个注意力头中约有 1,680 万个查询-键对;长度翻倍至 8,192 后,这一数量会增至约 6,700 万,是原来的 4 倍。FlashAttention 可减少这项计算的内存流量,而 KV 缓存会存储较早词元的键和值,使解码器在生成过程中只需计算它们一次。

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来